Sha256: 98cfa30d557582f85acae605215ee3cee8ba75653e2072eab0c0eb36298a68d5

Contents?: true

Size: 1.38 KB

Versions: 36

Compression:

Stored size: 1.38 KB

Contents

# frozen_string_literal: true

module Stripe
  class SingletonAPIResource < APIResource
    def self.resource_url
      if self == SingletonAPIResource
        raise NotImplementedError,
              "SingletonAPIResource is an abstract class. You should " \
              "perform actions on its subclasses (Balance, etc.)"
      end
      # Namespaces are separated in object names with periods (.) and in URLs
      # with forward slashes (/), so replace the former with the latter.
      "/v1/#{object_name.downcase.tr('.', '/')}"
    end

    def resource_url
      self.class.resource_url
    end

    def self.retrieve(params_or_opts = {}, definitely_opts = nil)
      opts = nil
      params = nil
      if definitely_opts.nil?
        unrecognized_key = params_or_opts.keys.find { |k| !Util::OPTS_USER_SPECIFIED.include?(k) }
        if unrecognized_key
          raise ArgumentError,
                "Unrecognized request option: #{unrecognized_key}. Did you mean to specify this as retrieve params? " \
                "If so, you must explicitly pass an opts hash as a second argument. " \
                "For example: .retrieve({#{unrecognized_key}: 'foo'}, {})"
        end

        opts = params_or_opts
      else
        opts = definitely_opts
        params = params_or_opts
      end

      instance = new(params, Util.normalize_opts(opts))
      instance.refresh
      instance
    end
  end
end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
stripe-12.7.0.pre.beta.2 lib/stripe/singleton_api_resource.rb
stripe-12.7.0.pre.beta.1 lib/stripe/singleton_api_resource.rb
stripe-12.6.0 lib/stripe/singleton_api_resource.rb
stripe-12.6.0.pre.beta.1 lib/stripe/singleton_api_resource.rb
stripe-12.5.0 lib/stripe/singleton_api_resource.rb
stripe-12.5.0.pre.beta.2 lib/stripe/singleton_api_resource.rb
stripe-12.5.0.pre.beta.1 lib/stripe/singleton_api_resource.rb
stripe-12.4.0 lib/stripe/singleton_api_resource.rb
stripe-12.3.0 lib/stripe/singleton_api_resource.rb
stripe-12.2.0 lib/stripe/singleton_api_resource.rb
stripe-12.2.0.pre.beta.1 lib/stripe/singleton_api_resource.rb
stripe-12.1.0 lib/stripe/singleton_api_resource.rb
stripe-12.0.0 lib/stripe/singleton_api_resource.rb
stripe-11.7.0 lib/stripe/singleton_api_resource.rb
stripe-11.7.0.pre.beta.1 lib/stripe/singleton_api_resource.rb
stripe-11.6.0 lib/stripe/singleton_api_resource.rb
stripe-11.4.0.pre.beta.1 lib/stripe/singleton_api_resource.rb
stripe-11.3.0 lib/stripe/singleton_api_resource.rb
stripe-11.3.0.pre.beta.1 lib/stripe/singleton_api_resource.rb
stripe-11.2.0 lib/stripe/singleton_api_resource.rb