virtuatable 0.4.0 → 0.5.0
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/virtuatable/api/responses.rb +40 -0
- data/lib/virtuatable/api.rb +1 -0
- data/lib/virtuatable/application.rb +2 -2
- data/lib/virtuatable/builders/base.rb +2 -2
- data/lib/virtuatable/builders/helpers/loaders.rb +1 -1
- data/lib/virtuatable/builders/helpers/registration.rb +1 -1
- data/lib/virtuatable/controllers/base.rb +2 -1
- data/lib/virtuatable/helpers/routes.rb +6 -1
- data/lib/virtuatable/specs.rb +3 -1
- data/lib/virtuatable/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 514569bd58f7fea17204a3f89f5d0404286204311430bfe72c9d54e4c5c40886
|
4
|
+
data.tar.gz: 53c6187ab3c547bf9ce3ab5213db35606626cbc374eddc7ac65b6eef6e9361db
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d4890c76a8ee25542c82a16c77bbb5b17e289f6c7ce2c4d2d5b1a3a3e91469f66f3db60f58dc35115dd76eba3713077f3b4e0a9b2758bc7a73aa3497c6a0a8c
|
7
|
+
data.tar.gz: 160aadc26b64faf46c7c3cb62a127db92b31888a5acea04497eaae1911c684a4848405c233af1517d9a67e0a56e37df2035c6c8b383dc42b5866329adc49e850
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Virtuatable
|
4
|
+
module API
|
5
|
+
# Modules holding the responses that are NOT errors.
|
6
|
+
# @author Vincent Courtois <courtois.vincent@outlook.com>
|
7
|
+
module Responses
|
8
|
+
# Builds a list of items as a standard API response.
|
9
|
+
# The response will be a JSON hash containing two keys :
|
10
|
+
# - :count will hold the number of items displayed in the list
|
11
|
+
# - :items will hold the list of items.
|
12
|
+
# @param items [Array] the items to format as a standard API response.
|
13
|
+
def api_list(items)
|
14
|
+
halt 200, {
|
15
|
+
count: items.count,
|
16
|
+
items: items.map(&:to_h)
|
17
|
+
}.to_json
|
18
|
+
end
|
19
|
+
|
20
|
+
# Displays a creation standard response,
|
21
|
+
# returning the informations about the created item.
|
22
|
+
# @param item [Object] any object that responds to #to_h to display to the user.
|
23
|
+
def api_created(item)
|
24
|
+
halt 201, item.to_h.to_json
|
25
|
+
end
|
26
|
+
|
27
|
+
# Displays an item with the standards of the API.
|
28
|
+
# @param item [Object] the item to display as a JSON formatted hash.
|
29
|
+
def api_item(item)
|
30
|
+
halt 200, item.to_h.to_json
|
31
|
+
end
|
32
|
+
|
33
|
+
# Displays a message with a 200 status code
|
34
|
+
# @param message [String] the message to display with the API standards.
|
35
|
+
def api_ok(message)
|
36
|
+
api_item({message: message})
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
data/lib/virtuatable/api.rb
CHANGED
@@ -19,7 +19,7 @@ module Virtuatable
|
|
19
19
|
path: path,
|
20
20
|
name: name
|
21
21
|
)
|
22
|
-
|
22
|
+
instance.builder = builder
|
23
23
|
builder.load!
|
24
24
|
builder
|
25
25
|
end
|
@@ -32,7 +32,7 @@ module Virtuatable
|
|
32
32
|
path: path,
|
33
33
|
name: name
|
34
34
|
)
|
35
|
-
|
35
|
+
instance.builder = builder
|
36
36
|
builder.load!
|
37
37
|
builder
|
38
38
|
end
|
@@ -81,8 +81,8 @@ module Virtuatable
|
|
81
81
|
# Gets the loaders of the current class and all its ancestors that have loaders
|
82
82
|
# @return [Array<Symbol>] the name of the loaders declared.
|
83
83
|
def all_loaders
|
84
|
-
superclasses = sanitized_ancestors.
|
85
|
-
ancestor
|
84
|
+
superclasses = sanitized_ancestors.reject do |ancestor|
|
85
|
+
ancestor == self.class
|
86
86
|
end
|
87
87
|
ancestors_loaders = superclasses.map do |ancestor|
|
88
88
|
ancestor.respond_to?(:loaders) ? ancestor.loaders : []
|
@@ -13,7 +13,7 @@ module Virtuatable
|
|
13
13
|
# Declares a loader in the current builder class.
|
14
14
|
# @param loader [Symbol] the name of the loader, infered as the method name to call.
|
15
15
|
def declare_loader(loader, priority:)
|
16
|
-
loader_h = {name: loader.to_sym, priority: priority}
|
16
|
+
loader_h = { name: loader.to_sym, priority: priority }
|
17
17
|
@loaders.nil? ? @loaders = [loader_h] : @loaders << loader_h
|
18
18
|
end
|
19
19
|
end
|
@@ -23,7 +23,7 @@ module Virtuatable
|
|
23
23
|
# Registers the service in the micro-services registry (consisting in
|
24
24
|
# the arkaan_monitoring_services and arkaan_monitoring_instances collections)
|
25
25
|
def load_registration!
|
26
|
-
@service = Arkaan::Monitoring::Service.
|
26
|
+
@service = Arkaan::Monitoring::Service.find_or_create_by!(
|
27
27
|
key: @name,
|
28
28
|
path: "/#{@name}"
|
29
29
|
)
|
@@ -8,8 +8,9 @@ module Virtuatable
|
|
8
8
|
class Base < Sinatra::Base
|
9
9
|
register Sinatra::ConfigFile
|
10
10
|
helpers Sinatra::CustomLogger
|
11
|
-
# Includes the custom errors throwers.
|
11
|
+
# Includes the custom errors throwers and responses helpers.
|
12
12
|
include Virtuatable::API::Errors
|
13
|
+
include Virtuatable::API::Responses
|
13
14
|
# Includes the checking methods for sessions.
|
14
15
|
include Virtuatable::Helpers::Sessions
|
15
16
|
# Include the checkers and getters for the API gateway.
|
@@ -1,5 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Virtuatable
|
2
4
|
module Helpers
|
5
|
+
# This module provides the #current_route method to get the current
|
6
|
+
# Arkaan::Monitoring::Route object from whithin sinatra routes.
|
7
|
+
# @author Vincent Courtois <courtois.vincent@outlook.com>
|
3
8
|
module Routes
|
4
9
|
def current_route
|
5
10
|
splitted = request.env['sinatra.route'].split(' ')
|
@@ -10,4 +15,4 @@ module Virtuatable
|
|
10
15
|
end
|
11
16
|
end
|
12
17
|
end
|
13
|
-
end
|
18
|
+
end
|
data/lib/virtuatable/specs.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
module Virtuatable
|
2
4
|
# This module holds all the logic for the specs tools for all micro services (shared examples and other things).
|
3
5
|
# @author Vincent Courtois <courtois.vincent@outlook.com>
|
@@ -87,4 +89,4 @@ module Virtuatable
|
|
87
89
|
end
|
88
90
|
end
|
89
91
|
end
|
90
|
-
end
|
92
|
+
end
|
data/lib/virtuatable/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: virtuatable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vincent Courtois
|
@@ -360,6 +360,7 @@ files:
|
|
360
360
|
- lib/virtuatable/api/errors/base.rb
|
361
361
|
- lib/virtuatable/api/errors/forbidden.rb
|
362
362
|
- lib/virtuatable/api/errors/not_found.rb
|
363
|
+
- lib/virtuatable/api/responses.rb
|
363
364
|
- lib/virtuatable/application.rb
|
364
365
|
- lib/virtuatable/builders.rb
|
365
366
|
- lib/virtuatable/builders/base.rb
|