Make style fixes to conform to ruby style guide

Made style fixes to conform to Ruby style guide.
Added a reference to a community-driven Ruby coding style guide.
This commit is contained in:
Dzianis Dashkevich 2014-08-19 12:06:52 +03:00
parent cdd139136c
commit b249363a99

View File

@ -9,6 +9,7 @@ contributors:
- ["Nick LaMuro", "https://github.com/NickLaMuro"]
- ["Marcos Brizeno", "http://www.about.me/marcosbrizeno"]
- ["Ariel Krakowski", "http://www.learneroo.com"]
- ["Dzianis Dashkevich", "https://github.com/dskecse"]
---
@ -78,14 +79,17 @@ false.class #=> FalseClass
'I am a string'.class #=> String
"I am a string too".class #=> String
placeholder = "use string interpolation"
placeholder = 'use string interpolation'
"I can #{placeholder} when using double quoted strings"
#=> "I can use string interpolation when using double quoted strings"
# Prefer single quoted strings to double quoted ones where possible
# Double quoted strings perform additional inner calculations
# Combine strings, but not with numbers
"hello " + "world" #=> "hello world"
"hello " + 3 #=> TypeError: can't convert Fixnum into String
"hello " + 3.to_s #=> "hello 3"
'hello ' + 'world' #=> "hello world"
'hello ' + 3 #=> TypeError: can't convert Fixnum into String
'hello ' + 3.to_s #=> "hello 3"
# print to the output
puts "I'm printing!"
@ -130,7 +134,7 @@ array = [1, 2, 3, 4, 5] #=> [1, 2, 3, 4, 5]
# Arrays can contain different types of items
[1, "hello", false] #=> [1, "hello", false]
[1, 'hello', false] #=> [1, "hello", false]
# Arrays can be indexed
# From the front
@ -180,11 +184,11 @@ new_hash.keys #=> [:defcon, :action]
# Control structures
if true
"if statement"
'if statement'
elsif false
"else if, optional"
'else if, optional'
else
"else, also optional"
'else, also optional'
end
for counter in 1..5
@ -241,32 +245,30 @@ grade = 'B'
case grade
when 'A'
puts "Way to go kiddo"
puts 'Way to go kiddo'
when 'B'
puts "Better luck next time"
puts 'Better luck next time'
when 'C'
puts "You can do better"
puts 'You can do better'
when 'D'
puts "Scraping through"
puts 'Scraping through'
when 'F'
puts "You failed!"
puts 'You failed!'
else
puts "Alternative grading system, eh?"
puts 'Alternative grading system, eh?'
end
#=> "Better luck next time"
# cases can also use ranges
grade = 82
case grade
when 90..100
puts "Hooray!"
puts 'Hooray!'
when 80...90
puts "OK job"
puts 'OK job'
else
puts "You failed!"
puts 'You failed!'
end
#=> "OK job"
@ -298,9 +300,9 @@ sum sum(3,4), 5 #=> 12
# it can be called with the 'yield' keyword
def surround
puts "{"
puts '{'
yield
puts "}"
puts '}'
end
surround { puts 'hello world' }
@ -313,20 +315,20 @@ surround { puts 'hello world' }
# You can pass a block to a function
# "&" marks a reference to a passed block
def guests(&block)
block.call "some_argument"
block.call 'some_argument'
end
# You can pass a list of arguments, which will be converted into an array
# That's what splat operator ("*") is for
def guests(*array)
array.each { |guest| puts "#{guest}" }
array.each { |guest| puts guest }
end
# Define a class with the class keyword
class Human
# A class variable. It is shared by all instances of this class.
@@species = "H. sapiens"
@@species = 'H. sapiens'
# Basic initializer
def initialize(name, age = 0)
@ -356,20 +358,19 @@ class Human
# A class method uses self to distinguish from instance methods.
# It can only be called on the class, not an instance.
def self.say(msg)
puts "#{msg}"
puts msg
end
def species
@@species
end
end
# Instantiate a class
jim = Human.new("Jim Halpert")
jim = Human.new('Jim Halpert')
dwight = Human.new("Dwight K. Schrute")
dwight = Human.new('Dwight K. Schrute')
# Let's call a couple of methods
jim.species #=> "H. sapiens"
@ -380,7 +381,7 @@ dwight.species #=> "H. sapiens"
dwight.name #=> "Dwight K. Schrute"
# Call the class method
Human.say("Hi") #=> "Hi"
Human.say('Hi') #=> "Hi"
# Variable's scopes are defined by the way we name them.
# Variables that start with $ have global scope
@ -399,7 +400,7 @@ defined? @@var #=> "class variable"
Var = "I'm a constant"
defined? Var #=> "constant"
# Class also is object in ruby. So class can have instance variables.
# Class is also an object in ruby. So class can have instance variables.
# Class variable is shared among the class and all of its descendants.
# base class
@ -451,8 +452,8 @@ module ModuleExample
end
end
# Including modules binds the methods to the object instance
# Extending modules binds the methods to the class instance
# Including modules binds their methods to the class instances
# Extending modules binds their methods to the class itself
class Person
include ModuleExample
@ -467,7 +468,7 @@ Person.new.foo # => 'foo'
Book.foo # => 'foo'
Book.new.foo # => NoMethodError: undefined method `foo'
# Callbacks when including and extending a module are executed
# Callbacks are executed when including and extending a module
module ConcernExample
def self.included(base)
@ -504,5 +505,4 @@ Something.new.qux # => 'qux'
- [Official Documentation](http://www.ruby-doc.org/core-2.1.1/)
- [Ruby from other languages](https://www.ruby-lang.org/en/documentation/ruby-from-other-languages/)
- [Programming Ruby](http://www.amazon.com/Programming-Ruby-1-9-2-0-Programmers/dp/1937785491/) - An older [free addition](http://ruby-doc.com/docs/ProgrammingRuby/) is available online.
- [Ruby Style Guide](https://github.com/bbatsov/ruby-style-guide) - A community-driven Ruby coding style guide.