Sha256: 86dadab9f2bafc77d0f607fa93f7f1c95b2c035e1331d4a89a5e5735e90b17a2
Contents?: true
Size: 680 Bytes
Versions: 59
Compression:
Stored size: 680 Bytes
Contents
module ClassLevelInheritableAttributes def self.included(base) base.extend(ClassMethods) end module ClassMethods def cattr_inheritable(*args) @cattr_inheritable_attrs ||= [:cattr_inheritable_attrs] @cattr_inheritable_attrs += args args.each do |arg| class_eval %( class << self; attr_accessor :#{arg} end ) end @cattr_inheritable_attrs end def inherited(subclass) @cattr_inheritable_attrs.each do |inheritable_attribute| instance_var = "@#{inheritable_attribute}" subclass.instance_variable_set(instance_var, instance_variable_get(instance_var)) end end end end
Version data entries
59 entries across 59 versions & 1 rubygems