Sha256: ac88118a264802fa9dbdf0b067cab5c197e640d17dcc38e88609f4ed0fcced1a
Contents?: true
Size: 1.82 KB
Versions: 1
Compression:
Stored size: 1.82 KB
Contents
module Alula class ClientConfiguration REQUEST_ATTRIBUTES = %i[api_key api_url debug customer_id user_agent] # Using RequestStore so we're thread safe even with our non-thread-safe architecture :( REQUEST_ATTRIBUTES.each do |prop| define_method(prop) do RequestStore.store["alula_#{prop}"] end define_method("#{prop}=") do |value| RequestStore.store["alula_#{prop}"] = value end end # Stash the user type as a role for us to infer from later # You can set a symbolized role via role = :user, or provide the string userType # We cast to a symbolized role for ease of use in consumers. def role=(user_type) unless user_type.is_a?(Symbol) || user_type.is_a?(String) raise Alula::InvalidRoleError, 'Role must be symbol or string' end RequestStore.store['alula_role'] = Util.underscore(user_type).to_sym end def role RequestStore.store['alula_role'] end def ensure_api_key_set if api_key.nil? raise Alula::NotConfiguredError, 'Set your API access token before making requests with Alula::Client.config.api_key = {access_token}' end end def ensure_api_url_set if api_url.nil? raise Alula::NotConfiguredError, 'did you forget to set the Alula::Client.config.api_url config option?' end end def ensure_customer_id_set unless customer_id raise Alula::NotConfiguredError, 'Set your customer_id before making requests to the video API' end end def ensure_role_set if role.nil? message = 'User role not configured! You must set '\ 'Alula::Client.config.role '\ 'before attempting to save any resources' raise Alula::NotConfiguredError, message end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
alula-ruby-0.54.0 | lib/alula/client_configuration.rb |