Sha256: 6a810bad074d4c9a616253c12f7d944ce8a92bf3b2cdabf64b10bf1bd1cd1948

Contents?: true

Size: 1.04 KB

Versions: 11

Compression:

Stored size: 1.04 KB

Contents

require "ostruct"

module Authsignal
  class Configuration
        def self.config_option(name)
            define_method(name) do
                read_value(name)
            end

            define_method("#{name}=") do |value|
                set_value(name, value)
            end
        end
  
        config_option :api_secret_key

        config_option :base_uri

        def initialize
            @config_values = {}
      
            # set default attribute values
            @defaults = OpenStruct.new({
                base_uri: 'https://signal.authsignal.com/v1/'
            })
        end

        def [](key)
            read_value(key)
        end
    
        def []=(key, value)
            set_value(key, value)
        end

        private
        def read_value(name)
            if @config_values.has_key?(name)
                @config_values[name]
            else
                @defaults.send(name)
            end
        end

        def set_value(name, value)
            @config_values[name] = value
        end
  end    
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
authsignal-ruby-2.1.3 lib/authsignal/configuration.rb
authsignal-ruby-2.1.2 lib/authsignal/configuration.rb
authsignal-ruby-2.1.1 lib/authsignal/configuration.rb
authsignal-ruby-2.0.0 lib/authsignal/configuration.rb
authsignal-ruby-1.0.1 lib/authsignal/configuration.rb
authsignal-ruby-1.0.0 lib/authsignal/configuration.rb
authsignal-ruby-0.1.6 lib/authsignal/configuration.rb
authsignal-ruby-0.1.5 lib/authsignal/configuration.rb
authsignal-ruby-0.1.4 lib/authsignal/configuration.rb
authsignal-ruby-0.1.3 lib/authsignal/configuration.rb
authsignal-ruby-0.1.2 lib/authsignal/configuration.rb