grape 0.15.0 → 0.16.1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of grape might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +16 -1
- data/Gemfile.lock +16 -15
- data/README.md +41 -47
- data/UPGRADING.md +62 -0
- data/gemfiles/rails_3.gemfile.lock +225 -0
- data/grape.gemspec +2 -2
- data/lib/grape.rb +31 -26
- data/lib/grape/api.rb +39 -23
- data/lib/grape/dsl/inside_route.rb +8 -4
- data/lib/grape/dsl/routing.rb +2 -1
- data/lib/grape/endpoint.rb +43 -62
- data/lib/grape/error_formatter.rb +4 -2
- data/lib/grape/error_formatter/base.rb +10 -6
- data/lib/grape/formatter.rb +4 -2
- data/lib/grape/http/headers.rb +1 -0
- data/lib/grape/middleware/formatter.rb +2 -2
- data/lib/grape/middleware/versioner/accept_version_header.rb +2 -2
- data/lib/grape/middleware/versioner/header.rb +2 -2
- data/lib/grape/middleware/versioner/path.rb +2 -2
- data/lib/grape/namespace.rb +1 -1
- data/lib/grape/parser.rb +4 -2
- data/lib/grape/path.rb +3 -3
- data/lib/grape/request.rb +2 -2
- data/lib/grape/router.rb +156 -0
- data/lib/grape/router/attribute_translator.rb +40 -0
- data/lib/grape/router/pattern.rb +55 -0
- data/lib/grape/router/route.rb +105 -0
- data/lib/grape/serve_file/file_body.rb +34 -0
- data/lib/grape/{util → serve_file}/file_response.rb +1 -1
- data/lib/grape/{util → serve_file}/sendfile_response.rb +1 -1
- data/lib/grape/util/env.rb +1 -1
- data/lib/grape/util/registrable.rb +13 -0
- data/lib/grape/validations/types/custom_type_coercer.rb +2 -0
- data/lib/grape/version.rb +1 -1
- data/spec/grape/api/invalid_format_spec.rb +43 -0
- data/spec/grape/api/recognize_path_spec.rb +21 -0
- data/spec/grape/api/required_parameters_with_invalid_method_spec.rb +26 -0
- data/spec/grape/api_spec.rb +110 -38
- data/spec/grape/dsl/inside_route_spec.rb +267 -240
- data/spec/grape/endpoint_spec.rb +10 -0
- data/spec/grape/entity_spec.rb +2 -2
- data/spec/grape/middleware/formatter_spec.rb +23 -4
- data/spec/grape/middleware/versioner/header_spec.rb +1 -1
- data/spec/grape/middleware/versioner/path_spec.rb +1 -1
- data/spec/grape/parser_spec.rb +82 -0
- data/spec/grape/request_spec.rb +2 -2
- data/spec/grape/validations/params_scope_spec.rb +2 -2
- data/spec/grape/validations/validators/coerce_spec.rb +51 -0
- data/spec/grape/validations_spec.rb +1 -1
- data/tmp/Gemfile.lock +63 -0
- metadata +70 -55
- data/lib/grape/route.rb +0 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 14025980d9a1ead68f6864f6794d94cb4a070b8c
|
4
|
+
data.tar.gz: 0cb0c1aa236b361ff803d2534f545542016503dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0530cb22cb08ab580a4450a0b4e7d9337cb5d0ae920cdd6c00124d8c238e4b4be24f0cdfc759caf343135c479c45da64fba8f8214ddb88a7ec88aa709a7392c1
|
7
|
+
data.tar.gz: d467e07232bc21fe849ec5a122126f119e1fee53cebfc5691a1ce8c9b6f90c75072dfae88ff50f116457f0e0c4cb7100e75358415a549d14b37d1e46aca3e3ea
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
0.16.1 (4/3/2016)
|
2
|
+
=================
|
3
|
+
|
4
|
+
#### Features
|
5
|
+
|
6
|
+
* [#1276](https://github.com/ruby-grape/grape/pull/1276): Replace rack-mount with new router - [@namusyaka](https://github.com/namusyaka).
|
7
|
+
* [#1321](https://github.com/ruby-grape/grape/pull/1321): Serve files without using FileStreamer-like object - [@lfidnl](https://github.com/lfidnl).
|
8
|
+
* [#1339](https://github.com/ruby-grape/grape/pull/1339): Implement Grape::API.recognize_path - [@namusyaka](https://github.com/namusyaka).
|
9
|
+
|
10
|
+
#### Fixes
|
11
|
+
|
12
|
+
* [#1325](https://github.com/ruby-grape/grape/pull/1325): Params: Fix coerce_with helper with Array types - [@ngonzalez](https://github.com/ngonzalez).
|
13
|
+
* [#1326](https://github.com/ruby-grape/grape/pull/1326): Fix wrong behavior for OPTIONS and HEAD requests with catch-all - [@ekampp](https://github.com/ekampp), [@namusyaka](https://github.com/namusyaka).
|
14
|
+
* [#1330](https://github.com/ruby-grape/grape/pull/1330): Add `register` keyword for adding customized parsers and formatters - [@namusyaka](https://github.com/namusyaka).
|
15
|
+
* [#1336](https://github.com/ruby-grape/grape/pull/1336): Do not modify Hash argument to `error!` - [@tjwp](https://github.com/tjwp).
|
16
|
+
|
1
17
|
0.15.0 (3/8/2016)
|
2
18
|
=================
|
3
19
|
|
@@ -27,7 +43,6 @@
|
|
27
43
|
* [#1197](https://github.com/ruby-grape/grape/pull/1290): Fix using JSON and Array[JSON] as groups when parameter is optional - [@lukeivers](https://github.com/lukeivers).
|
28
44
|
|
29
45
|
0.14.0 (12/07/2015)
|
30
|
-
===================
|
31
46
|
|
32
47
|
#### Features
|
33
48
|
|
data/Gemfile.lock
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
grape (0.
|
4
|
+
grape (0.16.1)
|
5
5
|
activesupport
|
6
6
|
builder
|
7
7
|
hashie (>= 2.1.0)
|
8
8
|
multi_json (>= 1.3.2)
|
9
9
|
multi_xml (>= 0.5.2)
|
10
|
+
mustermann19 (~> 0.4.3)
|
10
11
|
rack (>= 1.3.0)
|
11
12
|
rack-accept
|
12
|
-
rack-mount
|
13
13
|
virtus (>= 1.0.0)
|
14
14
|
|
15
15
|
GEM
|
@@ -32,15 +32,16 @@ GEM
|
|
32
32
|
descendants_tracker (~> 0.0.4)
|
33
33
|
ice_nine (~> 0.11.0)
|
34
34
|
thread_safe (~> 0.3, >= 0.3.1)
|
35
|
-
benchmark-ips (2.
|
35
|
+
benchmark-ips (2.5.0)
|
36
36
|
builder (3.2.2)
|
37
|
-
coderay (1.1.
|
37
|
+
coderay (1.1.1)
|
38
38
|
coercible (1.0.0)
|
39
39
|
descendants_tracker (~> 0.0.1)
|
40
|
-
cookiejar (0.3.
|
40
|
+
cookiejar (0.3.3)
|
41
41
|
descendants_tracker (0.0.4)
|
42
42
|
thread_safe (~> 0.3, >= 0.3.1)
|
43
43
|
diff-lcs (1.2.5)
|
44
|
+
enumerable-lazy (0.0.1)
|
44
45
|
equalizer (0.0.11)
|
45
46
|
ffi (1.9.10)
|
46
47
|
formatador (0.2.5)
|
@@ -69,17 +70,19 @@ GEM
|
|
69
70
|
i18n (0.7.0)
|
70
71
|
ice_nine (0.11.2)
|
71
72
|
json (1.8.3)
|
72
|
-
listen (3.0.
|
73
|
+
listen (3.0.6)
|
73
74
|
rb-fsevent (>= 0.9.3)
|
74
|
-
rb-inotify (>= 0.9)
|
75
|
+
rb-inotify (>= 0.9.7)
|
75
76
|
lumberjack (1.0.10)
|
76
77
|
maruku (0.7.2)
|
77
78
|
method_source (0.8.2)
|
78
|
-
mime-types (2.99)
|
79
|
+
mime-types (2.99.1)
|
79
80
|
minitest (5.8.4)
|
80
81
|
multi_json (1.11.2)
|
81
82
|
multi_xml (0.5.5)
|
82
|
-
|
83
|
+
mustermann19 (0.4.3)
|
84
|
+
enumerable-lazy
|
85
|
+
nenv (0.3.0)
|
83
86
|
notiffany (0.0.8)
|
84
87
|
nenv (~> 0.1)
|
85
88
|
shellany (~> 0.0)
|
@@ -96,20 +99,18 @@ GEM
|
|
96
99
|
rack-contrib (1.4.0)
|
97
100
|
git-version-bump (~> 0.15)
|
98
101
|
rack (~> 1.4)
|
99
|
-
rack-mount (0.8.3)
|
100
|
-
rack (>= 1.0.0)
|
101
102
|
rack-test (0.6.3)
|
102
103
|
rack (>= 1.0)
|
103
104
|
rainbow (2.1.0)
|
104
105
|
rake (10.5.0)
|
105
106
|
rb-fsevent (0.9.7)
|
106
|
-
rb-inotify (0.9.
|
107
|
+
rb-inotify (0.9.7)
|
107
108
|
ffi (>= 0.5.0)
|
108
109
|
rspec (3.4.0)
|
109
110
|
rspec-core (~> 3.4.0)
|
110
111
|
rspec-expectations (~> 3.4.0)
|
111
112
|
rspec-mocks (~> 3.4.0)
|
112
|
-
rspec-core (3.4.
|
113
|
+
rspec-core (3.4.3)
|
113
114
|
rspec-support (~> 3.4.0)
|
114
115
|
rspec-expectations (3.4.0)
|
115
116
|
diff-lcs (>= 1.2.0, < 2.0)
|
@@ -157,10 +158,10 @@ DEPENDENCIES
|
|
157
158
|
mime-types (< 3.0)
|
158
159
|
rack-contrib
|
159
160
|
rack-test
|
160
|
-
rake
|
161
|
+
rake (~> 10)
|
161
162
|
rspec (~> 3.0)
|
162
163
|
rubocop (= 0.35.1)
|
163
164
|
yard
|
164
165
|
|
165
166
|
BUNDLED WITH
|
166
|
-
1.
|
167
|
+
1.11.2
|
data/README.md
CHANGED
@@ -5,6 +5,7 @@
|
|
5
5
|
[![Dependency Status](https://gemnasium.com/ruby-grape/grape.svg)](https://gemnasium.com/ruby-grape/grape)
|
6
6
|
[![Code Climate](https://codeclimate.com/github/ruby-grape/grape.svg)](https://codeclimate.com/github/ruby-grape/grape)
|
7
7
|
[![Inline docs](http://inch-ci.org/github/ruby-grape/grape.svg)](http://inch-ci.org/github/ruby-grape/grape)
|
8
|
+
[![Join the chat at https://gitter.im/ruby-grape/grape](https://badges.gitter.im/ruby-grape/grape.svg)](https://gitter.im/ruby-grape/grape?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
8
9
|
|
9
10
|
## Table of Contents
|
10
11
|
|
@@ -50,6 +51,7 @@
|
|
50
51
|
- [Cookies](#cookies)
|
51
52
|
- [HTTP Status Code](#http-status-code)
|
52
53
|
- [Redirecting](#redirecting)
|
54
|
+
- [Recognizing Path](#recognizing-path)
|
53
55
|
- [Allowed Methods](#allowed-methods)
|
54
56
|
- [Raising Exceptions](#raising-exceptions)
|
55
57
|
- [Default Error HTTP Status Code](#default-error-http-status-code)
|
@@ -101,7 +103,7 @@ content negotiation, versioning and much more.
|
|
101
103
|
|
102
104
|
## Stable Release
|
103
105
|
|
104
|
-
You're reading the documentation for the stable release of Grape, 0.
|
106
|
+
You're reading the documentation for the stable release of Grape, 0.16.1.
|
105
107
|
Please read [UPGRADING](UPGRADING.md) when upgrading from a previous version.
|
106
108
|
|
107
109
|
## Project Resources
|
@@ -796,6 +798,15 @@ params do
|
|
796
798
|
end
|
797
799
|
```
|
798
800
|
|
801
|
+
Example of use of `coerce_with` with a lambda (a class with a `parse` method could also have been used)
|
802
|
+
It will parse a string and return an Array of Integers, matching the `Array[Integer]` `type`.
|
803
|
+
|
804
|
+
```ruby
|
805
|
+
params do
|
806
|
+
requires :values, type: Array[Integer], coerce_with: ->(val) { val.split(/\s+/).map(&:to_i) }
|
807
|
+
end
|
808
|
+
```
|
809
|
+
|
799
810
|
### Multipart File Parameters
|
800
811
|
|
801
812
|
Grape makes use of `Rack::Request`'s built-in support for multipart
|
@@ -1631,6 +1642,21 @@ redirect '/statuses'
|
|
1631
1642
|
redirect '/statuses', permanent: true
|
1632
1643
|
```
|
1633
1644
|
|
1645
|
+
## Recognizing Path
|
1646
|
+
|
1647
|
+
You can recognize the endpoint matched with given path.
|
1648
|
+
|
1649
|
+
This API returns an instance of `Grape::Endpoint`.
|
1650
|
+
|
1651
|
+
```ruby
|
1652
|
+
class API < Grape::API
|
1653
|
+
get '/statuses' do
|
1654
|
+
end
|
1655
|
+
end
|
1656
|
+
|
1657
|
+
API.recognize_path '/statuses'
|
1658
|
+
```
|
1659
|
+
|
1634
1660
|
## Allowed Methods
|
1635
1661
|
|
1636
1662
|
When you add a `GET` route for a resource, a route for the `HEAD`
|
@@ -2288,7 +2314,9 @@ module API
|
|
2288
2314
|
expose :text, documentation: { type: 'string', desc: 'Status update text.' }
|
2289
2315
|
expose :ip, if: { type: :full }
|
2290
2316
|
expose :user_type, :user_id, if: ->(status, options) { status.user.public? }
|
2291
|
-
expose :digest
|
2317
|
+
expose :digest do |status, options|
|
2318
|
+
Digest::MD5.hexdigest(status.txt)
|
2319
|
+
end
|
2292
2320
|
expose :replies, using: API::Status, as: :replies
|
2293
2321
|
end
|
2294
2322
|
end
|
@@ -2436,61 +2464,23 @@ end
|
|
2436
2464
|
|
2437
2465
|
Use `body false` to return `204 No Content` without any data or content-type.
|
2438
2466
|
|
2439
|
-
You can also set the response to a file
|
2440
|
-
Note: Rack will read your entire Enumerable before returning a response. If
|
2441
|
-
you would like to stream the response, see `stream`.
|
2467
|
+
You can also set the response to a file with `file`.
|
2442
2468
|
|
2443
2469
|
```ruby
|
2444
|
-
class FileStreamer
|
2445
|
-
def initialize(file_path)
|
2446
|
-
@file_path = file_path
|
2447
|
-
end
|
2448
|
-
|
2449
|
-
def each(&blk)
|
2450
|
-
File.open(@file_path, 'rb') do |file|
|
2451
|
-
file.each(10, &blk)
|
2452
|
-
end
|
2453
|
-
end
|
2454
|
-
end
|
2455
|
-
|
2456
2470
|
class API < Grape::API
|
2457
2471
|
get '/' do
|
2458
|
-
file
|
2472
|
+
file '/path/to/file'
|
2459
2473
|
end
|
2460
2474
|
end
|
2461
2475
|
```
|
2462
2476
|
|
2463
|
-
If you want a file
|
2477
|
+
If you want a file to be streamed using Rack::Chunked, use `stream`.
|
2464
2478
|
|
2465
2479
|
```ruby
|
2466
2480
|
class API < Grape::API
|
2467
2481
|
get '/' do
|
2468
|
-
stream
|
2469
|
-
end
|
2470
|
-
end
|
2471
|
-
```
|
2472
|
-
|
2473
|
-
If you want to take advantage of `Rack::Sendfile`, which intercepts responses whose body is
|
2474
|
-
being served from a file and replaces it with a server specific X-Sendfile header, specify `to_path`
|
2475
|
-
method in your file streamer class which returns path of served file:
|
2476
|
-
|
2477
|
-
```ruby
|
2478
|
-
class FileStreamer
|
2479
|
-
# ...
|
2480
|
-
|
2481
|
-
def to_path
|
2482
|
-
@file_path
|
2482
|
+
stream '/path/to/file'
|
2483
2483
|
end
|
2484
|
-
|
2485
|
-
# ...
|
2486
|
-
end
|
2487
|
-
```
|
2488
|
-
|
2489
|
-
Note: don't forget turn on `Rack::Sendfile` middleware in your API:
|
2490
|
-
|
2491
|
-
```ruby
|
2492
|
-
class API < Grape::API
|
2493
|
-
use Rack::Sendfile
|
2494
2484
|
end
|
2495
2485
|
```
|
2496
2486
|
|
@@ -2567,11 +2557,15 @@ Examine the routes at runtime.
|
|
2567
2557
|
```ruby
|
2568
2558
|
TwitterAPI::versions # yields [ 'v1', 'v2' ]
|
2569
2559
|
TwitterAPI::routes # yields an array of Grape::Route objects
|
2570
|
-
TwitterAPI::routes[0].
|
2571
|
-
TwitterAPI::routes[0].
|
2572
|
-
TwitterAPI::routes[0].
|
2560
|
+
TwitterAPI::routes[0].version # => 'v1'
|
2561
|
+
TwitterAPI::routes[0].description # => 'Includes custom settings.'
|
2562
|
+
TwitterAPI::routes[0].settings[:custom] # => { key: 'value' }
|
2573
2563
|
```
|
2574
2564
|
|
2565
|
+
Note that `Route#route_xyz` methods have been deprecated since 0.15.0.
|
2566
|
+
|
2567
|
+
Please use `Route#xyz` instead.
|
2568
|
+
|
2575
2569
|
## Current Route and Endpoint
|
2576
2570
|
|
2577
2571
|
It's possible to retrieve the information about the current route from within an API call with `route`.
|
data/UPGRADING.md
CHANGED
@@ -1,6 +1,68 @@
|
|
1
1
|
Upgrading Grape
|
2
2
|
===============
|
3
3
|
|
4
|
+
### Upgrading to >= 0.16.0
|
5
|
+
|
6
|
+
#### Replace rack-mount with new router
|
7
|
+
|
8
|
+
The `Route#route_xyz` methods have been deprecated since 0.15.1.
|
9
|
+
|
10
|
+
Please use `Route#xyz` instead.
|
11
|
+
|
12
|
+
Note that the `Route#route_method` was replaced by `Route#request_method`.
|
13
|
+
|
14
|
+
The following code would work correctly.
|
15
|
+
|
16
|
+
```ruby
|
17
|
+
TwitterAPI::versions # yields [ 'v1', 'v2' ]
|
18
|
+
TwitterAPI::routes # yields an array of Grape::Route objects
|
19
|
+
TwitterAPI::routes[0].version # => 'v1'
|
20
|
+
TwitterAPI::routes[0].description # => 'Includes custom settings.'
|
21
|
+
TwitterAPI::routes[0].settings[:custom] # => { key: 'value' }
|
22
|
+
|
23
|
+
TwitterAPI::routes[0].request_method # => 'GET'
|
24
|
+
```
|
25
|
+
|
26
|
+
#### `file` method accepts path to file
|
27
|
+
|
28
|
+
Now to serve files via Grape just pass the path to the file. Functionality with FileStreamer-like objects is deprecated.
|
29
|
+
|
30
|
+
Please, replace your FileStreamer-like objects with paths of served files.
|
31
|
+
|
32
|
+
Old style:
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
class FileStreamer
|
36
|
+
def initialize(file_path)
|
37
|
+
@file_path = file_path
|
38
|
+
end
|
39
|
+
|
40
|
+
def each(&blk)
|
41
|
+
File.open(@file_path, 'rb') do |file|
|
42
|
+
file.each(10, &blk)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
# ...
|
48
|
+
|
49
|
+
class API < Grape::API
|
50
|
+
get '/' do
|
51
|
+
file FileStreamer.new('/path/to/file')
|
52
|
+
end
|
53
|
+
end
|
54
|
+
```
|
55
|
+
|
56
|
+
New style:
|
57
|
+
|
58
|
+
```ruby
|
59
|
+
class API < Grape::API
|
60
|
+
get '/' do
|
61
|
+
file '/path/to/file'
|
62
|
+
end
|
63
|
+
end
|
64
|
+
```
|
65
|
+
|
4
66
|
### Upgrading to >= 0.15.0
|
5
67
|
|
6
68
|
#### Changes to availability of `:with` option of `rescue_from` method
|
@@ -0,0 +1,225 @@
|
|
1
|
+
PATH
|
2
|
+
remote: ../
|
3
|
+
specs:
|
4
|
+
grape (0.14.1)
|
5
|
+
activesupport
|
6
|
+
builder
|
7
|
+
hashie (>= 2.1.0)
|
8
|
+
multi_json (>= 1.3.2)
|
9
|
+
multi_xml (>= 0.5.2)
|
10
|
+
rack (>= 1.3.0)
|
11
|
+
rack-accept
|
12
|
+
rack-mount
|
13
|
+
virtus (>= 1.0.0)
|
14
|
+
|
15
|
+
GEM
|
16
|
+
remote: https://rubygems.org/
|
17
|
+
specs:
|
18
|
+
actionmailer (3.2.22)
|
19
|
+
actionpack (= 3.2.22)
|
20
|
+
mail (~> 2.5.4)
|
21
|
+
actionpack (3.2.22)
|
22
|
+
activemodel (= 3.2.22)
|
23
|
+
activesupport (= 3.2.22)
|
24
|
+
builder (~> 3.0.0)
|
25
|
+
erubis (~> 2.7.0)
|
26
|
+
journey (~> 1.0.4)
|
27
|
+
rack (~> 1.4.5)
|
28
|
+
rack-cache (~> 1.2)
|
29
|
+
rack-test (~> 0.6.1)
|
30
|
+
sprockets (~> 2.2.1)
|
31
|
+
activemodel (3.2.22)
|
32
|
+
activesupport (= 3.2.22)
|
33
|
+
builder (~> 3.0.0)
|
34
|
+
activerecord (3.2.22)
|
35
|
+
activemodel (= 3.2.22)
|
36
|
+
activesupport (= 3.2.22)
|
37
|
+
arel (~> 3.0.2)
|
38
|
+
tzinfo (~> 0.3.29)
|
39
|
+
activeresource (3.2.22)
|
40
|
+
activemodel (= 3.2.22)
|
41
|
+
activesupport (= 3.2.22)
|
42
|
+
activesupport (3.2.22)
|
43
|
+
i18n (~> 0.6, >= 0.6.4)
|
44
|
+
multi_json (~> 1.0)
|
45
|
+
appraisal (2.1.0)
|
46
|
+
bundler
|
47
|
+
rake
|
48
|
+
thor (>= 0.14.0)
|
49
|
+
arel (3.0.3)
|
50
|
+
ast (2.2.0)
|
51
|
+
astrolabe (1.3.1)
|
52
|
+
parser (~> 2.2)
|
53
|
+
axiom-types (0.1.1)
|
54
|
+
descendants_tracker (~> 0.0.4)
|
55
|
+
ice_nine (~> 0.11.0)
|
56
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
57
|
+
benchmark-ips (2.3.0)
|
58
|
+
builder (3.0.4)
|
59
|
+
coderay (1.1.0)
|
60
|
+
coercible (1.0.0)
|
61
|
+
descendants_tracker (~> 0.0.1)
|
62
|
+
cookiejar (0.3.2)
|
63
|
+
descendants_tracker (0.0.4)
|
64
|
+
thread_safe (~> 0.3, >= 0.3.1)
|
65
|
+
diff-lcs (1.2.5)
|
66
|
+
equalizer (0.0.11)
|
67
|
+
erubis (2.7.0)
|
68
|
+
ffi (1.9.10)
|
69
|
+
formatador (0.2.5)
|
70
|
+
git-version-bump (0.15.1)
|
71
|
+
grape-entity (0.5.0)
|
72
|
+
activesupport
|
73
|
+
multi_json (>= 1.3.2)
|
74
|
+
guard (2.13.0)
|
75
|
+
formatador (>= 0.2.4)
|
76
|
+
listen (>= 2.7, <= 4.0)
|
77
|
+
lumberjack (~> 1.0)
|
78
|
+
nenv (~> 0.1)
|
79
|
+
notiffany (~> 0.0)
|
80
|
+
pry (>= 0.9.12)
|
81
|
+
shellany (~> 0.0)
|
82
|
+
thor (>= 0.18.1)
|
83
|
+
guard-compat (1.2.1)
|
84
|
+
guard-rspec (4.6.4)
|
85
|
+
guard (~> 2.1)
|
86
|
+
guard-compat (~> 1.1)
|
87
|
+
rspec (>= 2.99.0, < 4.0)
|
88
|
+
guard-rubocop (1.2.0)
|
89
|
+
guard (~> 2.0)
|
90
|
+
rubocop (~> 0.20)
|
91
|
+
hashie (3.4.3)
|
92
|
+
hike (1.2.3)
|
93
|
+
i18n (0.7.0)
|
94
|
+
ice_nine (0.11.1)
|
95
|
+
journey (1.0.4)
|
96
|
+
json (1.8.3)
|
97
|
+
listen (3.0.5)
|
98
|
+
rb-fsevent (>= 0.9.3)
|
99
|
+
rb-inotify (>= 0.9)
|
100
|
+
lumberjack (1.0.10)
|
101
|
+
mail (2.5.4)
|
102
|
+
mime-types (~> 1.16)
|
103
|
+
treetop (~> 1.4.8)
|
104
|
+
maruku (0.7.2)
|
105
|
+
method_source (0.8.2)
|
106
|
+
mime-types (1.25.1)
|
107
|
+
multi_json (1.11.2)
|
108
|
+
multi_xml (0.5.5)
|
109
|
+
nenv (0.2.0)
|
110
|
+
notiffany (0.0.8)
|
111
|
+
nenv (~> 0.1)
|
112
|
+
shellany (~> 0.0)
|
113
|
+
parser (2.2.3.0)
|
114
|
+
ast (>= 1.1, < 3.0)
|
115
|
+
polyglot (0.3.5)
|
116
|
+
powerpack (0.1.1)
|
117
|
+
pry (0.10.3)
|
118
|
+
coderay (~> 1.1.0)
|
119
|
+
method_source (~> 0.8.1)
|
120
|
+
slop (~> 3.4)
|
121
|
+
rack (1.4.7)
|
122
|
+
rack-accept (0.4.5)
|
123
|
+
rack (>= 0.4)
|
124
|
+
rack-cache (1.2)
|
125
|
+
rack (>= 0.4)
|
126
|
+
rack-contrib (1.4.0)
|
127
|
+
git-version-bump (~> 0.15)
|
128
|
+
rack (~> 1.4)
|
129
|
+
rack-mount (0.8.3)
|
130
|
+
rack (>= 1.0.0)
|
131
|
+
rack-ssl (1.3.4)
|
132
|
+
rack
|
133
|
+
rack-test (0.6.3)
|
134
|
+
rack (>= 1.0)
|
135
|
+
rails (3.2.22)
|
136
|
+
actionmailer (= 3.2.22)
|
137
|
+
actionpack (= 3.2.22)
|
138
|
+
activerecord (= 3.2.22)
|
139
|
+
activeresource (= 3.2.22)
|
140
|
+
activesupport (= 3.2.22)
|
141
|
+
bundler (~> 1.0)
|
142
|
+
railties (= 3.2.22)
|
143
|
+
railties (3.2.22)
|
144
|
+
actionpack (= 3.2.22)
|
145
|
+
activesupport (= 3.2.22)
|
146
|
+
rack-ssl (~> 1.3.2)
|
147
|
+
rake (>= 0.8.7)
|
148
|
+
rdoc (~> 3.4)
|
149
|
+
thor (>= 0.14.6, < 2.0)
|
150
|
+
rainbow (2.0.0)
|
151
|
+
rake (10.4.2)
|
152
|
+
rb-fsevent (0.9.7)
|
153
|
+
rb-inotify (0.9.5)
|
154
|
+
ffi (>= 0.5.0)
|
155
|
+
rdoc (3.12.2)
|
156
|
+
json (~> 1.4)
|
157
|
+
rspec (3.4.0)
|
158
|
+
rspec-core (~> 3.4.0)
|
159
|
+
rspec-expectations (~> 3.4.0)
|
160
|
+
rspec-mocks (~> 3.4.0)
|
161
|
+
rspec-core (3.4.1)
|
162
|
+
rspec-support (~> 3.4.0)
|
163
|
+
rspec-expectations (3.4.0)
|
164
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
165
|
+
rspec-support (~> 3.4.0)
|
166
|
+
rspec-mocks (3.4.0)
|
167
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
168
|
+
rspec-support (~> 3.4.0)
|
169
|
+
rspec-support (3.4.1)
|
170
|
+
rubocop (0.35.1)
|
171
|
+
astrolabe (~> 1.3)
|
172
|
+
parser (>= 2.2.3.0, < 3.0)
|
173
|
+
powerpack (~> 0.1)
|
174
|
+
rainbow (>= 1.99.1, < 3.0)
|
175
|
+
ruby-progressbar (~> 1.7)
|
176
|
+
tins (<= 1.6.0)
|
177
|
+
ruby-progressbar (1.7.5)
|
178
|
+
shellany (0.0.1)
|
179
|
+
slop (3.6.0)
|
180
|
+
sprockets (2.2.3)
|
181
|
+
hike (~> 1.2)
|
182
|
+
multi_json (~> 1.0)
|
183
|
+
rack (~> 1.0)
|
184
|
+
tilt (~> 1.1, != 1.3.0)
|
185
|
+
thor (0.19.1)
|
186
|
+
thread_safe (0.3.5)
|
187
|
+
tilt (1.4.1)
|
188
|
+
tins (1.6.0)
|
189
|
+
treetop (1.4.15)
|
190
|
+
polyglot
|
191
|
+
polyglot (>= 0.3.1)
|
192
|
+
tzinfo (0.3.46)
|
193
|
+
virtus (1.0.5)
|
194
|
+
axiom-types (~> 0.1)
|
195
|
+
coercible (~> 1.0)
|
196
|
+
descendants_tracker (~> 0.0, >= 0.0.3)
|
197
|
+
equalizer (~> 0.0, >= 0.0.9)
|
198
|
+
yard (0.8.7.6)
|
199
|
+
|
200
|
+
PLATFORMS
|
201
|
+
ruby
|
202
|
+
|
203
|
+
DEPENDENCIES
|
204
|
+
appraisal
|
205
|
+
benchmark-ips
|
206
|
+
bundler
|
207
|
+
cookiejar
|
208
|
+
grape!
|
209
|
+
grape-entity (>= 0.4.4)
|
210
|
+
guard
|
211
|
+
guard-rspec
|
212
|
+
guard-rubocop
|
213
|
+
maruku
|
214
|
+
mime-types (< 3.0)
|
215
|
+
rack-cache (<= 1.2)
|
216
|
+
rack-contrib
|
217
|
+
rack-test
|
218
|
+
rails (= 3.2.22)
|
219
|
+
rake
|
220
|
+
rspec (~> 3.0)
|
221
|
+
rubocop (= 0.35.1)
|
222
|
+
yard
|
223
|
+
|
224
|
+
BUNDLED WITH
|
225
|
+
1.11.2
|