Module: Reji

Defined in:
lib/reji.rb,
lib/reji/tax.rb,
lib/reji/engine.rb,
lib/reji/errors.rb,
lib/reji/invoice.rb,
lib/reji/payment.rb,
lib/reji/version.rb,
lib/reji/billable.rb,
lib/reji/subscription.rb,
lib/reji/configuration.rb,
lib/reji/payment_method.rb,
lib/reji/concerns/prorates.rb,
lib/reji/invoice_line_item.rb,
lib/reji/subscription_item.rb,
lib/reji/subscription_builder.rb,
lib/reji/concerns/manages_customer.rb,
lib/reji/concerns/manages_invoices.rb,
lib/reji/concerns/performs_charges.rb,
app/controllers/reji/payment_controller.rb,
app/controllers/reji/webhook_controller.rb,
lib/reji/concerns/manages_subscriptions.rb,
lib/reji/concerns/manages_payment_methods.rb,
lib/generators/reji/install/install_generator.rb,
lib/reji/concerns/interacts_with_payment_behavior.rb

Defined Under Namespace

Modules: Billable, Generators, InteractsWithPaymentBehavior, ManagesCustomer, ManagesInvoices, ManagesPaymentMethods, ManagesSubscriptions, PerformsCharges, Prorates Classes: AccessDeniedHttpError, Configuration, CustomerAlreadyCreatedError, Engine, IncompletePaymentError, InvalidCustomerError, InvalidInvoiceError, InvalidPaymentMethodError, Invoice, InvoiceLineItem, Payment, PaymentActionRequiredError, PaymentController, PaymentFailureError, PaymentMethod, Subscription, SubscriptionBuilder, SubscriptionItem, SubscriptionUpdateFailureError, Tax, WebhookController

Constant Summary collapse

STRIPE_VERSION =

The Stripe API version.

'2020-08-27'
VERSION =
'1.0.0'
@@deactivate_past_due =

Indicates if Reji will mark past due subscriptions as inactive.

true

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.deactivate_past_dueObject

Returns the value of attribute deactivate_past_due.



36
37
38
# File 'lib/reji.rb', line 36

def deactivate_past_due
  @deactivate_past_due
end

Class Method Details

.configurationObject



48
49
50
# File 'lib/reji/configuration.rb', line 48

def self.configuration
  @configuration ||= Configuration.new
end

.configuration=(config) ⇒ Object



52
53
54
# File 'lib/reji/configuration.rb', line 52

def self.configuration=(config)
  @configuration = config
end

.configure {|configuration| ... } ⇒ Object

Yields:



56
57
58
# File 'lib/reji/configuration.rb', line 56

def self.configure
  yield(configuration)
end

.find_billable(stripe_id) ⇒ Object

Get the billable entity instance by Stripe ID.



40
41
42
43
44
45
# File 'lib/reji.rb', line 40

def self.find_billable(stripe_id)
  return if stripe_id.nil?

  model = @configuration.model
  model.constantize.where(stripe_id: stripe_id).first
end

.format_amount(amount, currency = nil) ⇒ Object

Format the given amount into a displayable currency.



56
57
58
59
60
61
62
63
64
65
# File 'lib/reji.rb', line 56

def self.format_amount(amount, currency = nil)
  currency = 'usd' if currency.nil?

  Money.rounding_mode = BigDecimal::ROUND_HALF_EVEN
  Money.locale_backend = :i18n

  money = Money.new(amount, Money::Currency.new(currency.upcase))

  money.format
end

.keep_past_due_subscriptions_activeObject

Configure to maintain past due subscriptions as active.



68
69
70
71
72
# File 'lib/reji.rb', line 68

def self.keep_past_due_subscriptions_active
  @@deactivate_past_due = false

  self
end

.stripe_options(options = {}) ⇒ Object

Get the default Stripe API options.



48
49
50
51
52
53
# File 'lib/reji.rb', line 48

def self.stripe_options(options = {})
  {
    :api_key => Reji.configuration.secret,
    :stripe_version => Reji::STRIPE_VERSION,
  }.merge(options)
end