class Uploadcare::Rails::Settings

Constants

PUBLIC_ALLOWED_KEYS

TODO: ALL the keys god damn it

Public Class Methods

new(config) click to toggle source
Calls superclass method
# File lib/uploadcare/rails/settings.rb, line 34
def initialize(config)
  # extract envaroments settings
  settings = config.with_indifferent_access[::Rails.env]
  unless settings.present?
    raise ArgumentError, 'config is empty or not given at all'
  end

  # build settings object (basicly openstruct)
  # merge defaults with actual settings

  # strip defaults suplied by uploadcare-ruby gem from private/pub key
  uc_defaults =
    Uploadcare::DEFAULT_SETTINGS.except(:public_key, :private_key)

  defaults = Uploadcare::Rails::DEFAULT_SETTINGS.merge(uc_defaults)
  settings = defaults.merge(settings)
  super settings

  # validates settings atributes.
  unless valid?
    raise ArgumentError, 'Private or public key options were not provided'
  end
end

Public Instance Methods

api() click to toggle source
# File lib/uploadcare/rails/settings.rb, line 66
def api
  @api ||= Uploadcare::Api.new(api_settings)
end
api_settings() click to toggle source
# File lib/uploadcare/rails/settings.rb, line 58
def api_settings
  @api_settings ||= build_api_settings
end
widget_settings() click to toggle source
# File lib/uploadcare/rails/settings.rb, line 62
def widget_settings
  @widget_settings ||= build_widget_settings
end

Private Instance Methods

build_api_settings() click to toggle source
# File lib/uploadcare/rails/settings.rb, line 76
def build_api_settings
  marshal_dump
end
build_widget_settings() click to toggle source
# File lib/uploadcare/rails/settings.rb, line 72
def build_widget_settings
  marshal_dump.slice(*PUBLIC_ALLOWED_KEYS)
end