Class: Dogfood::DSL::Evaluator::PoolAccessor

Inherits:
Object
  • Object
show all
Defined in:
lib/dogfood/dsl/evaluator.rb

Overview

Root object for ${pool.NAME...}. Delegates each NAME to a PoolProxy.

Instance Method Summary collapse

Constructor Details

#initialize(pools, rng) ⇒ PoolAccessor

Returns a new instance of PoolAccessor.



238
239
240
241
# File 'lib/dogfood/dsl/evaluator.rb', line 238

def initialize(pools, rng)
  @pools = pools || {}
  @rng = rng
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(name, *_args) ⇒ Object



243
244
245
246
247
248
249
250
# File 'lib/dogfood/dsl/evaluator.rb', line 243

def method_missing(name, *_args)
  pool = @pools[name]
  unless pool
    raise ArgumentError, "unknown pool :#{name}"
  end

  PoolProxy.new(pool, @rng)
end

Instance Method Details

#respond_to_missing?(name, _include_private = false) ⇒ Boolean

Returns:

  • (Boolean)


252
253
254
# File 'lib/dogfood/dsl/evaluator.rb', line 252

def respond_to_missing?(name, _include_private = false)
  @pools.key?(name) || super
end