Module: DockerRailsProxy::InheritableAttributes::ClassMethods
- Defined in:
- lib/docker_rails_proxy/concerns/inheritable_attributes.rb
Instance Method Summary collapse
- #inheritable_attributes(*args) ⇒ Object
- #inherited(subclass) ⇒ Object
- #uninheritable_attributes(*args) ⇒ Object
Instance Method Details
#inheritable_attributes(*args) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/docker_rails_proxy/concerns/inheritable_attributes.rb', line 8 def inheritable_attributes(*args) @inheritable_attributes ||= [:inheritable_attributes] @inheritable_attributes += args args.each do |arg| class_eval %(class << self; attr_accessor :#{arg} end) end @inheritable_attributes end |
#inherited(subclass) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/docker_rails_proxy/concerns/inheritable_attributes.rb', line 26 def inherited(subclass) @inheritable_attributes.each do |inheritable_attribute| instance_name = "@#{inheritable_attribute}" instance_value = instance_variable_get(instance_name).dup subclass.instance_variable_set(instance_name, instance_value) end @uninheritable_attributes.each do |uninheritable_attribute| instance_name = "@#{uninheritable_attribute}" if instance_name == '@uninheritable_attributes' instance_value = instance_variable_get(instance_name).dup subclass.instance_variable_set(instance_name, instance_value) else subclass.instance_variable_set(instance_name, nil) end end end |
#uninheritable_attributes(*args) ⇒ Object
17 18 19 20 21 22 23 24 |
# File 'lib/docker_rails_proxy/concerns/inheritable_attributes.rb', line 17 def uninheritable_attributes(*args) @uninheritable_attributes ||= [:uninheritable_attributes] @uninheritable_attributes += args args.each do |arg| class_eval %(class << self; attr_accessor :#{arg} end) end @uninheritable_attributes end |