class Settei::Base

Public Class Methods

new(config) click to toggle source

@param config [Hash] configuration

# File lib/settei/base.rb, line 26
def initialize(config)
  if !config.is_a? Hash
    raise ArgumentError.new('config is not a hash')
  end

  self.config = config
end

Public Instance Methods

dig_and_wrap(*args) click to toggle source

Same as {#dig}, but will wrap return value as a {Settei::Base} if it is a hash.

# File lib/settei/base.rb, line 35
def dig_and_wrap(*args)
  result = dig(*args)
  if result.is_a?(Hash)
    self.class.new(result)
  else
    result
  end
end
merge(*args) click to toggle source
# File lib/settei/base.rb, line 44
def merge(*args)
  new_hash = @config.merge(*args)
  self.class.new(new_hash)
end

Private Instance Methods

config=(config) click to toggle source
# File lib/settei/base.rb, line 51
def config=(config)
  @config = config

  begin
    require "active_support/core_ext/hash/indifferent_access"
    @config = @config.with_indifferent_access
  rescue LoadError
  end
end