Skip to content

Instantly share code, notes, and snippets.

View SamGerber-zz's full-sized avatar

Sam Gerber SamGerber-zz

View GitHub Profile
@SamGerber-zz
SamGerber-zz / universe.rb
Created December 9, 2015 06:52
Getting Instance Variables Using an Attribute Reader
class Universe
attr_reader :answer
def initialize
@answer = "42"
end
end
universe = Universe.new # => #<Universe:0x007f644d49de10 @answer="42">
universe.answer # => "42"
@SamGerber-zz
SamGerber-zz / universe.rb
Created December 9, 2015 06:50
Getting Instance Variables with a Getter Method
class Universe
def initialize
@answer = "42"
end
def answer
return @answer # Explicit return for clarity
end
end
@SamGerber-zz
SamGerber-zz / universe.rb
Created December 9, 2015 06:49
Getting Instance Variables Explicitly Within the Class
class Universe
def initialize
@answer = "42"
puts @answer # Get @answer and pass it to Kernel#puts.
end
end
universe = Universe.new # printed 42 and returned <Universe:0x007fcdef8fb000 @answer="42">
@SamGerber-zz
SamGerber-zz / universe.rb
Created December 9, 2015 06:45
Setting Instance Variables Using an Attribute Writer
class Universe
attr_writer :answer
end
universe = Universe.new # => #<Universe:0x007f9ac4572e78>
universe.instance_variables # => []
universe.answer = "42" # => "42"
universe.instance_variables # => [:@answer]
@SamGerber-zz
SamGerber-zz / universe.rb
Created December 9, 2015 06:41
Setting Instance Variables with a Setter Method
class Universe
def answer=(something)
@answer = something
end
end
universe = Universe.new # => #<Universe:0x007f639f31b8e8>
universe.instance_variables # => []
universe.answer = "42" # => "42"
universe.instance_variables # => [:@answer]
class Universe
def initialize
@answer = "42"
end
end
universe = Universe.new # => #<Universe:0x007f4b34292288 @answer="42">
universe.instance_variables # => [:@answer]
@SamGerber-zz
SamGerber-zz / universe.rb
Created December 9, 2015 05:44
Setting Instance Variables Explicitly Within the Class
class Universe
def initialize
@answer = "42"
end
end
universe = Universe.new # => #<Universe:0x007f4b34292288 @answer="42">
universe.instance_variables # => [:@answer]