class Dry::Effects::Providers::Env
Constants
- Locate
Attributes
parent[R]
Public Instance Methods
call(values = EMPTY_HASH, options = EMPTY_HASH) { || ... }
click to toggle source
Yield the block with the handler installed
@api private
# File lib/dry/effects/providers/env.rb, line 44 def call(values = EMPTY_HASH, options = EMPTY_HASH) unless values.empty? @values = @values.merge(values) end if options.fetch(:overridable, false) @parent = ::Dry::Effects.yield(Locate) { EMPTY_HASH } else @parent = EMPTY_HASH end yield end
key?(key)
click to toggle source
# File lib/dry/effects/providers/env.rb, line 69 def key?(key) values.key?(key) || key.is_a?(::String) && ::ENV.key?(key) || parent.key?(key) end
locate()
click to toggle source
Locate
handler in the stack
@return [Provider] @api private
# File lib/dry/effects/providers/env.rb, line 37 def locate self end
provide?(effect)
click to toggle source
@param [Effect] effect @return [Boolean] @api public
Calls superclass method
# File lib/dry/effects/providers/env.rb, line 61 def provide?(effect) if super !effect.name.equal?(:read) || key?(effect.payload[0]) else false end end
read(key)
click to toggle source
# File lib/dry/effects/providers/env.rb, line 18 def read(key) parent.fetch(key) { fetch(key) } end
Protected Instance Methods
fetch(key) { || ... }
click to toggle source
# File lib/dry/effects/providers/env.rb, line 22 def fetch(key) values.fetch(key) do if key.is_a?(::String) && ::ENV.key?(key) ::ENV[key] else yield end end end