Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.68 KB | None | 0 0
  1. module AnimalMixin
  2. class << self
  3. def included(base)
  4. base.extend ClassMethods
  5. end
  6. end
  7.  
  8. module ClassMethods
  9. def inheritable_attributes(*args)
  10. @inheritable_attributes ||= [:inheritable_attributes]
  11. @inheritable_attributes += args
  12. args.each do |arg|
  13. class_eval %(
  14. class << self; attr_accessor:#{arg} end
  15. ), __FILE__, __LINE__ - 2
  16. end
  17. @inheritable_attributes
  18. end
  19.  
  20. def inherited(subclass)
  21. @inheritable_attributes.each do |inheritable_attribute|
  22. instance_var = "@#{inheritable_attribute}"
  23. subclass.instance_variable_set(instance_var, instance_variable_get(instance_var))
  24. end
  25. end
  26. end
  27. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement