Sha256: eae1976ccfd21d7124b333abdc222c2a194b8d3b6db67389e5c11022e909b559

Contents?: true

Size: 734 Bytes

Versions: 10

Compression:

Stored size: 734 Bytes

Contents

class Hash
  def to_settings
    Payanyway::Helpers::Settings.new(self)
  end
end

module Payanyway
  module Helpers
    class Settings
      delegate :[], to: '@settings'

      def initialize(settings)
        @settings = HashWithIndifferentAccess.new(settings.invert)
      end

      # Выбирает из настроек нужные
      # и подставляет в переданный hash
      #
      #   @settings = { 'MNT_ID' => :id, 'MNT_CURRENCY' => :currency }
      #   hash = { id: 1 }
      #   => { 'MNT_ID': 1 }
      def configure_by(hash)
        hash.each_with_object({}) do |(key, value), memo|
          memo[ @settings[key] ] = value if @settings.has_key?(key)
        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
payanyway-2.0.1 lib/payanyway/helpers/settings.rb
payanyway-2.0.0 lib/payanyway/helpers/settings.rb
payanyway-1.2.6 lib/payanyway/helpers/settings.rb
payanyway-1.2.5 lib/payanyway/helpers/settings.rb
payanyway-1.2.3 lib/payanyway/helpers/settings.rb
payanyway-1.2.4 lib/payanyway/helpers/settings.rb
payanyway-1.2.2 lib/payanyway/helpers/settings.rb
payanyway-1.2.1 lib/payanyway/helpers/settings.rb
payanyway-1.2.0 lib/payanyway/helpers/settings.rb
payanyway-1.0.0 lib/payanyway/helpers/settings.rb