Class: OmiseGO::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/omisego/configuration.rb

Constant Summary collapse

OPTIONS =
{
  access_key: -> { ENV['OMISEGO_ACCESS_KEY'] },
  secret_key: -> { ENV['OMISEGO_SECRET_KEY'] },
  base_url: -> { ENV['OMISEGO_BASE_URL'] },
  logger: nil
}.freeze
OMISEGO_OPTIONS =
{
  api_version: '1',
  auth_scheme: 'OMGServer',
  models: {
    user: OmiseGO::User,
    error: OmiseGO::Error,
    authentication_token: OmiseGO::AuthenticationToken,
    address: OmiseGO::Address,
    balance: OmiseGO::Balance,
    minted_token: OmiseGO::MintedToken,
    list: OmiseGO::List,
    setting: OmiseGO::Setting,
    transaction: OmiseGO::Transaction,
    exchange: OmiseGO::Exchange,
    transaction_source: OmiseGO::TransactionSource
  }
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Configuration

Returns a new instance of Configuration.



31
32
33
34
35
36
37
38
39
40
41
# File 'lib/omisego/configuration.rb', line 31

def initialize(options = {})
  OPTIONS.each do |name, val|
    value = options ? options[name] || options[name.to_sym] : nil
    value ||= val.call if val.respond_to?(:call)
    instance_variable_set("@#{name}", value)
  end

  OMISEGO_OPTIONS.each do |name, value|
    instance_variable_set("@#{name}", value)
  end
end

Instance Method Details

#[](option) ⇒ Object



43
44
45
# File 'lib/omisego/configuration.rb', line 43

def [](option)
  instance_variable_get("@#{option}")
end

#merge(options) ⇒ Object



53
54
55
56
57
# File 'lib/omisego/configuration.rb', line 53

def merge(options)
  OPTIONS.each_key do |name|
    instance_variable_set("@#{name}", options[name]) if options[name]
  end
end

#to_hashObject



47
48
49
50
51
# File 'lib/omisego/configuration.rb', line 47

def to_hash
  OPTIONS.keys.each_with_object({}) do |option, hash|
    hash[option.to_sym] = self[option]
  end
end