Module: JkoApi
- Defined in:
- lib/jko_api.rb,
lib/jko_api/util.rb,
lib/jko_api/engine.rb,
lib/jko_api/version.rb,
lib/jko_api/responder.rb,
lib/jko_api/controller.rb,
lib/jko_api/middleware.rb,
lib/jko_api/versioning.rb,
lib/jko_api/constraints.rb,
lib/jko_api/test_helpers.rb,
lib/jko_api/configuration.rb,
lib/jko_api/request_error.rb,
lib/jko_api/strategies/bearer.rb,
lib/jko_api/controller_helpers.rb,
lib/jko_api/class_descendants_builder.rb
Defined Under Namespace
Modules: Constraints, Controller, ControllerHelpers, Strategies, TestHelpers
Classes: ClassDescendantsBuilder, Configuration, Engine, Middleware, RequestError, Responder, Util, Versioning
Constant Summary
collapse
/\Aapplication\/vnd\.api(\.v([0-9]))?\+json\z/
- VERSION =
"0.2.9"
- @@versioning =
nil
Class Method Summary
collapse
Class Method Details
.activated? ⇒ Boolean
43
44
45
|
# File 'lib/jko_api.rb', line 43
def self.activated?
current_version_number.present? && current_version_number > 0
end
|
.auth_setup(&block) ⇒ Object
79
80
81
|
# File 'lib/jko_api.rb', line 79
def self.auth_setup(&block)
self.auth_initializer = block
end
|
.complete_setup(base_controller) ⇒ Object
35
36
37
38
39
40
41
|
# File 'lib/jko_api.rb', line 35
def self.complete_setup(base_controller)
if Rails.version.to_i < 5
Util.stupid_hack!
end
ClassDescendantsBuilder.build(base_controller, upto: max_version_number)
@@auth_initializer.call
end
|
29
30
31
32
33
|
# File 'lib/jko_api.rb', line 29
def self.configure
self.configuration ||= Configuration.new
yield(configuration)
self.configuration
end
|
.current_version_number=(version_number) ⇒ Object
51
52
53
|
# File 'lib/jko_api.rb', line 51
def self.current_version_number=(version_number)
@@current_version_number = version_number.to_i
end
|
.max_version_number ⇒ Object
59
60
61
|
# File 'lib/jko_api.rb', line 59
def self.max_version_number
versioning.max_version_number
end
|
.min_version_number ⇒ Object
55
56
57
|
# File 'lib/jko_api.rb', line 55
def self.min_version_number
versioning.min_version_number
end
|
.reset ⇒ Object
47
48
49
|
# File 'lib/jko_api.rb', line 47
def self.reset
self.current_version_number = nil
end
|
.routes(context, &block) ⇒ Object
71
72
73
74
75
76
77
|
# File 'lib/jko_api.rb', line 71
def self.routes(context, &block)
context.scope(module: JkoApi.configuration.api_namespace, constraints: JkoApi::Constraints, defaults: {format: :json}) do
JkoApi.versions(context, &block)
end
complete_setup(configuration.base_controller)
context
end
|
.versioning ⇒ Object
63
64
65
|
# File 'lib/jko_api.rb', line 63
def self.versioning
@@versioning || raise('call `.versions` first')
end
|
.versions(context, &block) ⇒ Object
67
68
69
|
# File 'lib/jko_api.rb', line 67
def self.versions(context, &block)
@@versioning = Versioning.new(context, &block)
end
|