lib/dry/view/exposures.rb in dry-view-0.7.0 vs lib/dry/view/exposures.rb in dry-view-0.7.1
- old
+ new
@@ -1,9 +1,9 @@
# frozen_string_literal: true
require "tsort"
-require "dry/equalizer"
+require "dry/core/equalizer"
require "dry/view/exposure"
module Dry
class View
# @api private
@@ -28,11 +28,11 @@
def each(&block)
exposures.each(&block)
end
def add(name, proc = nil, **options)
- exposures[name] = Exposure.new(name, proc, options)
+ exposures[name] = Exposure.new(name, proc, **options)
end
def import(name, exposure)
exposures[name] = exposure.dup
end
@@ -44,19 +44,21 @@
self.class.new(bound_exposures)
end
def call(input)
+ # rubocop:disable Style/MultilineBlockChain
tsort.each_with_object({}) { |name, memo|
- next unless exposure = self[name]
+ next unless (exposure = self[name])
value = exposure.(input, memo)
value = yield(value, exposure) if block_given?
memo[name] = value
}.each_with_object({}) { |(name, value), memo|
memo[name] = value unless self[name].private?
}
+ # rubocop:enable Style/MultilineBlockChain
end
private
def tsort_each_node(&block)