Skip to content

Instantly share code, notes, and snippets.

@duritong
Created November 29, 2011 16:49
Show Gist options
  • Save duritong/1405488 to your computer and use it in GitHub Desktop.
Save duritong/1405488 to your computer and use it in GitHub Desktop.
ruby class var foo
require 'active_support'
module ModuleA
def self.included(c)
c.class_attribute :foo
c.extend ClassMethods
end
module ClassMethods
def set_foo(value)
self.foo = value
end
end
end
class ClassA
include ModuleA
set_foo 'foo'
end
class ClassAA
include ModuleA
set_foo 'bar'
end
class ClassB < ClassA
end
puts "A: #{ClassA.foo} (should be foo)"
puts "AA: #{ClassAA.foo} (should be bar)"
puts "B: #{ClassB.foo} (shoule be foo)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment