Sha256: 3a0e1a363749ecfaf7ab678fbebfc570d125843db5451c06b07faccd015a8476

Contents?: true

Size: 985 Bytes

Versions: 1

Compression:

Stored size: 985 Bytes

Contents

module SettingsJs
  module Backends

    # Public: SettingsLogic backend implementation to get values of Settings from string.
    #
    # klass - Class which is SettingsLogic in the application.
    #
    # Examples
    #
    #   settingsjs_backend = Settings::Backends::SettingsLogic.new(MySettings)
    #
    class SettingsLogic

      attr_accessor :klass

      def initialize(klass)
        self.klass = klass
      end

      # Public: Use application Settingslogic class to get values of a key.
      #
      # base_key - String with path keys seperated by dots.
      #
      # Examples
      #
      #   Settingsjs::Backends::SettingsLogic.new(MySettings).to_hash('key1.subkey1_1')
      #   # => 'Awesome value!'
      #
      # Returns the Hash value.
      def to_hash(base_key)
        keys      = base_key.split(/\./)
        base_hash = klass.send(keys.shift)

        keys.each { |key| base_hash = base_hash.send(key) }

        base_hash
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
settings_js-0.2.0 lib/settings_js/backends/settings_logic.rb