1 class Status
2 attr_accessor :id, :name
3
4 def initialize(options = {})
5 options = options.symbolize_keys
6 @id, @name = options[:id], options[:name]
7 end
8
9 def symbol
10 @name.to_s.downcase.intern
11 end
12
13 def self.[](value)
14 @@statuses.find { |status| status.symbol == value.to_s.downcase.intern }
15 end
16
17 def self.find(id)
18 @@statuses.find { |status| status.id.to_s == id.to_s }
19 end
20
21 def self.find_all
22 @@statuses.dup
23 end
24
25 def self.selectable
26 find_all - [self['Scheduled']]
27 end
28
29 def self.selectable_values
30 self.selectable.map(&:name)
31 end
32
33 @@statuses = [
34 Status.new(:id => 1, :name => 'Draft' ),
35 Status.new(:id => 50, :name => 'Reviewed' ),
36 Status.new(:id => 90, :name => 'Scheduled'),
37 Status.new(:id => 100, :name => 'Published'),
38 Status.new(:id => 101, :name => 'Hidden' )
39 ]
40
41 end