lib/dry/view/exposures.rb in dry-view-0.2.2 vs lib/dry/view/exposures.rb in dry-view-0.3.0

- old
+ new

@@ -10,30 +10,34 @@ def initialize(exposures = {}) @exposures = exposures end + def key?(name) + exposures.key?(name) + end + def [](name) exposures[name] end def add(name, proc = nil, **options) exposures[name] = Exposure.new(name, proc, **options) end def bind(obj) - bound_exposures = Hash[exposures.map { |name, exposure| - [name, exposure.bind(obj)] - }] + bound_exposures = exposures.each_with_object({}) { |(name, exposure), memo| + memo[name] = exposure.bind(obj) + } self.class.new(bound_exposures) end def locals(input) tsort.each_with_object({}) { |name, memo| memo[name] = self[name].(input, memo) if exposures.key?(name) }.each_with_object({}) { |(name, val), memo| - memo[name] = val if self[name].to_view? + memo[name] = val unless self[name].private? } end private