Guest User

Untitled

a guest
Feb 20th, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. class Addressbook
  2. attr_reader :group
  3. attr_reader :person
  4. attr_reader :og
  5. attr_reader :module
  6.  
  7. def initialize(name="ab", managed_by=nil)
  8. self.class.const_set(name.capitalize, @module = Module.new) # ruby magic...
  9.  
  10. # order matters
  11. %w(labeledattribute.rb address.rb email.rb group.rb messenger.rb label.rb number.rb person.rb).each { |file|
  12. @module.module_eval(File.read("addressbook/#{file}"))
  13. }
  14.  
  15. @module::Address.set_table name+"_address"
  16. @module::EMail.set_table name+"_email"
  17. @module::Group.set_table name+"_group"
  18. @module::Messenger.set_table name+"_messenger"
  19. @module::Label.set_table name+"_label"
  20. @module::Number.set_table name+"_number"
  21. @module::Person.set_table name+"_person"
  22.  
  23. @module::Person.many_to_many :groups, @module::Group, :table => name+"_group_membership"
  24. @module::Group.many_to_many :people, @module::Person, :table => name+"_group_membership"
  25.  
  26. @person = @module::Person
  27. @group = @module::Group
  28.  
  29. @og = managed_by
  30.  
  31. @og.manage_classes(
  32. @module::Address,
  33. @module::EMail,
  34. @module::Group,
  35. @module::Messenger,
  36. @module::Label,
  37. @module::Number,
  38. @module::Person
  39. )
  40. end
  41. end
Add Comment
Please, Sign In to add comment