Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # example:
- #
- # og = Og.connect(:store => :mysql, :name => 'addressbooks', :user => '...', :password => '...')
- # ab1 = Addressbook.new("ab1", og)
- class Addressbook
- attr_reader :group
- attr_reader :person
- attr_reader :og
- attr_reader :module
- def initialize(name="ab", managed_by=nil)
- self.class.const_set(name.capitalize, @module = Module.new) # ruby magic...
- # order matters
- %w(labeledattribute.rb address.rb email.rb group.rb messenger.rb label.rb number.rb person.rb).each { |file|
- @module.module_eval(File.read("addressbook/#{file}"))
- }
- @module::Address.set_table name+"_address"
- @module::EMail.set_table name+"_email"
- @module::Group.set_table name+"_group"
- @module::Messenger.set_table name+"_messenger"
- @module::Label.set_table name+"_label"
- @module::Number.set_table name+"_number"
- @module::Person.set_table name+"_person"
- @module::Person.many_to_many :groups, @module::Group, :table => name+"_group_membership"
- @module::Group.many_to_many :people, @module::Person, :table => name+"_group_membership"
- @person = @module::Person
- @group = @module::Group
- @og = managed_by
- @og.manage_classes(
- @module::Address,
- @module::EMail,
- @module::Group,
- @module::Messenger,
- @module::Label,
- @module::Number,
- @module::Person
- )
- end
- end
Add Comment
Please, Sign In to add comment