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 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]
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 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]
@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: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: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: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:54
Getting and Setting Instance Variables Using an Attribute Accessor
class Universe
attr_accessor :answer
def initialize
@answer = "42"
end
end
universe = Universe.new # => #<Universe:0x007f63e303e848 @answer="42">
universe.answer # => "42"
@SamGerber-zz
SamGerber-zz / value.rb
Last active December 9, 2015 06:57
Does manipulating a string change its value?
@answer = "42" # => "42"
@answer.object_id # => 70033493776200
@answer.clear # => ""
@answer # => ""
@answer.object_id # => 70033493776200
@SamGerber-zz
SamGerber-zz / setter.rb
Created December 9, 2015 07:35
Setter with "value
def answer=(value)
@answer = value
end