Sha256: b2262c094fd0fbf385ca34ae82b412961b8c85593eb452d118212fc40dbaac2b
Contents?: true
Size: 1.2 KB
Versions: 2
Compression:
Stored size: 1.2 KB
Contents
# frozen_string_literal: true require "active_support/core_ext/hash" require "config_default/version" require "config_default/config" require "config_default/init" require "config_default/struct" module ConfigDefault extend self attr_accessor :config @config = ConfigDefault::Config.new def configure yield(config) if block_given? end def init_rails_patch! ConfigDefault::Init.init_rails_patch! end def load(name, key: Rails.env, symbolize_keys: false, deep_symbolize_keys: false) default_config = load_file("#{name}.#{config.postfix}") config = load_file(name) data = default_config.deep_merge(config) data = key ? data[key] : data return {} if data.nil? if deep_symbolize_keys data.deep_symbolize_keys elsif symbolize_keys data.symbolize_keys else data end end def load_file(name) file_name = File.join(config.config_path, "#{name}.yml") ActiveSupport::ConfigurationFile.parse(file_name) rescue {} end def load_struct(name, key: Rails.env, recursive: false, allow_nil: false) attributes = load(name, key: key) ConfigDefault::Struct.new(attributes, recursive: recursive, allow_nil: allow_nil) end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
config_default-0.3.1 | lib/config_default.rb |
config_default-0.3.0 | lib/config_default.rb |