class StatusManager::StatusStore
Attributes
attribute_name[RW]
group_statuses[RW]
status_sets[RW]
Public Class Methods
new(attribute_name, status_sets = nil)
click to toggle source
# File lib/status-manager/status_store.rb, line 21 def initialize(attribute_name, status_sets = nil) @attribute_name = attribute_name @status_sets = status_sets || {} @group_statuses = {} end
Public Instance Methods
add_group_status(group_status_name, statuses)
click to toggle source
# File lib/status-manager/status_store.rb, line 43 def add_group_status(group_status_name, statuses) @group_statuses.merge!(group_status_name => statuses) end
get_group_status(group_status_name)
click to toggle source
# File lib/status-manager/status_store.rb, line 47 def get_group_status(group_status_name) statuses = {} @group_statuses[group_status_name].each do |status| statuses[status] = value(status) end statuses end
group_status?(group_status)
click to toggle source
# File lib/status-manager/status_store.rb, line 39 def group_status?(group_status) @group_statuses.key?(group_status) end
status?(status)
click to toggle source
# File lib/status-manager/status_store.rb, line 31 def status?(status) @status_sets.key?(status) end
statuses()
click to toggle source
# File lib/status-manager/status_store.rb, line 27 def statuses @status_sets.keys end
value(status)
click to toggle source
# File lib/status-manager/status_store.rb, line 35 def value(status) @status_sets[status] end
values(statuses = [])
click to toggle source
# File lib/status-manager/status_store.rb, line 55 def values(statuses = []) if statuses.nil? return @statuse_sets.values elsif status? statuses return [value(statuses)] elsif group_status? statuses return get_group_status(statuses).values elsif statuses.instance_of?(Array) results = [] statuses.each do |_status| if status?(_status) results << value(_status) elsif group_status?(_status) results |= get_group_status(_status).values end end return results.uniq else return [] end end