lib/recurly.rb in recurly-2.20.3 vs lib/recurly.rb in recurly-3.0.0.beta.1

- old
+ new

@@ -1,169 +1,16 @@ -# Recurly is a Ruby client for Recurly's REST API. -module Recurly - require 'recurly/error' - require 'recurly/helper' - require 'recurly/api' - require 'recurly/resource' - require 'recurly/shipping_address' - require 'recurly/gateway_attribute' - require 'recurly/billing_info' - require 'recurly/custom_field' - require 'recurly/account_acquisition' - require 'recurly/account' - require 'recurly/account_balance' - require 'recurly/add_on' - require 'recurly/address' - require 'recurly/business_entity' - require 'recurly/tax_detail' - require 'recurly/tax_type' - require 'recurly/juris_detail' - require 'recurly/adjustment' - require 'recurly/coupon' - require 'recurly/credit_payment' - require 'recurly/customer_permission' - require 'recurly/entitlement' - require 'recurly/external_account' - require 'recurly/external_charge' - require 'recurly/external_invoice' - require 'recurly/external_product' - require 'recurly/external_product_reference' - require 'recurly/external_payment_phase' - require 'recurly/external_subscription' - require 'recurly/helper' - require 'recurly/invoice' - require 'recurly/invoice_collection' - require 'recurly/item' - require 'recurly/js' - require 'recurly/money' - require 'recurly/measured_unit' - require 'recurly/note' - require 'recurly/plan' - require 'recurly/plan_ramp_interval' - require 'recurly/redemption' - require 'recurly/shipping_fee' - require 'recurly/shipping_method' - require 'recurly/subscription' - require 'recurly/subscription_add_on' - require 'recurly/subscription_ramp_interval' - require 'recurly/transaction' - require 'recurly/usage' - require 'recurly/version' - require 'recurly/xml' - require 'recurly/delivery' - require 'recurly/gift_card' - require 'recurly/purchase' - require 'recurly/webhook' - require 'recurly/verify' - require 'recurly/tier' - require 'recurly/dunning_campaign' - require 'recurly/dunning_cycle' - require 'recurly/invoice_template' - require 'recurly/percentage_tier' - require 'recurly/currency_percentage_tier' - require 'recurly/sub_add_on_percentage_tier' - require 'recurly/custom_field_definition' - require 'recurly/general_ledger_account' - require 'recurly/performance_obligation' +require "recurly/version" +require "recurly/schema" +require "recurly/request" +require "recurly/resource" +require "recurly/pager" +# Include all request files +resources = File.join(File.dirname(__FILE__), 'recurly', 'requests', '*.rb') +Dir.glob(resources, &method(:require)) +# Include all resource files +resources = File.join(File.dirname(__FILE__), 'recurly', 'resources', '*.rb') +Dir.glob(resources, &method(:require)) +require "recurly/errors" +require "recurly/client" - @subdomain = nil - - # This exception is raised if Recurly has not been configured. - class ConfigurationError < Error - end - - class << self - # Set a config based on current thread context. - # Any default set will say in effect unless overwritten in the config_params. - # Call this method with out any arguments to have it unset the thread context config values. - # @param config_params - Hash with the following keys: subdomain, api_key, default_currency - def config(config_params = nil) - Thread.current[:recurly_config] = config_params - end - - # @return [String] A subdomain. - def subdomain - if Thread.current[:recurly_config] && Thread.current[:recurly_config][:subdomain] - return Thread.current[:recurly_config][:subdomain] - end - @subdomain || 'api' - end - attr_writer :subdomain - - # @return [String] An API key. - # @raise [ConfigurationError] If not configured. - def api_key - if Thread.current[:recurly_config] && Thread.current[:recurly_config][:api_key] - return Thread.current[:recurly_config][:api_key] - end - - defined? @api_key and @api_key or raise( - ConfigurationError, "Recurly.api_key not configured" - ) - end - attr_writer :api_key - - # @return [String, nil] A default currency. - def default_currency - if Thread.current[:recurly_config] && Thread.current[:recurly_config][:default_currency] - return Thread.current[:recurly_config][:default_currency] - end - - return @default_currency if defined? @default_currency - @default_currency = 'USD' - end - attr_writer :default_currency - - # @return [JS] The Recurly.js module. - def js - JS - end - - # Assigns a logger to log requests/responses and more. - # The logger can only be set if the environment variable - # `RECURLY_INSECURE_DEBUG` equals `true`. - # - # @return [Logger, nil] - # @example - # require 'logger' - # Recurly.logger = Logger.new STDOUT - # @example Rails applications automatically log to the Rails log: - # Recurly.logger = Rails.logger - # @example Turn off logging entirely: - # Recurly.logger = nil # Or Recurly.logger = Logger.new nil - attr_accessor :logger - - def logger=(logger) - if ENV['RECURLY_INSECURE_DEBUG'].to_s.downcase == 'true' - @logger = logger - puts <<-MSG - [WARNING] Recurly logger enabled. The logger has the potential to leak - PII and should never be used in production environments. - MSG - else - puts <<-MSG - [WARNING] Recurly logger has been disabled. If you wish to use it, - only do so in a non-production environment and make sure - the `RECURLY_INSECURE_DEBUG` environment variable is set to `true`. - MSG - end - end - - # Convenience logging method includes a Logger#progname dynamically. - # @return [true, nil] - def log level, message - logger.send(level, name) { message } - end - - if RUBY_VERSION <= "1.9.0" - def const_defined? sym, inherit = false - raise ArgumentError, "inherit must be false" if inherit - super sym - end - - def const_get sym, inherit = false - raise ArgumentError, "inherit must be false" if inherit - super sym - end - end - end +module Recurly end