apiculture 0.0.18 → 0.0.19
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/.gitignore +50 -0
- data/.travis.yml +5 -1
- data/Gemfile +3 -14
- data/Rakefile +3 -43
- data/apiculture.gemspec +28 -71
- data/lib/apiculture/sinatra_instance_methods.rb +4 -4
- data/lib/apiculture/version.rb +1 -1
- data/spec/apiculture/app_documentation_spec.rb +1 -1
- data/spec/apiculture/method_documentation_spec.rb +1 -1
- data/spec/apiculture_spec.rb +44 -3
- metadata +26 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b6f0c8bf33ab6d850b0e5ebe4137248b2eece90b
|
|
4
|
+
data.tar.gz: ff2545d4a6b2d335670722f52052b3081976afb6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0cd7c2561d5d0139893fbfc78c58e46ee889c84e91756f51773d1000ce4a94b8c5e1af3d2cf0c997835dfc35d6de2fdbaff9b65cece17c3c9835f31915349126
|
|
7
|
+
data.tar.gz: 2870ec784e365047cf7c737bec1510b98e19fb3efa1d5fbb6c3b3cecabdf78aaa09fea584d3a83abca63ffd99d190831a46867b1ee36c397a9eb275bc3b85bf4
|
data/.gitignore
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# rcov generated
|
|
2
|
+
coverage
|
|
3
|
+
coverage.data
|
|
4
|
+
|
|
5
|
+
# rdoc generated
|
|
6
|
+
rdoc
|
|
7
|
+
|
|
8
|
+
# yard generated
|
|
9
|
+
doc
|
|
10
|
+
.yardoc
|
|
11
|
+
|
|
12
|
+
# bundler
|
|
13
|
+
.bundle
|
|
14
|
+
Gemfile.lock
|
|
15
|
+
|
|
16
|
+
# jeweler generated
|
|
17
|
+
pkg
|
|
18
|
+
|
|
19
|
+
# Have editor/IDE/OS specific files you need to ignore? Consider using a global gitignore:
|
|
20
|
+
#
|
|
21
|
+
# * Create a file at ~/.gitignore
|
|
22
|
+
# * Include files you want ignored
|
|
23
|
+
# * Run: git config --global core.excludesfile ~/.gitignore
|
|
24
|
+
#
|
|
25
|
+
# After doing this, these files will be ignored in all your git projects,
|
|
26
|
+
# saving you from having to 'pollute' every project you touch with them
|
|
27
|
+
#
|
|
28
|
+
# Not sure what to needs to be ignored for particular editors/OSes? Here's some ideas to get you started. (Remember, remove the leading # of the line)
|
|
29
|
+
#
|
|
30
|
+
# For MacOS:
|
|
31
|
+
#
|
|
32
|
+
#.DS_Store
|
|
33
|
+
|
|
34
|
+
# For TextMate
|
|
35
|
+
#*.tmproj
|
|
36
|
+
#tmtags
|
|
37
|
+
|
|
38
|
+
# For emacs:
|
|
39
|
+
#*~
|
|
40
|
+
#\#*
|
|
41
|
+
#.\#*
|
|
42
|
+
|
|
43
|
+
# For vim:
|
|
44
|
+
#*.swp
|
|
45
|
+
|
|
46
|
+
# For redcar:
|
|
47
|
+
#.redcar
|
|
48
|
+
|
|
49
|
+
# For rubinius:
|
|
50
|
+
#*.rbc
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
source
|
|
2
|
-
gem 'sinatra', '~> 1.4', :require => 'sinatra/base'
|
|
3
|
-
gem 'builder', '~> 3'
|
|
4
|
-
gem 'rdiscount', '~> 2.1'
|
|
5
|
-
gem 'github-markup', '~> 1'
|
|
6
|
-
gem "mustache", '~> 1'
|
|
1
|
+
source 'https://rubygems.org'
|
|
7
2
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
gem "rspec", "~> 3.1", '< 3.2'
|
|
11
|
-
gem "rdoc", "~> 3.12"
|
|
12
|
-
gem "bundler", "~> 1.0"
|
|
13
|
-
gem "jeweler", "~> 2"
|
|
14
|
-
gem "simplecov", ">= 0"
|
|
15
|
-
end
|
|
3
|
+
# Source from the gemspec
|
|
4
|
+
gemspec
|
data/Rakefile
CHANGED
|
@@ -1,45 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
require 'rubygems'
|
|
4
|
-
require 'bundler'
|
|
5
|
-
begin
|
|
6
|
-
Bundler.setup(:default, :development)
|
|
7
|
-
rescue Bundler::BundlerError => e
|
|
8
|
-
$stderr.puts e.message
|
|
9
|
-
$stderr.puts "Run `bundle install` to install missing gems"
|
|
10
|
-
exit e.status_code
|
|
11
|
-
end
|
|
12
|
-
require 'rake'
|
|
13
|
-
|
|
14
|
-
require_relative 'lib/apiculture/version'
|
|
15
|
-
require 'jeweler'
|
|
16
|
-
Jeweler::Tasks.new do |gem|
|
|
17
|
-
gem.name = "apiculture"
|
|
18
|
-
gem.version = Apiculture::VERSION
|
|
19
|
-
gem.homepage = "https://github.com/WeTransfer/apiculture"
|
|
20
|
-
gem.license = "MIT"
|
|
21
|
-
gem.description = %Q{A toolkit for building REST APIs on top of Sinatra}
|
|
22
|
-
gem.summary = %Q{Sweet API sauce on top of Sintra}
|
|
23
|
-
gem.email = "me@julik.nl"
|
|
24
|
-
gem.authors = ["Julik Tarkhanov", "WeTransfer"]
|
|
25
|
-
# dependencies defined in Gemfile
|
|
26
|
-
end
|
|
27
|
-
Jeweler::RubygemsDotOrgTasks.new
|
|
28
|
-
|
|
29
|
-
require 'rspec/core'
|
|
1
|
+
require 'bundler/gem_tasks'
|
|
30
2
|
require 'rspec/core/rake_task'
|
|
31
|
-
RSpec::Core::RakeTask.new(:spec) do |spec|
|
|
32
|
-
spec.pattern = FileList['spec/**/*_spec.rb']
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
task :default => :spec
|
|
36
|
-
|
|
37
|
-
require 'rdoc/task'
|
|
38
|
-
Rake::RDocTask.new do |rdoc|
|
|
39
|
-
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
|
40
3
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
rdoc.rdoc_files.include('README*')
|
|
44
|
-
rdoc.rdoc_files.include('lib/**/*.rb')
|
|
45
|
-
end
|
|
4
|
+
RSpec::Core::RakeTask.new(:spec)
|
|
5
|
+
task default: :spec
|
data/apiculture.gemspec
CHANGED
|
@@ -1,91 +1,48 @@
|
|
|
1
|
-
# Generated by jeweler
|
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
|
4
1
|
# -*- encoding: utf-8 -*-
|
|
5
|
-
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'apiculture/version'
|
|
6
5
|
|
|
7
6
|
Gem::Specification.new do |s|
|
|
8
7
|
s.name = "apiculture"
|
|
9
|
-
s.version =
|
|
8
|
+
s.version = Apiculture::VERSION
|
|
10
9
|
|
|
11
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
|
12
10
|
s.require_paths = ["lib"]
|
|
13
11
|
s.authors = ["Julik Tarkhanov", "WeTransfer"]
|
|
14
|
-
s.
|
|
12
|
+
s.homepage = 'http://github.com/wetransfer/zip_tricks'
|
|
15
13
|
s.description = "A toolkit for building REST APIs on top of Sinatra"
|
|
16
14
|
s.email = "me@julik.nl"
|
|
15
|
+
|
|
16
|
+
# Prevent pushing this gem to RubyGems.org.
|
|
17
|
+
# To allow pushes either set the 'allowed_push_host'
|
|
18
|
+
# To allow pushing to a single host or delete this section to allow pushing to any host.
|
|
19
|
+
if s.respond_to?(:metadata)
|
|
20
|
+
s.metadata['allowed_push_host'] = 'https://rubygems.org'
|
|
21
|
+
else
|
|
22
|
+
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
|
23
|
+
'public gem pushes.'
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
s.files = `git ls-files -z`.split("\x0")
|
|
17
27
|
s.extra_rdoc_files = [
|
|
18
28
|
"LICENSE.txt",
|
|
19
29
|
"README.md"
|
|
20
30
|
]
|
|
21
|
-
s.files = [
|
|
22
|
-
".travis.yml",
|
|
23
|
-
"Gemfile",
|
|
24
|
-
"LICENSE.txt",
|
|
25
|
-
"README.md",
|
|
26
|
-
"Rakefile",
|
|
27
|
-
"apiculture.gemspec",
|
|
28
|
-
"lib/apiculture.rb",
|
|
29
|
-
"lib/apiculture/action.rb",
|
|
30
|
-
"lib/apiculture/action_definition.rb",
|
|
31
|
-
"lib/apiculture/app_documentation.rb",
|
|
32
|
-
"lib/apiculture/app_documentation_tpl.mustache",
|
|
33
|
-
"lib/apiculture/markdown_segment.rb",
|
|
34
|
-
"lib/apiculture/method_documentation.rb",
|
|
35
|
-
"lib/apiculture/sinatra_instance_methods.rb",
|
|
36
|
-
"lib/apiculture/timestamp_promise.rb",
|
|
37
|
-
"lib/apiculture/version.rb",
|
|
38
|
-
"spec/apiculture/action_spec.rb",
|
|
39
|
-
"spec/apiculture/app_documentation_spec.rb",
|
|
40
|
-
"spec/apiculture/method_documentation_spec.rb",
|
|
41
|
-
"spec/apiculture_spec.rb",
|
|
42
|
-
"spec/spec_helper.rb"
|
|
43
|
-
]
|
|
44
31
|
s.homepage = "https://github.com/WeTransfer/apiculture"
|
|
45
32
|
s.licenses = ["MIT"]
|
|
46
33
|
s.rubygems_version = "2.4.5.1"
|
|
47
34
|
s.summary = "Sweet API sauce on top of Sintra"
|
|
48
35
|
|
|
49
|
-
|
|
50
|
-
|
|
36
|
+
s.add_runtime_dependency 'sinatra', '~> 1'
|
|
37
|
+
s.add_runtime_dependency 'builder', '~> 3'
|
|
38
|
+
s.add_runtime_dependency 'rdiscount', '~> 2'
|
|
39
|
+
s.add_runtime_dependency 'github-markup', '~> 1'
|
|
40
|
+
s.add_runtime_dependency "mustache", '~> 1'
|
|
51
41
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
s.add_development_dependency(%q<rack-test>, ["~> 0.6"])
|
|
59
|
-
s.add_development_dependency(%q<rspec>, ["< 3.2", "~> 3.1"])
|
|
60
|
-
s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
|
|
61
|
-
s.add_development_dependency(%q<bundler>, ["~> 1.0"])
|
|
62
|
-
s.add_development_dependency(%q<jeweler>, ["~> 2"])
|
|
63
|
-
s.add_development_dependency(%q<simplecov>, [">= 0"])
|
|
64
|
-
else
|
|
65
|
-
s.add_dependency(%q<sinatra>, ["~> 1.4"])
|
|
66
|
-
s.add_dependency(%q<builder>, ["~> 3"])
|
|
67
|
-
s.add_dependency(%q<rdiscount>, ["~> 2.1"])
|
|
68
|
-
s.add_dependency(%q<github-markup>, ["~> 1"])
|
|
69
|
-
s.add_dependency(%q<mustache>, ["~> 1"])
|
|
70
|
-
s.add_dependency(%q<rack-test>, ["~> 0.6"])
|
|
71
|
-
s.add_dependency(%q<rspec>, ["< 3.2", "~> 3.1"])
|
|
72
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
|
73
|
-
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
|
74
|
-
s.add_dependency(%q<jeweler>, ["~> 2"])
|
|
75
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
76
|
-
end
|
|
77
|
-
else
|
|
78
|
-
s.add_dependency(%q<sinatra>, ["~> 1.4"])
|
|
79
|
-
s.add_dependency(%q<builder>, ["~> 3"])
|
|
80
|
-
s.add_dependency(%q<rdiscount>, ["~> 2.1"])
|
|
81
|
-
s.add_dependency(%q<github-markup>, ["~> 1"])
|
|
82
|
-
s.add_dependency(%q<mustache>, ["~> 1"])
|
|
83
|
-
s.add_dependency(%q<rack-test>, ["~> 0.6"])
|
|
84
|
-
s.add_dependency(%q<rspec>, ["< 3.2", "~> 3.1"])
|
|
85
|
-
s.add_dependency(%q<rdoc>, ["~> 3.12"])
|
|
86
|
-
s.add_dependency(%q<bundler>, ["~> 1.0"])
|
|
87
|
-
s.add_dependency(%q<jeweler>, ["~> 2"])
|
|
88
|
-
s.add_dependency(%q<simplecov>, [">= 0"])
|
|
89
|
-
end
|
|
42
|
+
s.add_development_dependency 'rack-test'
|
|
43
|
+
s.add_development_dependency "rspec", "~> 3.1", '< 3.2'
|
|
44
|
+
s.add_development_dependency "rdoc", "~> 3.12"
|
|
45
|
+
s.add_development_dependency "rake", "~> 10"
|
|
46
|
+
s.add_development_dependency "bundler", "~> 1.0"
|
|
47
|
+
s.add_development_dependency "simplecov", ">= 0"
|
|
90
48
|
end
|
|
91
|
-
|
|
@@ -28,11 +28,11 @@ module Apiculture::SinatraInstanceMethods
|
|
|
28
28
|
# given in the keyword arguments
|
|
29
29
|
def action_result(action_class, **action_ivars)
|
|
30
30
|
call_result = action_class.new(self, **action_ivars).perform
|
|
31
|
-
|
|
32
|
-
unless call_result.is_a?(Array) || call_result.is_a?(Hash)
|
|
33
|
-
raise "Action result should be an Array
|
|
31
|
+
|
|
32
|
+
unless call_result.is_a?(Array) || call_result.is_a?(Hash) || (call_result.nil? && status == 204)
|
|
33
|
+
raise "Action result should be an Array, a Hash or it can be nil but only if status is 204, instead it was a #{call_result.class}"
|
|
34
34
|
end
|
|
35
35
|
|
|
36
|
-
json_response call_result
|
|
36
|
+
json_response call_result if call_result
|
|
37
37
|
end
|
|
38
38
|
end
|
data/lib/apiculture/version.rb
CHANGED
|
@@ -29,7 +29,7 @@ describe "Apiculture.api_documentation" do
|
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
desc 'Pancake ingredients are in the URL'
|
|
32
|
-
route_param :topping_id, 'Pancake topping ID',
|
|
32
|
+
route_param :topping_id, 'Pancake topping ID', Integer, cast: :to_i
|
|
33
33
|
api_method :get, '/pancake/with/:topping_id' do |topping_id|
|
|
34
34
|
end
|
|
35
35
|
end
|
|
@@ -68,7 +68,7 @@ describe Apiculture::MethodDocumentation do
|
|
|
68
68
|
|
|
69
69
|
definition.description = "This adds a topping to a pancake"
|
|
70
70
|
|
|
71
|
-
definition.route_parameters << Apiculture::RouteParameter.new(:topping_id, 'ID of the pancake topping',
|
|
71
|
+
definition.route_parameters << Apiculture::RouteParameter.new(:topping_id, 'ID of the pancake topping', Integer, cast: :to_i)
|
|
72
72
|
definition.http_verb = 'get'
|
|
73
73
|
definition.path = '/pancake/:topping_id'
|
|
74
74
|
|
data/spec/apiculture_spec.rb
CHANGED
|
@@ -319,9 +319,9 @@ describe "Apiculture" do
|
|
|
319
319
|
settings.raise_errors = true
|
|
320
320
|
extend Apiculture
|
|
321
321
|
|
|
322
|
-
route_param :number, "Number of the thing",
|
|
322
|
+
route_param :number, "Number of the thing", Integer, :cast => :to_i
|
|
323
323
|
api_method :post, '/thing/:number' do |number|
|
|
324
|
-
raise "Not cast" unless number.class ==
|
|
324
|
+
raise "Not cast" unless number.class == Integer
|
|
325
325
|
'Total success'
|
|
326
326
|
end
|
|
327
327
|
end
|
|
@@ -337,7 +337,7 @@ describe "Apiculture" do
|
|
|
337
337
|
extend Apiculture
|
|
338
338
|
|
|
339
339
|
param :number, "Number of the thing", Integer, :cast => :to_i
|
|
340
|
-
route_param :id, "Id of the thingy",
|
|
340
|
+
route_param :id, "Id of the thingy", Integer, :cast => :to_i
|
|
341
341
|
route_param :awesome, "Hash of the thingy"
|
|
342
342
|
|
|
343
343
|
api_method :post, '/thing/:id/:awesome' do |id|
|
|
@@ -386,6 +386,7 @@ describe "Apiculture" do
|
|
|
386
386
|
parsed_body = JSON.load(last_response.body)
|
|
387
387
|
expect(parsed_body['foo']).to eq('bar')
|
|
388
388
|
end
|
|
389
|
+
|
|
389
390
|
it 'adds support for json_response to set http status code', run: true do
|
|
390
391
|
@app_class = Class.new(Sinatra::Base) do
|
|
391
392
|
extend Apiculture
|
|
@@ -399,6 +400,7 @@ describe "Apiculture" do
|
|
|
399
400
|
post '/some-json'
|
|
400
401
|
expect(last_response.status).to eq(201)
|
|
401
402
|
end
|
|
403
|
+
|
|
402
404
|
it 'adds support for json_halt' do
|
|
403
405
|
@app_class = Class.new(Sinatra::Base) do
|
|
404
406
|
extend Apiculture
|
|
@@ -430,5 +432,44 @@ describe "Apiculture" do
|
|
|
430
432
|
parsed_body = JSON.load(last_response.body)
|
|
431
433
|
expect(parsed_body).to eq({"error"=>"Nein.", "teapot"=>true})
|
|
432
434
|
end
|
|
435
|
+
|
|
436
|
+
# Mocks didn't play well with setting the status in a sinatra action
|
|
437
|
+
class NilTestAction < Apiculture::Action
|
|
438
|
+
def perform
|
|
439
|
+
status 204
|
|
440
|
+
nil
|
|
441
|
+
end
|
|
442
|
+
end
|
|
443
|
+
it 'allows returning an empty body when the status is 204' do
|
|
444
|
+
@app_class = Class.new(Sinatra::Base) do
|
|
445
|
+
extend Apiculture
|
|
446
|
+
settings.show_exceptions = false
|
|
447
|
+
settings.raise_errors = true
|
|
448
|
+
api_method :get, '/nil204' do
|
|
449
|
+
action_result NilTestAction
|
|
450
|
+
end
|
|
451
|
+
end
|
|
452
|
+
|
|
453
|
+
get '/nil204'
|
|
454
|
+
expect(last_response.status).to eq(204)
|
|
455
|
+
expect(last_response.body).to be_empty
|
|
456
|
+
end
|
|
457
|
+
|
|
458
|
+
it "does not allow returning an empty body when the status isn't 204" do
|
|
459
|
+
# Mock out the perform call so that status doesn't change from the default of 200
|
|
460
|
+
expect_any_instance_of(NilTestAction).to receive(:perform).with(any_args).and_return(nil)
|
|
461
|
+
@app_class = Class.new(Sinatra::Base) do
|
|
462
|
+
extend Apiculture
|
|
463
|
+
settings.show_exceptions = false
|
|
464
|
+
settings.raise_errors = true
|
|
465
|
+
api_method :get, '/nil200' do
|
|
466
|
+
action_result NilTestAction
|
|
467
|
+
end
|
|
468
|
+
end
|
|
469
|
+
|
|
470
|
+
expect{
|
|
471
|
+
get '/nil200'
|
|
472
|
+
}.to raise_error(RuntimeError)
|
|
473
|
+
end
|
|
433
474
|
end
|
|
434
475
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: apiculture
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.19
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Julik Tarkhanov
|
|
@@ -9,7 +9,7 @@ authors:
|
|
|
9
9
|
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2017-11-03 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: sinatra
|
|
@@ -17,14 +17,14 @@ dependencies:
|
|
|
17
17
|
requirements:
|
|
18
18
|
- - "~>"
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
|
-
version: '1
|
|
20
|
+
version: '1'
|
|
21
21
|
type: :runtime
|
|
22
22
|
prerelease: false
|
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
24
24
|
requirements:
|
|
25
25
|
- - "~>"
|
|
26
26
|
- !ruby/object:Gem::Version
|
|
27
|
-
version: '1
|
|
27
|
+
version: '1'
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
29
|
name: builder
|
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -45,14 +45,14 @@ dependencies:
|
|
|
45
45
|
requirements:
|
|
46
46
|
- - "~>"
|
|
47
47
|
- !ruby/object:Gem::Version
|
|
48
|
-
version: '2
|
|
48
|
+
version: '2'
|
|
49
49
|
type: :runtime
|
|
50
50
|
prerelease: false
|
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
52
|
requirements:
|
|
53
53
|
- - "~>"
|
|
54
54
|
- !ruby/object:Gem::Version
|
|
55
|
-
version: '2
|
|
55
|
+
version: '2'
|
|
56
56
|
- !ruby/object:Gem::Dependency
|
|
57
57
|
name: github-markup
|
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -85,36 +85,36 @@ dependencies:
|
|
|
85
85
|
name: rack-test
|
|
86
86
|
requirement: !ruby/object:Gem::Requirement
|
|
87
87
|
requirements:
|
|
88
|
-
- - "
|
|
88
|
+
- - ">="
|
|
89
89
|
- !ruby/object:Gem::Version
|
|
90
|
-
version: '0
|
|
90
|
+
version: '0'
|
|
91
91
|
type: :development
|
|
92
92
|
prerelease: false
|
|
93
93
|
version_requirements: !ruby/object:Gem::Requirement
|
|
94
94
|
requirements:
|
|
95
|
-
- - "
|
|
95
|
+
- - ">="
|
|
96
96
|
- !ruby/object:Gem::Version
|
|
97
|
-
version: '0
|
|
97
|
+
version: '0'
|
|
98
98
|
- !ruby/object:Gem::Dependency
|
|
99
99
|
name: rspec
|
|
100
100
|
requirement: !ruby/object:Gem::Requirement
|
|
101
101
|
requirements:
|
|
102
|
-
- - "<"
|
|
103
|
-
- !ruby/object:Gem::Version
|
|
104
|
-
version: '3.2'
|
|
105
102
|
- - "~>"
|
|
106
103
|
- !ruby/object:Gem::Version
|
|
107
104
|
version: '3.1'
|
|
105
|
+
- - "<"
|
|
106
|
+
- !ruby/object:Gem::Version
|
|
107
|
+
version: '3.2'
|
|
108
108
|
type: :development
|
|
109
109
|
prerelease: false
|
|
110
110
|
version_requirements: !ruby/object:Gem::Requirement
|
|
111
111
|
requirements:
|
|
112
|
-
- - "<"
|
|
113
|
-
- !ruby/object:Gem::Version
|
|
114
|
-
version: '3.2'
|
|
115
112
|
- - "~>"
|
|
116
113
|
- !ruby/object:Gem::Version
|
|
117
114
|
version: '3.1'
|
|
115
|
+
- - "<"
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '3.2'
|
|
118
118
|
- !ruby/object:Gem::Dependency
|
|
119
119
|
name: rdoc
|
|
120
120
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -130,33 +130,33 @@ dependencies:
|
|
|
130
130
|
- !ruby/object:Gem::Version
|
|
131
131
|
version: '3.12'
|
|
132
132
|
- !ruby/object:Gem::Dependency
|
|
133
|
-
name:
|
|
133
|
+
name: rake
|
|
134
134
|
requirement: !ruby/object:Gem::Requirement
|
|
135
135
|
requirements:
|
|
136
136
|
- - "~>"
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
|
-
version: '
|
|
138
|
+
version: '10'
|
|
139
139
|
type: :development
|
|
140
140
|
prerelease: false
|
|
141
141
|
version_requirements: !ruby/object:Gem::Requirement
|
|
142
142
|
requirements:
|
|
143
143
|
- - "~>"
|
|
144
144
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: '
|
|
145
|
+
version: '10'
|
|
146
146
|
- !ruby/object:Gem::Dependency
|
|
147
|
-
name:
|
|
147
|
+
name: bundler
|
|
148
148
|
requirement: !ruby/object:Gem::Requirement
|
|
149
149
|
requirements:
|
|
150
150
|
- - "~>"
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: '
|
|
152
|
+
version: '1.0'
|
|
153
153
|
type: :development
|
|
154
154
|
prerelease: false
|
|
155
155
|
version_requirements: !ruby/object:Gem::Requirement
|
|
156
156
|
requirements:
|
|
157
157
|
- - "~>"
|
|
158
158
|
- !ruby/object:Gem::Version
|
|
159
|
-
version: '
|
|
159
|
+
version: '1.0'
|
|
160
160
|
- !ruby/object:Gem::Dependency
|
|
161
161
|
name: simplecov
|
|
162
162
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -179,6 +179,7 @@ extra_rdoc_files:
|
|
|
179
179
|
- LICENSE.txt
|
|
180
180
|
- README.md
|
|
181
181
|
files:
|
|
182
|
+
- ".gitignore"
|
|
182
183
|
- ".travis.yml"
|
|
183
184
|
- Gemfile
|
|
184
185
|
- LICENSE.txt
|
|
@@ -203,7 +204,8 @@ files:
|
|
|
203
204
|
homepage: https://github.com/WeTransfer/apiculture
|
|
204
205
|
licenses:
|
|
205
206
|
- MIT
|
|
206
|
-
metadata:
|
|
207
|
+
metadata:
|
|
208
|
+
allowed_push_host: https://rubygems.org
|
|
207
209
|
post_install_message:
|
|
208
210
|
rdoc_options: []
|
|
209
211
|
require_paths:
|
|
@@ -220,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
220
222
|
version: '0'
|
|
221
223
|
requirements: []
|
|
222
224
|
rubyforge_project:
|
|
223
|
-
rubygems_version: 2.
|
|
225
|
+
rubygems_version: 2.6.11
|
|
224
226
|
signing_key:
|
|
225
227
|
specification_version: 4
|
|
226
228
|
summary: Sweet API sauce on top of Sintra
|