Module: Collectable::ClassMethods

Defined in:
lib/collectable.rb

Instance Method Summary collapse

Instance Method Details

#collected(sort_field = :name) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/collectable.rb', line 18

def collected(sort_field = :name)
  traits.each_with_index.map {|name, index|
    OpenStruct.new(name: name, value: index)
  }.sort {|a,b| 
    a.send(sort_field) <=> b.send(sort_field)
  }
end

#trait(trait_name) ⇒ Object



13
14
15
16
# File 'lib/collectable.rb', line 13

def trait(trait_name)
  traits.push(trait_name.to_s.downcase)
  traits.uniq!
end

#traitsObject



9
10
11
# File 'lib/collectable.rb', line 9

def traits
  @traits ||= []
end