Module: SeedList::Model::ClassMethods

Defined in:
lib/seed_list/model.rb

Instance Method Summary collapse

Instance Method Details

#seed(assoc_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/seed_list/model.rb', line 6

def seed(assoc_name)
  assoc_name = assoc_name.to_s

  SeedList.tournament_class_name = self.name
  SeedList.player_class_name = assoc_name.camelize

  eval "serialize :#{assoc_name}_seed_list, SeedList::List"

  assoc_name.classify.constantize.class_eval <<-CODE
    after_create  do |p| 
      p.#{self.name.downcase}.#{assoc_name}_seed_list.push(p.id)
      p.#{self.name.downcase}.save
    end

    after_destroy do |p|
      p.#{self.name.downcase}.#{assoc_name}_seed_list.delete(p.id)
      p.#{self.name.downcase}.save
    end

    def seed
      #{self.name.downcase}.#{assoc_name}_seed_list.find(id)
    end

    def seed=(n)
      #{self.name.downcase}.#{assoc_name}_seed_list.move(id, n)
      #{self.name.downcase}.save
    end
  CODE

end