pliny 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +0 -1
- data/lib/pliny/templates/endpoint_acceptance_test.erb +36 -20
- data/lib/pliny/templates/endpoint_scaffold.erb +2 -6
- data/lib/pliny/templates/endpoint_scaffold_acceptance_test.erb +32 -22
- data/lib/pliny/templates/endpoint_test.erb +1 -1
- data/lib/pliny/templates/serializer.erb +3 -0
- data/lib/pliny/version.rb +1 -1
- data/template/.env.test +1 -1
- data/template/Gemfile +9 -4
- data/template/Gemfile.lock +46 -12
- data/template/bin/console +25 -3
- data/template/config/config.rb +3 -2
- data/template/config/initializers/rollbar.rb +5 -0
- data/template/lib/endpoints/base.rb +5 -0
- data/template/lib/initializer.rb +3 -7
- data/template/lib/routes.rb +3 -4
- data/template/spec/spec_helper.rb +6 -6
- data/template/spec/support/auto_define_rack_app.rb +8 -0
- metadata +46 -3
- data/template/config/initializers/honeybadger.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0b3d302c95bbb9e4efdc88a49e8a5b776e6da923
|
4
|
+
data.tar.gz: dd49138a22449f1ac5311ecface0e021e3a61e2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 114580f793a3db337e548ca506e85019d35376d4d6d59fcbc0501c45e3e6b52a7495e5074bdaaf58f5f54d19e10c68ebb478f346d36a2ccc1be713293cd07301
|
7
|
+
data.tar.gz: 60e5461d06bce0f370b6a2640731709623154e3bdaee6a7f6676f04898e194f1b1f662638c3cdd585a6a155a1d7bf4ca749750e6bed2e67611f2b6e15fbf4a6d
|
data/README.md
CHANGED
@@ -23,7 +23,6 @@ And gems/helpers to tie these together and support operations:
|
|
23
23
|
- [Rack-test](https://github.com/brynary/rack-test) to test the API endpoints
|
24
24
|
- [Request IDs](lib/pliny/middleware/request_id.rb)
|
25
25
|
- [RequestStore](http://brandur.org/antipatterns), thread safe option to store data with the current request
|
26
|
-
- [RR](https://github.com/rr/rr/blob/master/doc/03_api_overview.md) for amazing mocks and stubs
|
27
26
|
- [Sequel](http://sequel.jeremyevans.net/) for ORM
|
28
27
|
- [Sequel-PG](https://github.com/jeremyevans/sequel_pg) because we don't like mysql
|
29
28
|
- [Versioning](lib/pliny/middleware/versioning.rb) to allow versioning your API in the HTTP Accept header
|
@@ -8,33 +8,49 @@ describe Endpoints::<%= plural_class_name %> do
|
|
8
8
|
Routes
|
9
9
|
end
|
10
10
|
|
11
|
-
|
12
|
-
|
13
|
-
last_response.status.should eq(200)
|
14
|
-
last_response.body.should eq("[]")
|
11
|
+
def schema_path
|
12
|
+
"./docs/schema.json"
|
15
13
|
end
|
16
14
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
15
|
+
describe 'GET <%= url_path %>' do
|
16
|
+
it 'returns correct status code and conforms to schema' do
|
17
|
+
get '<%= url_path %>'
|
18
|
+
expect(last_response.status).to eq(200)
|
19
|
+
assert_schema_conform
|
20
|
+
end
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
describe 'POST <%= url_path %>/:id' do
|
24
|
+
it 'returns correct status code and conforms to schema' do
|
25
|
+
header "Content-Type", "application/json"
|
26
|
+
post '<%= url_path %>', MultiJson.encode({})
|
27
|
+
expect(last_response.status).to eq(201)
|
28
|
+
assert_schema_conform
|
29
|
+
end
|
27
30
|
end
|
28
31
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
32
|
+
describe 'GET <%= url_path %>/:id' do
|
33
|
+
it 'returns correct status code and conforms to schema' do
|
34
|
+
get "<%= url_path %>/123"
|
35
|
+
expect(last_response.status).to eq(200)
|
36
|
+
assert_schema_conform
|
37
|
+
end
|
33
38
|
end
|
34
39
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
40
|
+
describe 'PATCH <%= url_path %>/:id' do
|
41
|
+
it 'returns correct status code and conforms to schema' do
|
42
|
+
header "Content-Type", "application/json"
|
43
|
+
patch '<%= url_path %>/123', MultiJson.encode({})
|
44
|
+
expect(last_response.status).to eq(200)
|
45
|
+
assert_schema_conform
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
describe 'DELETE <%= url_path %>/:id' do
|
50
|
+
it 'returns correct status code and conforms to schema' do
|
51
|
+
delete '<%= url_path %>/123'
|
52
|
+
expect(last_response.status).to eq(200)
|
53
|
+
assert_schema_conform
|
54
|
+
end
|
39
55
|
end
|
40
56
|
end
|
@@ -37,12 +37,8 @@ module Endpoints
|
|
37
37
|
|
38
38
|
private
|
39
39
|
|
40
|
-
def serialize(data)
|
41
|
-
|
42
|
-
created_at: data.created_at.try(:iso8601),
|
43
|
-
id: data.uuid,
|
44
|
-
updated_at: data.updated_at.try(:iso8601),
|
45
|
-
}
|
40
|
+
def serialize(data, structure = :default)
|
41
|
+
Serializers::<%= singular_class_name %>.new(structure).serialize(data)
|
46
42
|
end
|
47
43
|
end
|
48
44
|
end
|
@@ -20,37 +20,47 @@ describe Endpoints::<%= plural_class_name %> do
|
|
20
20
|
@<%= field_name %>.save
|
21
21
|
end
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
23
|
+
describe 'GET <%= url_path %>' do
|
24
|
+
it 'returns correct status code and conforms to schema' do
|
25
|
+
get '<%= url_path %>'
|
26
|
+
expect(last_response.status).to eq(200)
|
27
|
+
assert_schema_conform
|
28
|
+
end
|
27
29
|
end
|
28
30
|
|
29
31
|
=begin
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
describe 'POST <%= url_path %>/:id' do
|
33
|
+
it 'returns correct status code and conforms to schema' do
|
34
|
+
header "Content-Type", "application/json"
|
35
|
+
post '<%= url_path %>', MultiJson.encode({})
|
36
|
+
expect(last_response.status).to eq(201)
|
37
|
+
assert_schema_conform
|
38
|
+
end
|
35
39
|
end
|
36
40
|
=end
|
37
41
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
+
describe 'GET <%= url_path %>/:id' do
|
43
|
+
it 'returns correct status code and conforms to schema' do
|
44
|
+
get "<%= url_path %>/#{@<%= field_name %>.uuid}"
|
45
|
+
expect(last_response.status).to eq(200)
|
46
|
+
assert_schema_conform
|
47
|
+
end
|
42
48
|
end
|
43
49
|
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
50
|
+
describe 'PATCH <%= url_path %>/:id' do
|
51
|
+
it 'returns correct status code and conforms to schema' do
|
52
|
+
header "Content-Type", "application/json"
|
53
|
+
patch "<%= url_path %>/#{@<%= field_name %>.uuid}", MultiJson.encode({})
|
54
|
+
expect(last_response.status).to eq(200)
|
55
|
+
assert_schema_conform
|
56
|
+
end
|
49
57
|
end
|
50
58
|
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
59
|
+
describe 'DELETE <%= url_path %>/:id' do
|
60
|
+
it 'returns correct status code and conforms to schema' do
|
61
|
+
delete "<%= url_path %>/#{@<%= field_name %>.uuid}"
|
62
|
+
expect(last_response.status).to eq(200)
|
63
|
+
assert_schema_conform
|
64
|
+
end
|
55
65
|
end
|
56
66
|
end
|
@@ -10,6 +10,9 @@
|
|
10
10
|
<%= ident %>class <%= modules.last %> < Serializers::Base
|
11
11
|
<%= ident %> structure(:default) do |arg|
|
12
12
|
<%= ident %> {
|
13
|
+
<%= ident %> created_at: arg.created_at.try(:iso8601),
|
14
|
+
<%= ident %> id: arg.uuid,
|
15
|
+
<%= ident %> updated_at: arg.updated_at.try(:iso8601),
|
13
16
|
<%= ident %> }
|
14
17
|
<%= ident %> end
|
15
18
|
<%= ident %>end
|
data/lib/pliny/version.rb
CHANGED
data/template/.env.test
CHANGED
data/template/Gemfile
CHANGED
@@ -1,20 +1,27 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
ruby "2.1.2"
|
3
3
|
|
4
|
-
gem "honeybadger", '~> 1.14'
|
5
4
|
gem "multi_json"
|
6
5
|
gem "oj"
|
7
6
|
gem "pg"
|
8
7
|
gem "pliny"
|
8
|
+
gem "pry"
|
9
|
+
gem "pry-doc"
|
9
10
|
gem "puma"
|
10
11
|
gem "rack-ssl"
|
11
12
|
gem "rake"
|
13
|
+
gem "rollbar"
|
12
14
|
gem "sequel"
|
13
15
|
gem "sequel-paranoid"
|
14
16
|
gem "sequel_pg", require: "sequel"
|
15
17
|
gem "sinatra", require: "sinatra/base"
|
16
18
|
gem "sinatra-contrib", require: ["sinatra/namespace", "sinatra/reloader"]
|
17
19
|
gem "sinatra-router"
|
20
|
+
gem "sucker_punch"
|
21
|
+
|
22
|
+
group :development, :test do
|
23
|
+
gem "pry-byebug"
|
24
|
+
end
|
18
25
|
|
19
26
|
group :development do
|
20
27
|
gem "foreman"
|
@@ -24,7 +31,5 @@ group :test do
|
|
24
31
|
gem "committee"
|
25
32
|
gem "database_cleaner"
|
26
33
|
gem "rack-test"
|
27
|
-
gem "
|
28
|
-
gem "rspec-core"
|
29
|
-
gem "rspec-expectations"
|
34
|
+
gem "rspec"
|
30
35
|
end
|
data/template/Gemfile.lock
CHANGED
@@ -8,26 +8,33 @@ GEM
|
|
8
8
|
thread_safe (~> 0.1)
|
9
9
|
tzinfo (~> 1.1)
|
10
10
|
backports (3.6.0)
|
11
|
+
byebug (2.7.0)
|
12
|
+
columnize (~> 0.3)
|
13
|
+
debugger-linecache (~> 1.2)
|
14
|
+
celluloid (0.15.2)
|
15
|
+
timers (~> 1.1.0)
|
16
|
+
coderay (1.1.0)
|
17
|
+
columnize (0.8.9)
|
11
18
|
committee (0.4.13)
|
12
19
|
multi_json (> 0.0)
|
13
20
|
rack (> 0.0)
|
14
21
|
database_cleaner (1.2.0)
|
22
|
+
debugger-linecache (1.2.0)
|
15
23
|
diff-lcs (1.2.5)
|
16
24
|
dotenv (0.7.0)
|
17
25
|
erubis (2.7.0)
|
18
26
|
foreman (0.67.0)
|
19
27
|
dotenv (~> 0.7.0)
|
20
28
|
thor (~> 0.17.0)
|
21
|
-
honeybadger (1.15.0)
|
22
|
-
json
|
23
29
|
http_accept (0.1.5)
|
24
30
|
i18n (0.6.9)
|
25
31
|
json (1.8.1)
|
26
|
-
|
32
|
+
method_source (0.8.2)
|
33
|
+
minitest (5.3.5)
|
27
34
|
multi_json (1.10.1)
|
28
35
|
oj (2.9.0)
|
29
36
|
pg (0.17.1)
|
30
|
-
pliny (0.0
|
37
|
+
pliny (0.1.0)
|
31
38
|
activesupport (~> 4.1, >= 4.1.0)
|
32
39
|
http_accept (~> 0.1, >= 0.1.5)
|
33
40
|
multi_json (~> 1.9, >= 1.9.3)
|
@@ -38,6 +45,16 @@ GEM
|
|
38
45
|
sinatra-router (~> 0.2, >= 0.2.3)
|
39
46
|
prmd (0.3.2)
|
40
47
|
erubis (~> 2.7)
|
48
|
+
pry (0.9.12.6)
|
49
|
+
coderay (~> 1.0)
|
50
|
+
method_source (~> 0.8)
|
51
|
+
slop (~> 3.4)
|
52
|
+
pry-byebug (1.3.2)
|
53
|
+
byebug (~> 2.7)
|
54
|
+
pry (~> 0.9.12)
|
55
|
+
pry-doc (0.6.0)
|
56
|
+
pry (~> 0.9)
|
57
|
+
yard (~> 0.8)
|
41
58
|
puma (2.8.2)
|
42
59
|
rack (>= 1.1, < 2.0)
|
43
60
|
rack (1.5.2)
|
@@ -48,10 +65,20 @@ GEM
|
|
48
65
|
rack-test (0.6.2)
|
49
66
|
rack (>= 1.0)
|
50
67
|
rake (10.3.1)
|
51
|
-
|
52
|
-
|
53
|
-
rspec
|
54
|
-
|
68
|
+
rollbar (0.12.20)
|
69
|
+
multi_json (~> 1.3)
|
70
|
+
rspec (3.0.0)
|
71
|
+
rspec-core (~> 3.0.0)
|
72
|
+
rspec-expectations (~> 3.0.0)
|
73
|
+
rspec-mocks (~> 3.0.0)
|
74
|
+
rspec-core (3.0.1)
|
75
|
+
rspec-support (~> 3.0.0)
|
76
|
+
rspec-expectations (3.0.1)
|
77
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
78
|
+
rspec-support (~> 3.0.0)
|
79
|
+
rspec-mocks (3.0.1)
|
80
|
+
rspec-support (~> 3.0.0)
|
81
|
+
rspec-support (3.0.0)
|
55
82
|
sequel (4.11.0)
|
56
83
|
sequel-paranoid (0.4.3)
|
57
84
|
sequel
|
@@ -71,11 +98,16 @@ GEM
|
|
71
98
|
tilt (~> 1.3)
|
72
99
|
sinatra-router (0.2.3)
|
73
100
|
sinatra (~> 1.4)
|
101
|
+
slop (3.5.0)
|
102
|
+
sucker_punch (1.0.5)
|
103
|
+
celluloid (~> 0.15.2)
|
74
104
|
thor (0.17.0)
|
75
105
|
thread_safe (0.3.4)
|
76
106
|
tilt (1.4.1)
|
107
|
+
timers (1.1.0)
|
77
108
|
tzinfo (1.2.1)
|
78
109
|
thread_safe (~> 0.1)
|
110
|
+
yard (0.8.7.4)
|
79
111
|
|
80
112
|
PLATFORMS
|
81
113
|
ruby
|
@@ -84,21 +116,23 @@ DEPENDENCIES
|
|
84
116
|
committee
|
85
117
|
database_cleaner
|
86
118
|
foreman
|
87
|
-
honeybadger (~> 1.14)
|
88
119
|
multi_json
|
89
120
|
oj
|
90
121
|
pg
|
91
122
|
pliny
|
123
|
+
pry
|
124
|
+
pry-byebug
|
125
|
+
pry-doc
|
92
126
|
puma
|
93
127
|
rack-ssl
|
94
128
|
rack-test
|
95
129
|
rake
|
96
|
-
|
97
|
-
rspec
|
98
|
-
rspec-expectations
|
130
|
+
rollbar
|
131
|
+
rspec
|
99
132
|
sequel
|
100
133
|
sequel-paranoid
|
101
134
|
sequel_pg
|
102
135
|
sinatra
|
103
136
|
sinatra-contrib
|
104
137
|
sinatra-router
|
138
|
+
sucker_punch
|
data/template/bin/console
CHANGED
@@ -1,9 +1,31 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
|
-
require "irb"
|
4
|
-
require "irb/completion"
|
5
3
|
require "bundler"
|
6
4
|
Bundler.require
|
7
5
|
require "./lib/initializer"
|
8
6
|
|
9
|
-
|
7
|
+
def basic_prompt(target_self, nest_level, pry)
|
8
|
+
# override CONSOLE_BANNER to include something like a release identifier
|
9
|
+
nesting = nest_level.zero? ? "" : ":#{nest_level}"
|
10
|
+
"[#{pry.input_array.size}] #{console_prefix}(#{Pry.view_clip(target_self)})#{nesting}"
|
11
|
+
end
|
12
|
+
|
13
|
+
def console_prefix
|
14
|
+
if Config.console_banner
|
15
|
+
Config.console_banner
|
16
|
+
elsif Config.rack_env == "production"
|
17
|
+
"production"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
Pry.prompt = [
|
22
|
+
proc { |target_self, nest_level, pry|
|
23
|
+
basic_prompt(target_self, nest_level, pry) + "> "
|
24
|
+
},
|
25
|
+
|
26
|
+
proc { |target_self, nest_level, pry|
|
27
|
+
basic_prompt(target_self, nest_level, pry) + "* "
|
28
|
+
}
|
29
|
+
]
|
30
|
+
|
31
|
+
Pry.start
|
data/template/config/config.rb
CHANGED
@@ -19,7 +19,7 @@ module Config
|
|
19
19
|
|
20
20
|
# Optional -- value is returned or `nil` if it wasn't present.
|
21
21
|
optional \
|
22
|
-
:
|
22
|
+
:console_banner,
|
23
23
|
:placeholder,
|
24
24
|
:versioning_default,
|
25
25
|
:versioning_app_name
|
@@ -32,7 +32,8 @@ module Config
|
|
32
32
|
puma_min_threads: 1,
|
33
33
|
puma_workers: 3,
|
34
34
|
rack_env: 'development',
|
35
|
-
|
35
|
+
raise_errors: 'false',
|
36
|
+
root: File.expand_path("../../", __FILE__),
|
36
37
|
timeout: 45,
|
37
38
|
force_ssl: 'true',
|
38
39
|
versioning: 'false'
|
@@ -3,8 +3,13 @@ module Endpoints
|
|
3
3
|
class Base < Sinatra::Base
|
4
4
|
register Pliny::Extensions::Instruments
|
5
5
|
register Sinatra::Namespace
|
6
|
+
|
6
7
|
helpers Pliny::Helpers::Params
|
7
8
|
|
9
|
+
set :dump_errors, false
|
10
|
+
set :raise_errors, true
|
11
|
+
set :show_exceptions, false
|
12
|
+
|
8
13
|
configure :development do
|
9
14
|
register Sinatra::Reloader
|
10
15
|
end
|
data/template/lib/initializer.rb
CHANGED
@@ -7,7 +7,7 @@ module Initializer
|
|
7
7
|
end
|
8
8
|
|
9
9
|
def self.require_config
|
10
|
-
|
10
|
+
require_relative "../config/config"
|
11
11
|
end
|
12
12
|
|
13
13
|
def self.require_lib
|
@@ -29,19 +29,15 @@ module Initializer
|
|
29
29
|
end
|
30
30
|
|
31
31
|
def self.require_initializers
|
32
|
-
Pliny::Utils.require_glob("#{root}/config/initializers/*.rb")
|
32
|
+
Pliny::Utils.require_glob("#{Config.root}/config/initializers/*.rb")
|
33
33
|
end
|
34
34
|
|
35
35
|
def self.require!(globs)
|
36
36
|
globs = [globs] unless globs.is_a?(Array)
|
37
37
|
globs.each do |f|
|
38
|
-
Pliny::Utils.require_glob("#{root}/#{f}.rb")
|
38
|
+
Pliny::Utils.require_glob("#{Config.root}/#{f}.rb")
|
39
39
|
end
|
40
40
|
end
|
41
|
-
|
42
|
-
def self.root
|
43
|
-
@@root ||= File.expand_path("../../", __FILE__)
|
44
|
-
end
|
45
41
|
end
|
46
42
|
|
47
43
|
Initializer.run
|
data/template/lib/routes.rb
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
Routes = Rack::Builder.new do
|
2
|
-
use Pliny::Middleware::RescueErrors, raise:
|
3
|
-
use Honeybadger::Rack::ErrorNotifier if Config.honeybadger_api_key
|
2
|
+
use Pliny::Middleware::RescueErrors, raise: Config.raise_errors?
|
4
3
|
use Pliny::Middleware::CORS
|
5
4
|
use Pliny::Middleware::RequestID
|
6
5
|
use Pliny::Middleware::RequestStore, store: Pliny::RequestStore
|
7
6
|
use Pliny::Middleware::Timeout, timeout: Config.timeout.to_i if Config.timeout.to_i > 0
|
8
7
|
use Pliny::Middleware::Versioning,
|
9
8
|
default: Config.versioning_default,
|
10
|
-
app_name: Config.versioning_app_name if Config.versioning
|
9
|
+
app_name: Config.versioning_app_name if Config.versioning?
|
11
10
|
use Rack::Deflater
|
12
11
|
use Rack::MethodOverride
|
13
|
-
use Rack::SSL if Config.force_ssl
|
12
|
+
use Rack::SSL if Config.force_ssl?
|
14
13
|
|
15
14
|
use Pliny::Router do
|
16
15
|
# mount all endpoints here
|
@@ -10,8 +10,6 @@ ENV["RACK_ENV"] = "test"
|
|
10
10
|
require "bundler"
|
11
11
|
Bundler.require(:default, :test)
|
12
12
|
|
13
|
-
require "rr"
|
14
|
-
|
15
13
|
root = File.expand_path("../../", __FILE__)
|
16
14
|
ENV.update(Pliny::Utils.parse_env("#{root}/.env.test"))
|
17
15
|
|
@@ -20,11 +18,9 @@ require_relative "../lib/initializer"
|
|
20
18
|
DatabaseCleaner.strategy = :transaction
|
21
19
|
|
22
20
|
# pull in test initializers
|
23
|
-
Pliny::Utils.require_glob("#{
|
21
|
+
Pliny::Utils.require_glob("#{Config.root}/spec/support/**/*.rb")
|
24
22
|
|
25
23
|
RSpec.configure do |config|
|
26
|
-
config.mock_framework = :rr
|
27
|
-
|
28
24
|
config.before :all do
|
29
25
|
load('db/seeds.rb') if File.exist?('db/seeds.rb')
|
30
26
|
end
|
@@ -37,7 +33,6 @@ RSpec.configure do |config|
|
|
37
33
|
DatabaseCleaner.clean
|
38
34
|
end
|
39
35
|
|
40
|
-
config.treat_symbols_as_metadata_keys_with_true_values = true
|
41
36
|
config.run_all_when_everything_filtered = true
|
42
37
|
config.filter_run :focus
|
43
38
|
|
@@ -46,4 +41,9 @@ RSpec.configure do |config|
|
|
46
41
|
# the seed, which is printed after each run.
|
47
42
|
# --seed 1234
|
48
43
|
config.order = 'random'
|
44
|
+
|
45
|
+
# the rack app to be tested with rack-test:
|
46
|
+
def app
|
47
|
+
@rack_app || fail("Missing @rack_app")
|
48
|
+
end
|
49
49
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pliny
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandur Leach
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-07-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|
@@ -185,6 +185,48 @@ dependencies:
|
|
185
185
|
- - ">="
|
186
186
|
- !ruby/object:Gem::Version
|
187
187
|
version: 0.8.7
|
188
|
+
- !ruby/object:Gem::Dependency
|
189
|
+
name: rack-test
|
190
|
+
requirement: !ruby/object:Gem::Requirement
|
191
|
+
requirements:
|
192
|
+
- - ">="
|
193
|
+
- !ruby/object:Gem::Version
|
194
|
+
version: 0.6.2
|
195
|
+
type: :development
|
196
|
+
prerelease: false
|
197
|
+
version_requirements: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - ">="
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 0.6.2
|
202
|
+
- !ruby/object:Gem::Dependency
|
203
|
+
name: rr
|
204
|
+
requirement: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - ">="
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 1.1.2
|
209
|
+
type: :development
|
210
|
+
prerelease: false
|
211
|
+
version_requirements: !ruby/object:Gem::Requirement
|
212
|
+
requirements:
|
213
|
+
- - ">="
|
214
|
+
- !ruby/object:Gem::Version
|
215
|
+
version: 1.1.2
|
216
|
+
- !ruby/object:Gem::Dependency
|
217
|
+
name: timecop
|
218
|
+
requirement: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - ">="
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: 0.7.1
|
223
|
+
type: :development
|
224
|
+
prerelease: false
|
225
|
+
version_requirements: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - ">="
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: 0.7.1
|
188
230
|
description: Pliny is a set of base classes and helpers to help developers write excellent
|
189
231
|
APIs in Sinatra
|
190
232
|
email:
|
@@ -251,7 +293,7 @@ files:
|
|
251
293
|
- template/config.ru
|
252
294
|
- template/config/config.rb
|
253
295
|
- template/config/initializers/database.rb
|
254
|
-
- template/config/initializers/
|
296
|
+
- template/config/initializers/rollbar.rb
|
255
297
|
- template/config/puma.rb
|
256
298
|
- template/db/schema.sql
|
257
299
|
- template/db/seeds.rb
|
@@ -264,6 +306,7 @@ files:
|
|
264
306
|
- template/lib/routes.rb
|
265
307
|
- template/lib/serializers/base.rb
|
266
308
|
- template/spec/spec_helper.rb
|
309
|
+
- template/spec/support/auto_define_rack_app.rb
|
267
310
|
- template/spec/support/log.rb
|
268
311
|
- test/commands/creator_test.rb
|
269
312
|
- test/commands/generator_test.rb
|