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