virtuatable 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|