arkaan 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/arkaan/utils/controller_without_filter.rb +5 -2
- data/lib/arkaan/utils/micro_service.rb +10 -0
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '057528c0fc0b7cf0a8fe4277d95ec306335275be'
|
4
|
+
data.tar.gz: 6dbb9551a932b8cbab69fc8247fb25c03c54c6a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a5d9b711367175109942b3dca458a1acfedf443caa04d7672363c66f32fbf1528381dff35fdedd048e04667844137a2ed668eccb39504944f5b16d886ac6f0e
|
7
|
+
data.tar.gz: 8088aa88b8c56adba51d9f849cad10ab614afd6749e3436e878a83890613ec1c5df963b470e58d5b09d9799882ba0eb7af080e9133fae19c299f6465416e58ae
|
@@ -31,6 +31,8 @@ module Arkaan
|
|
31
31
|
# @param premium [Boolean] TRUE to make the route premium, FALSE otherwise.
|
32
32
|
def self.declare_route_with(verb, path, premium, options, &block)
|
33
33
|
service = Arkaan::Utils::MicroService.instance.service
|
34
|
+
complete_path = "#{Arkaan::Utils::MicroService.instance.path}#{path == '/' ? '' : path}"
|
35
|
+
|
34
36
|
unless service.nil? || !service.routes.where(path: path, verb: verb).first.nil?
|
35
37
|
route = Arkaan::Monitoring::Route.create(path: path, verb: verb, premium: premium, service: service)
|
36
38
|
if !options.nil? && !options[:authenticated].nil?
|
@@ -42,7 +44,7 @@ module Arkaan
|
|
42
44
|
end
|
43
45
|
end
|
44
46
|
if premium
|
45
|
-
self.public_send(verb,
|
47
|
+
self.public_send(verb, complete_path) do
|
46
48
|
@sinatra_route = parse_current_route
|
47
49
|
if !@application.premium?
|
48
50
|
custom_error(403, 'common.app_key.forbidden')
|
@@ -50,7 +52,7 @@ module Arkaan
|
|
50
52
|
instance_eval(&block)
|
51
53
|
end
|
52
54
|
else
|
53
|
-
self.public_send(verb,
|
55
|
+
self.public_send(verb, complete_path, &block)
|
54
56
|
end
|
55
57
|
end
|
56
58
|
|
@@ -133,6 +135,7 @@ module Arkaan
|
|
133
135
|
# @param status [Integer] the HTTP status to halt the application with.
|
134
136
|
# @param path [String] the path in the configuration file to access the URL.
|
135
137
|
def custom_error(status, path)
|
138
|
+
|
136
139
|
route, field, error = path.split('.')
|
137
140
|
docs = settings.errors[route][field][error] rescue ''
|
138
141
|
halt status, {status: status, field: field, error: error, docs: docs}.to_json
|
@@ -20,6 +20,9 @@ module Arkaan
|
|
20
20
|
# @!attribute [r] type
|
21
21
|
# @return [Symbol] the type of instance the application is declaring
|
22
22
|
attr_reader :type
|
23
|
+
# @!attribute [rw] controller_classes
|
24
|
+
# @return [Array<Class>] an array of controller classes to run
|
25
|
+
attr_accessor :controller_classes
|
23
26
|
|
24
27
|
def initialize
|
25
28
|
@location = false
|
@@ -27,6 +30,13 @@ module Arkaan
|
|
27
30
|
@instance = false
|
28
31
|
@name = false
|
29
32
|
@type = ENV['INSTANCE_TYPE'] || :heroku
|
33
|
+
@controller_classes = []
|
34
|
+
end
|
35
|
+
|
36
|
+
# Add a controller class to the controllers to use.
|
37
|
+
# @param classname [Class] the class to add to the controller to load at startup.
|
38
|
+
def add_controller_class(classname)
|
39
|
+
@controller_classes << classname
|
30
40
|
end
|
31
41
|
|
32
42
|
# Determines if the application can be loaded (all the parameters have been correctly set)
|