Sha256: 6ad07806f2f15e1a35b615e3830899074dbf596c0b69394355fccc0da1c7b267

Contents?: true

Size: 1.12 KB

Versions: 166

Compression:

Stored size: 1.12 KB

Contents

# frozen_string_literal: true

require 'eac_ruby_utils/require_sub'

module EacRubyUtils
  # Provide a option by constant, method or options object.
  module SettingsProvider
    ::EacRubyUtils.require_sub __FILE__, base: self

    def setting_constant_name(key, fullname = false)
      setting_value_instance(key).constant_name(fullname)
    end

    def setting_search_order
      %w[settings_object method constant]
    end

    def settings_object
      respond_to?(settings_object_name) ? send(settings_object_name) : {}
    end

    def settings_object_name
      'settings'
    end

    def setting_value(key, options = {})
      setting_value_instance(key, options).value
    end

    def setting_value_by_constant(key)
      setting_value_instance(key).value_by_constant
    end

    def setting_value_by_method(key)
      setting_value_instance(key).value_by_method
    end

    def setting_value_by_settings_object(key)
      setting_value_instance(key).value_by_settings_object
    end

    def setting_value_instance(key, options = {})
      ::EacRubyUtils::SettingsProvider::SettingValue.new(self, key, options)
    end
  end
end

Version data entries

166 entries across 166 versions & 4 rubygems

Version Path
eac_tools-0.41.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.40.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.39.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_ruby_utils-0.106.1 lib/eac_ruby_utils/settings_provider.rb
eac_ruby_utils-0.106.0 lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.38.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.37.2 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_ruby_utils-0.105.0 lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.37.1 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.37.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.36.1 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.36.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.35.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.34.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.33.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.32.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_ruby_utils-0.104.0 lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.31.1 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.31.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb
eac_tools-0.30.0 sub/eac_ruby_utils/lib/eac_ruby_utils/settings_provider.rb