Module: Collectable::ClassMethods

Defined in:
lib/collectable.rb

Instance Method Summary collapse

Instance Method Details

#collected(sort_field = :name) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/collectable.rb', line 26

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

#nameObject



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

def name
  :name
end

#trait(trait_name) ⇒ Object



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

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

#traitsObject



17
18
19
# File 'lib/collectable.rb', line 17

def traits
  @traits ||= []
end

#valueObject



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

def value
  :value
end