mirror of
https://github.com/stripe/stripe-ruby.git
synced 2025-05-13 01:11:56 -04:00
* Bump Rubocop to 0.57.2 * Style/StderrPuts: Use warn instead of .puts * Style/ExpandPathArguments: Use expand_path('../test_helper', __dir__) instead of expand_path('../../test_helper', __FILE__) * Style/Encoding: Unnecessary utf-8 encoding comment * Style/StringLiterals: Prefer double-quoted strings * Style/AccessModifierDeclarations * Style/FormatStringToken: Prefer annotated tokens * Naming/UncommunicativeMethodParamName * Metrics/LineLength: set maximum line length to 100 characters * Style/IfUnlessModifier: Favor modifier if usage when having a single-line body * Style/ClassVars * Metrics/LineLength: set maximum line length to 80 characters (default) * Style/AccessModifierDeclarations: EnforcedStyle: inline
27 lines
753 B
Ruby
27 lines
753 B
Ruby
# 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/#{self::OBJECT_NAME.downcase.tr('.', '/')}"
|
|
end
|
|
|
|
def resource_url
|
|
self.class.resource_url
|
|
end
|
|
|
|
def self.retrieve(opts = {})
|
|
instance = new(nil, Util.normalize_opts(opts))
|
|
instance.refresh
|
|
instance
|
|
end
|
|
end
|
|
end
|