Module: Traxis
- Defined in:
- lib/traxis.rb,
lib/traxis/version.rb,
lib/traxis/response.rb,
lib/traxis/responses.rb,
lib/traxis/controller.rb,
lib/traxis/controller_actions.rb,
lib/traxis/controller_helpers.rb
Defined Under Namespace
Modules: Controller, ControllerActions, ControllerHelpers, Response, Responses
Constant Summary
collapse
- VERSION =
"0.0.2"
Class Method Summary
collapse
Class Method Details
.bootstrap! ⇒ Object
6
7
8
9
10
|
# File 'lib/traxis.rb', line 6
def self.bootstrap!
load_concerns if concerns.any?
load_responses if responses.any?
register_responses
end
|
.concerns ⇒ Object
22
23
24
|
# File 'lib/traxis.rb', line 22
def self.concerns
@concerns ||= ::Dir[root.join('app', '**', '*concerns', '*.rb')]
end
|
.controllers ⇒ Object
12
13
14
|
# File 'lib/traxis.rb', line 12
def self.controllers
@controllers ||=::Dir[root.join('app', 'controllers', '**', '*_controller', '*.rb')]
end
|
.eager_require_directory(*args) ⇒ Object
26
27
28
29
30
|
# File 'lib/traxis.rb', line 26
def self.eager_require_directory(*args)
::Dir[::Traxis.root.join(*args)].each do |path|
require path
end
end
|
.load_concerns ⇒ Object
16
17
18
19
20
|
# File 'lib/traxis.rb', line 16
def self.load_concerns
concerns.each do |path|
require path
end
end
|
.load_responses ⇒ Object
32
33
34
35
36
|
# File 'lib/traxis.rb', line 32
def self.load_responses
responses.each do |path|
require path
end
end
|
.register_response(klass) ⇒ Object
Because praxis is using inherited hook,responses arent registered i.e. response.response_name is nil, as rest of class (where assignment is made) hasn’t been loaded yet
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/traxis.rb', line 41
def self.register_response(klass)
::Praxis::ApiDefinition.define do |api|
api.response_template klass.response_name do
status klass.status
end
end
if !klass.subclasses.empty?
klass.subclasses.each do |subklass|
::Traxis.register_response(subklass)
end
end
end
|
.register_responses ⇒ Object
.responses ⇒ Object
61
62
63
|
# File 'lib/traxis.rb', line 61
def self.responses
@responses ||=::Dir[root.join('app', '**', '*concerns', '*.rb')]
end
|
.root ⇒ Object
65
66
67
|
# File 'lib/traxis.rb', line 65
def self.root
::Praxis::Application.instance.root
end
|