Class: Gaptool::Server
- Inherits:
-
Sinatra::Application
- Object
- Sinatra::Application
- Gaptool::Server
- Defined in:
- lib/app.rb,
lib/routes.rb
Class Attribute Summary collapse
-
.versions ⇒ Object
readonly
Returns the value of attribute versions.
Instance Method Summary collapse
- #check_version ⇒ Object
- #client_version ⇒ Object
- #error_response(msg = '') ⇒ Object
- #invalid_version ⇒ Object
- #require_parameters(required_keys, data) ⇒ Object
- #unauthenticated ⇒ Object
- #versions ⇒ Object
Class Attribute Details
.versions ⇒ Object (readonly)
Returns the value of attribute versions.
20 21 22 |
# File 'lib/app.rb', line 20 def versions @versions end |
Instance Method Details
#check_version ⇒ Object
57 58 59 60 61 62 63 |
# File 'lib/app.rb', line 57 def check_version server = settings.version_parsed client_version.major >= server.major && \ client_version.minor >= server.minor rescue false end |
#client_version ⇒ Object
50 51 52 53 54 55 |
# File 'lib/app.rb', line 50 def client_version client = env['HTTP_X_GAPTOOL_VERSION'] versions[client] ||= Versionomy.parse(client) rescue nil end |
#error_response(msg = '') ⇒ Object
30 31 32 33 34 |
# File 'lib/app.rb', line 30 def error_response(msg = '') = env['sinatra_error'].nil? ? '' : " #{env['sinatra.error'].}" = "#{msg}#{}" unless msg.empty? json result: 'error', message: end |
#invalid_version ⇒ Object
65 66 67 |
# File 'lib/app.rb', line 65 def invalid_version halt(400, error_response("Invalid version #{client_version} (server: #{settings.version})")) end |
#require_parameters(required_keys, data) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/routes.rb', line 8 def require_parameters(required_keys, data) data = data.delete_if { |_, v| v.nil? } required_keys = [*required_keys].to_set unless required_keys.is_a? Set keys = data.keys.to_set fail(BadRequest, "Missing required_parameters: #{(required_keys - keys).to_a.join(' ')}") \ unless keys >= required_keys data end |
#unauthenticated ⇒ Object
46 47 48 |
# File 'lib/app.rb', line 46 def unauthenticated halt(401, error_response('Unauthenticated')) end |
#versions ⇒ Object
23 24 25 |
# File 'lib/app.rb', line 23 def versions self.class.versions end |