class ThisData::Configuration

Constants

ThisData's JS library (optional) adds a cookie with this name

Attributes

defaults[R]

Public Class Methods

config_option(name) click to toggle source

Programatically create attr accessors for config_option

# File lib/this_data/configuration.rb, line 10
def self.config_option(name)
  define_method(name) do
    read_value(name)
  end

  define_method("#{name}=") do |value|
    set_value(name, value)
  end
end
new() click to toggle source
# File lib/this_data/configuration.rb, line 55
def initialize
  @config_values = {}

  # set default attribute values
  @defaults = OpenStruct.new({
    async:              true,
    user_method:        :current_user,
    user_id_method:     :id,
    user_name_method:   :name,
    user_email_method:  :email,
    user_mobile_method: :mobile,
    expect_js_cookie:   false,
    base_uri: 'https://api.thisdata.com/v1/'
  })
end

Public Instance Methods

[](key) click to toggle source
# File lib/this_data/configuration.rb, line 71
def [](key)
  read_value(key)
end
[]=(key, value) click to toggle source
# File lib/this_data/configuration.rb, line 75
def []=(key, value)
  set_value(key, value)
end

Private Instance Methods

read_value(name) click to toggle source
# File lib/this_data/configuration.rb, line 81
def read_value(name)
  if @config_values.has_key?(name)
    @config_values[name]
  else
    @defaults.send(name)
  end
end
set_value(name, value) click to toggle source
# File lib/this_data/configuration.rb, line 89
def set_value(name, value)
  @config_values[name] = value
end