lib/status-manager/status_store.rb in status-manager-0.8.5 vs lib/status-manager/status_store.rb in status-manager-0.9.0

- old
+ new

@@ -1,78 +1,77 @@ module StatusManager - class StatusStoreList - attr_accessor :status_stores + class StatusStoreList + attr_accessor :status_stores - def initialize - @status_stores = [] - end + def initialize + @status_stores = [] + end - def add(status_store) - @status_stores << status_store - end + def add(status_store) + @status_stores << status_store + end - def get(attribute) - @status_stores.select {|status_store| status_store.attribute_name == attribute}.first - end - end + def get(attribute) + @status_stores.select { |status_store| status_store.attribute_name == attribute }.first + end + end - class StatusStore - attr_accessor :attribute_name, :status_sets, :group_statuses + class StatusStore + attr_accessor :attribute_name, :status_sets, :group_statuses - def initialize(attribute_name, status_sets=nil ) - @attribute_name = attribute_name - @status_sets = status_sets || {} - @group_statuses = {} - end + def initialize(attribute_name, status_sets = nil) + @attribute_name = attribute_name + @status_sets = status_sets || {} + @group_statuses = {} + end - def statuses - @status_sets.keys - end + def statuses + @status_sets.keys + end - def status?(status) - @status_sets.key?(status) - end + def status?(status) + @status_sets.key?(status) + end - def value(status) - @status_sets[status] - end + def value(status) + @status_sets[status] + end - def group_status?(group_status) - @group_statuses.key?(group_status) - end + def group_status?(group_status) + @group_statuses.key?(group_status) + end - #scope에 array 파라미터 넣기 적용 - 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 + def add_group_status(group_status_name, statuses) + @group_statuses.merge!(group_status_name => statuses) + end - def add_group_status(group_status_name, statuses) - @group_statuses.merge!({group_status_name => statuses}) - end + def get_group_status(group_status_name) + statuses = {} + @group_statuses[group_status_name].each do |status| + statuses[status] = value(status) + end + statuses + end - def get_group_status(group_status_name) - statuses = {} - @group_statuses[group_status_name].each do |status| - statuses[status] = self.value(status) - end - statuses - end - end -end \ No newline at end of file + 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 + end +end