class Utusemi::Configuration

Public Class Methods

new() click to toggle source
# File lib/utusemi/configuration.rb, line 3
def initialize
  @maps ||= {}
end

Public Instance Methods

map(name, *args, &block) click to toggle source
# File lib/utusemi/configuration.rb, line 7
def map(name, *args, &block)
  name = (name || '').to_sym
  return map_get(name, *args) unless block_given?
  options = args.shift if args.first.is_a? Hash
  map_set(name, options, &block)
end

Private Instance Methods

map_get(name, *args) click to toggle source
# File lib/utusemi/configuration.rb, line 22
def map_get(name, *args)
  map = @maps[name].try(:dup) || {}
  block = map.delete(:block)
  definition = Definition.new(map)
  definition.exec(*args, &block)
end
map_set(name, options, &block) click to toggle source
# File lib/utusemi/configuration.rb, line 16
def map_set(name, options, &block)
  @maps[name] = {}
  @maps[name].update(options) if options
  @maps[name].update(block: block)
end