class Pico::Application::ConfigurationContext

Public Class Methods

evaluate(config_block, application:) click to toggle source
# File lib/pico/application.rb, line 85
def self.evaluate(config_block, application:)
  new(application).instance_eval &config_block
end
new(application) click to toggle source
# File lib/pico/application.rb, line 79
def initialize(application)
  define_singleton_method :__application__ do
    application
  end
end

Public Instance Methods

autoload_paths() click to toggle source
# File lib/pico/application.rb, line 89
def autoload_paths
  __application__.autoload_paths
end
autoload_paths=(paths) click to toggle source
# File lib/pico/application.rb, line 93
def autoload_paths=(paths)
  autoload_paths.clear
  autoload_paths.concat paths
end
provide(provision = nil, as:, &factory_block) click to toggle source
# File lib/pico/application.rb, line 98
def provide(provision = nil, as:, &factory_block)
  if block_given?
    raise ArgumentError, "cannot supply a block and a value" if provision
    provision = factory_block
  end
  config_key, value = extract_ruse_config provision
  __application__.injector.configure config_key => { as.to_sym => value }
end

Private Instance Methods

extract_ruse_config(provision) click to toggle source
# File lib/pico/application.rb, line 109
def extract_ruse_config(provision)
  case provision
  when Class then [:aliases, provision.name]
  when String then [:aliases, provision]
  when -> p { p.respond_to?(:call) } then [:factories, provision]
  else [:values, provision]
  end
end