lib/grape/util/stackable_values.rb in grape-0.16.2 vs lib/grape/util/stackable_values.rb in grape-0.17.0

- old
+ new

@@ -1,38 +1,37 @@ module Grape module Util class StackableValues attr_accessor :inherited_values - attr_reader :new_values - attr_reader :froozen_values + attr_accessor :new_values + attr_reader :frozen_values def initialize(inherited_values = {}) @inherited_values = inherited_values @new_values = {} - @froozen_values = {} + @frozen_values = {} end def [](name) - return @froozen_values[name] if @froozen_values.key? name - value = [@inherited_values[name], @new_values[name]] - value.compact! - value.flatten!(1) + return @frozen_values[name] if @frozen_values.key? name + + value = [] + value.concat(@inherited_values[name]) if @inherited_values[name] + value.concat(@new_values[name]) if @new_values[name] value end def []=(name, value) - fail if @froozen_values.key? name + raise if @frozen_values.key? name @new_values[name] ||= [] @new_values[name].push value end def delete(key) new_values.delete key end - attr_writer :new_values - def keys (@new_values.keys + @inherited_values.keys).sort.uniq end def to_hash @@ -40,10 +39,10 @@ result[key] = self[key] end end def freeze_value(key) - @froozen_values[key] = self[key].freeze + @frozen_values[key] = self[key].freeze end def initialize_copy(other) super self.inherited_values = other.inherited_values