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

ACCEPT_HEADER_REGEX =
/\Aapplication\/vnd\.api(\.v([0-9]))?\+json\z/
VERSION =
"0.2.7.0"

Class Method Summary collapse

Class Method Details

.activated?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/jko_api.rb', line 40

def self.activated?
  current_version_number.present? && current_version_number > 0
end

.auth_setup(&block) ⇒ Object



74
75
76
# File 'lib/jko_api.rb', line 74

def self.auth_setup(&block)
  self.auth_initializer = block
end

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

Yields:

  • (configuration)


28
29
30
31
32
# File 'lib/jko_api.rb', line 28

def self.configure
  self.configuration ||= Configuration.new
  yield(configuration)
  setup(configuration.base_controller)
end

.current_version_number=(version_number) ⇒ Object



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

def self.current_version_number=(version_number)
  @@current_version_number = version_number.to_i
end

.max_version_numberObject



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

def self.max_version_number
  versioning.max_version_number
end

.min_version_numberObject



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

def self.min_version_number
  versioning.min_version_number
end

.resetObject



44
45
46
# File 'lib/jko_api.rb', line 44

def self.reset
  self.current_version_number = nil
end

.routes(context, &block) ⇒ Object



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

def self.routes(context, &block)
  context.scope(module: JkoApi.configuration.api_namespace, constraints: JkoApi::Constraints, defaults: {format: :json}) do
    JkoApi.versions(context, &block)
  end
end

.setup(base_controller) ⇒ Object



34
35
36
37
38
# File 'lib/jko_api.rb', line 34

def self.setup(base_controller)
  Util.stupid_hack!
  ClassDescendantsBuilder.build(base_controller, upto: max_version_number)
  @@auth_initializer.call
end

.versioningObject



60
61
62
# File 'lib/jko_api.rb', line 60

def self.versioning
  @@versioning || raise('call `.versions` first')
end

.versions(context, &block) ⇒ Object



64
65
66
# File 'lib/jko_api.rb', line 64

def self.versions(context, &block)
  @@versioning = Versioning.new(context, &block)
end