Skip to content

Instantly share code, notes, and snippets.

@banister
Created September 12, 2012 12:30
Show Gist options
  • Save banister/3706312 to your computer and use it in GitHub Desktop.
Save banister/3706312 to your computer and use it in GitHub Desktop.
[2] pry(main)> class Alpha
[2] pry(main)* class << self
[2] pry(main)* def counter
[2] pry(main)* Alpha.instance_variable_get(:@counter)
[2] pry(main)* end
[2] pry(main)* def counter=(v)
[2] pry(main)* Alpha.instance_variable_set(:@counter, v)
[2] pry(main)* end
[2] pry(main)* def new(*args, &block)
[2] pry(main)* self.counter += 1
[2] pry(main)* super
[2] pry(main)* end
[2] pry(main)* end
[2] pry(main)* @counter = 0
[2] pry(main)* end
=> 0
[3] pry(main)> Alpha.new
=> #<Alpha:0x4389150>
[4] pry(main)> Alpha.counter
=> 1
[5] pry(main)> class Beta < Alpha
[5] pry(main)* end
=> nil
[6] pry(main)> Beta.new
=> #<Beta:0x4744ab8>
[7] pry(main)> Beta.counter
=> 2
[8] pry(main)> Alpha.counter
=> 2
[9] pry(main)> class Zeta < Beta
[9] pry(main)* end
=> nil
[10] pry(main)> Zeta.new
=> #<Zeta:0x3ac12b0>
[11] pry(main)> Zeta.counter
=> 3
[12] pry(main)> Alpha.counter
=> 3
[13] pry(main)> Beta.counter
=> 3
[14] pry(main)>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment