introspective_grape 0.3.7 → 0.3.9
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/.travis.yml +1 -22
- data/CHANGELOG.md +26 -2
- data/Gemfile +2 -0
- data/README.md +1 -0
- data/gemfiles/Gemfile.rails.5.0.0 +2 -1
- data/gemfiles/Gemfile.rails.5.0.1 +2 -1
- data/gemfiles/Gemfile.rails.5.1.0 +2 -1
- data/gemfiles/Gemfile.rails.5.2.0 +2 -1
- data/gemfiles/Gemfile.rails.master +2 -1
- data/introspective_grape.gemspec +4 -4
- data/lib/introspective_grape/api.rb +2 -1
- data/lib/introspective_grape/camel_snake.rb +1 -1
- data/lib/introspective_grape/version.rb +1 -1
- data/spec/dummy/Gemfile +3 -2
- data/spec/dummy/app/api/api_helpers.rb +2 -0
- data/spec/dummy/app/api/dummy/company_api.rb +1 -1
- data/spec/dummy/config.ru +12 -0
- data/spec/dummy/db/migrate/20190325231304_add_test_data.rb +5 -0
- data/spec/dummy/db/schema.rb +154 -173
- data/spec/requests/project_api_spec.rb +1 -1
- metadata +8 -28
- data/gemfiles/2.0.0-Gemfile +0 -22
- data/gemfiles/2.2.0-Gemfile +0 -21
- data/gemfiles/Gemfile.rails.3.2.22 +0 -13
- data/gemfiles/Gemfile.rails.4.1.13 +0 -13
- data/gemfiles/Gemfile.rails.4.2.10 +0 -12
- data/gemfiles/Gemfile.rails.4.2.7.1 +0 -14
- data/gemfiles/Gemfile.rails.4.2.7.1.new.swagger +0 -13
- data/gemfiles/Gemfile.rails.4.2.8 +0 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1effbc66aaa2ba49bd62f0e7605095c7e827bf83
|
|
4
|
+
data.tar.gz: baebbb68b35036a66a2ff041f80c17b2d47decd1
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 65d0d34c627d73ecdf3a082bc45f6597f9ae22aa066c0fa0eaea379d04ff4e38d9eca6bd5a8ef4fdfe03c44da3869bda89b7814e5a84cac8b9c0144416ead2de
|
|
7
|
+
data.tar.gz: 3733b34a24eb28826f9ae455b3975b6a96b5796ca78d75486bd4ee18a761370ce2fa847c6dae080e8486b79d062c2f0fbbc60f33e9781b871d676e7edf3da927
|
data/.travis.yml
CHANGED
|
@@ -7,20 +7,12 @@ script:
|
|
|
7
7
|
- bundle exec rspec
|
|
8
8
|
|
|
9
9
|
rvm:
|
|
10
|
-
# - 2.0.0
|
|
11
|
-
# - 2.1.0
|
|
12
|
-
- 2.2.2
|
|
13
10
|
- 2.3.1
|
|
14
11
|
- 2.4.0
|
|
12
|
+
- 2.5.0
|
|
15
13
|
- ruby-head
|
|
16
14
|
- jruby-head
|
|
17
15
|
gemfile:
|
|
18
|
-
# - gemfiles/Gemfile.rails.3.2.22
|
|
19
|
-
# - gemfiles/Gemfile.rails.4.1.13
|
|
20
|
-
# - gemfiles/Gemfile.rails.4.2.7.1
|
|
21
|
-
# - gemfiles/Gemfile.rails.4.2.7.1.new.swagger
|
|
22
|
-
# - gemfiles/Gemfile.rails.4.2.8
|
|
23
|
-
# - gemfiles/Gemfile.rails.5.0.0
|
|
24
16
|
- gemfiles/Gemfile.rails.5.0.1
|
|
25
17
|
- gemfiles/Gemfile.rails.5.1.0
|
|
26
18
|
- gemfiles/Gemfile.rails.5.2.0
|
|
@@ -28,19 +20,6 @@ gemfile:
|
|
|
28
20
|
|
|
29
21
|
matrix:
|
|
30
22
|
exclude:
|
|
31
|
-
# We'll have to back up to grape-swagger 0.11 for earlier rubies.
|
|
32
|
-
- rvm: 2.0.0
|
|
33
|
-
gemfile: gemfiles/Gemfile.rails.5.0.1
|
|
34
|
-
- rvm: 2.0.0
|
|
35
|
-
gemfile: gemfiles/Gemfile.rails.master
|
|
36
|
-
- rvm: 2.1.0
|
|
37
|
-
gemfile: gemfiles/Gemfile.rails.5.0.1
|
|
38
|
-
- rvm: 2.1.0
|
|
39
|
-
gemfile: gemfiles/Gemfile.rails.master
|
|
40
|
-
- rvm: 2.2.0
|
|
41
|
-
gemfile: gemfiles/Gemfile.rails.5.0.1
|
|
42
|
-
- rvm: 2.2.0
|
|
43
|
-
gemfile: gemfiles/Gemfile.rails.master
|
|
44
23
|
- rvm: jruby-9.0.4.0
|
|
45
24
|
gemfile: gemfiles/Gemfile.rails.5.0.1
|
|
46
25
|
- rvm: jruby-9.0.4.0
|
data/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,33 @@
|
|
|
1
1
|
|
|
2
|
-
0.3.
|
|
2
|
+
0.3.9 04/01/2019
|
|
3
3
|
================
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Add a note to the README that pagination will have to be supported via alexey-klimuk's fork of grape-kaminari from years ago because the middleware support gems have stopped being maintained, and rubygems doesn't support targeting github branches when adding dependencies.
|
|
6
6
|
|
|
7
|
+
gem 'grape-kaminari', :github => 'alexey-klimuk/grape-kaminari'
|
|
8
|
+
|
|
9
|
+
Probably we'll just fork it if nobody else can be bothered.
|
|
10
|
+
|
|
11
|
+
0.3.8 03/27/2019
|
|
12
|
+
================
|
|
13
|
+
|
|
14
|
+
Support the latest Grape.
|
|
15
|
+
|
|
16
|
+
0.3.7 03/26/2019
|
|
17
|
+
================
|
|
18
|
+
|
|
19
|
+
Updated to support Grape ~> 1.2.0. Ruby 2.2 no longer supported.
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
0.3.7 03/25/2019
|
|
23
|
+
================
|
|
24
|
+
|
|
25
|
+
Updated to support Grape <~ 1.1.0.
|
|
26
|
+
|
|
27
|
+
0.3.6 03/23/2019
|
|
28
|
+
================
|
|
29
|
+
|
|
30
|
+
Updated to support Rails 5+.
|
|
7
31
|
|
|
8
32
|
|
|
9
33
|
0.3.5 09/14/2018
|
data/Gemfile
CHANGED
|
@@ -5,6 +5,8 @@ source 'https://rubygems.org'
|
|
|
5
5
|
# development dependencies will be added by default to the :development group.
|
|
6
6
|
gemspec
|
|
7
7
|
|
|
8
|
+
gem 'grape-kaminari', :github => 'alexey-klimuk/grape-kaminari'
|
|
9
|
+
|
|
8
10
|
gem 'coveralls', require: false
|
|
9
11
|
|
|
10
12
|
# Declare any dependencies that are still in development here instead of in
|
data/README.md
CHANGED
data/introspective_grape.gemspec
CHANGED
|
@@ -18,16 +18,16 @@ Gem::Specification.new do |s|
|
|
|
18
18
|
s.files = `git ls-files`.split("\n").sort
|
|
19
19
|
s.test_files = `git ls-files -- spec/*`.split("\n")
|
|
20
20
|
|
|
21
|
-
s.required_ruby_version = '
|
|
21
|
+
s.required_ruby_version = '>= 2.3'
|
|
22
22
|
|
|
23
23
|
s.add_dependency "rails", '> 5.0.0'
|
|
24
24
|
|
|
25
25
|
# grape 1.0.0 breaks the pagination solution
|
|
26
|
-
s.add_dependency 'grape', '
|
|
26
|
+
s.add_dependency 'grape', '~> 1.2.0'
|
|
27
27
|
s.add_dependency 'grape-entity'
|
|
28
28
|
s.add_dependency 'grape-swagger'
|
|
29
|
-
s.add_dependency 'kaminari'
|
|
30
|
-
s.add_dependency 'grape-kaminari'
|
|
29
|
+
s.add_dependency 'kaminari' #, '< 1.0' # version 1.0.0 breaks
|
|
30
|
+
#s.add_dependency 'grape-kaminari', :github => 'alexey-klimuk/grape-kaminari'
|
|
31
31
|
# Pundit 2.0 mysteriously made authorize a protected method...
|
|
32
32
|
s.add_dependency 'pundit' #, '<2.0'
|
|
33
33
|
s.add_dependency 'camel_snake_keys', '>0.0.4'
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require 'action_controller'
|
|
2
|
+
require 'kaminari'
|
|
2
3
|
require 'grape-kaminari'
|
|
3
4
|
require 'introspective_grape/validators'
|
|
4
5
|
|
|
@@ -6,7 +7,7 @@ class IntrospectiveGrapeError < StandardError
|
|
|
6
7
|
end
|
|
7
8
|
|
|
8
9
|
module IntrospectiveGrape
|
|
9
|
-
class API < Grape::API
|
|
10
|
+
class API < Grape::API::Instance
|
|
10
11
|
extend IntrospectiveGrape::Helpers
|
|
11
12
|
extend IntrospectiveGrape::CreateHelpers
|
|
12
13
|
extend IntrospectiveGrape::Filters
|
|
@@ -28,7 +28,7 @@ if IntrospectiveGrape.config.camelize_parameters
|
|
|
28
28
|
end
|
|
29
29
|
end
|
|
30
30
|
|
|
31
|
-
Grape::API.singleton_class.send(:prepend, CreateCamelizedDocumentationClass)
|
|
31
|
+
Grape::API::Instance.singleton_class.send(:prepend, CreateCamelizedDocumentationClass)
|
|
32
32
|
else
|
|
33
33
|
module CallWithCamelized
|
|
34
34
|
def call(*args)
|
data/spec/dummy/Gemfile
CHANGED
|
@@ -10,11 +10,12 @@ gem 'delayed_paperclip'
|
|
|
10
10
|
|
|
11
11
|
gem 'grape'
|
|
12
12
|
gem 'grape-entity'
|
|
13
|
-
gem 'grape-kaminari'
|
|
13
|
+
gem 'grape-kaminari'
|
|
14
14
|
gem 'grape-swagger'
|
|
15
|
-
gem 'introspective_grape',
|
|
15
|
+
gem 'introspective_grape', git: 'https://github.com/buermann/introspective_grape', branch: 'grape-1.2'
|
|
16
16
|
|
|
17
17
|
gem 'paperclip'
|
|
18
18
|
gem 'pundit'
|
|
19
19
|
|
|
20
|
+
gem 'rack-cors'
|
|
20
21
|
gem 'sqlite3', '< 1.4.0'
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
module ApiHelpers
|
|
2
2
|
def current_user
|
|
3
3
|
params[:api_key].present? && @user = User.find_by_authentication_token(params[:api_key])
|
|
4
|
+
# for testing in situ
|
|
5
|
+
#@user = User.find_or_create_by(email: 'test@test.com', superuser: true, authentication_token: '1234567890', first_name: "First", last_name: "Last")
|
|
4
6
|
end
|
|
5
7
|
|
|
6
8
|
def authenticate!
|
|
@@ -5,7 +5,7 @@ class Dummy::CompanyAPI < IntrospectiveGrape::API
|
|
|
5
5
|
|
|
6
6
|
desc "Test default values in an extra endpoint"
|
|
7
7
|
params do
|
|
8
|
-
optional :boolean_default, type: Boolean, default: false
|
|
8
|
+
optional :boolean_default, type: Virtus::Attribute::Boolean, default: false
|
|
9
9
|
optional :string_default, type: String, default: "foo"
|
|
10
10
|
optional :integer_default, type: Integer, default: 123
|
|
11
11
|
end
|
data/spec/dummy/config.ru
CHANGED
|
@@ -2,3 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
require ::File.expand_path('../config/environment', __FILE__)
|
|
4
4
|
run Rails.application
|
|
5
|
+
|
|
6
|
+
require 'rack/cors'
|
|
7
|
+
|
|
8
|
+
use Rack::Cors do
|
|
9
|
+
allow do
|
|
10
|
+
origins '*'
|
|
11
|
+
resource '*',
|
|
12
|
+
:headers => :any,
|
|
13
|
+
:methods => [:get, :post, :delete, :put, :options],
|
|
14
|
+
expose: %w(X-Server-Date X-Server-Epoch)
|
|
15
|
+
end
|
|
16
|
+
end
|
data/spec/dummy/db/schema.rb
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
# encoding: UTF-8
|
|
2
1
|
# This file is auto-generated from the current state of the database. Instead
|
|
3
2
|
# of editing this file, please use the migrations feature of Active Record to
|
|
4
3
|
# incrementally modify your database, and then regenerate this schema definition.
|
|
@@ -11,269 +10,251 @@
|
|
|
11
10
|
#
|
|
12
11
|
# It's strongly recommended that you check this file into your version control system.
|
|
13
12
|
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
|
13
|
+
ActiveRecord::Schema.define(version: 2019_03_25_231304) do
|
|
15
14
|
|
|
16
15
|
create_table "active_admin_comments", force: :cascade do |t|
|
|
17
|
-
t.string
|
|
18
|
-
t.text
|
|
19
|
-
t.string
|
|
20
|
-
t.string
|
|
21
|
-
t.integer
|
|
22
|
-
t.string
|
|
23
|
-
t.datetime "created_at",
|
|
24
|
-
t.datetime "updated_at",
|
|
16
|
+
t.string "namespace"
|
|
17
|
+
t.text "body"
|
|
18
|
+
t.string "resource_id", null: false
|
|
19
|
+
t.string "resource_type", null: false
|
|
20
|
+
t.integer "author_id"
|
|
21
|
+
t.string "author_type"
|
|
22
|
+
t.datetime "created_at", null: false
|
|
23
|
+
t.datetime "updated_at", null: false
|
|
24
|
+
t.index ["author_type", "author_id"], name: "index_active_admin_comments_on_author_type_and_author_id"
|
|
25
|
+
t.index ["namespace"], name: "index_active_admin_comments_on_namespace"
|
|
26
|
+
t.index ["resource_type", "resource_id"], name: "index_active_admin_comments_on_resource_type_and_resource_id"
|
|
25
27
|
end
|
|
26
28
|
|
|
27
|
-
add_index "active_admin_comments", ["author_type", "author_id"], name: "index_active_admin_comments_on_author_type_and_author_id"
|
|
28
|
-
add_index "active_admin_comments", ["namespace"], name: "index_active_admin_comments_on_namespace"
|
|
29
|
-
add_index "active_admin_comments", ["resource_type", "resource_id"], name: "index_active_admin_comments_on_resource_type_and_resource_id"
|
|
30
|
-
|
|
31
29
|
create_table "admin_users", force: :cascade do |t|
|
|
32
|
-
t.string
|
|
33
|
-
t.string
|
|
34
|
-
t.string
|
|
30
|
+
t.string "email", default: "", null: false
|
|
31
|
+
t.string "encrypted_password", default: "", null: false
|
|
32
|
+
t.string "reset_password_token"
|
|
35
33
|
t.datetime "reset_password_sent_at"
|
|
36
34
|
t.datetime "remember_created_at"
|
|
37
|
-
t.integer
|
|
35
|
+
t.integer "sign_in_count", default: 0, null: false
|
|
38
36
|
t.datetime "current_sign_in_at"
|
|
39
37
|
t.datetime "last_sign_in_at"
|
|
40
|
-
t.string
|
|
41
|
-
t.string
|
|
42
|
-
t.datetime "created_at",
|
|
43
|
-
t.datetime "updated_at",
|
|
38
|
+
t.string "current_sign_in_ip"
|
|
39
|
+
t.string "last_sign_in_ip"
|
|
40
|
+
t.datetime "created_at", null: false
|
|
41
|
+
t.datetime "updated_at", null: false
|
|
42
|
+
t.index ["email"], name: "index_admin_users_on_email", unique: true
|
|
43
|
+
t.index ["reset_password_token"], name: "index_admin_users_on_reset_password_token", unique: true
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
add_index "admin_users", ["email"], name: "index_admin_users_on_email", unique: true
|
|
47
|
-
add_index "admin_users", ["reset_password_token"], name: "index_admin_users_on_reset_password_token", unique: true
|
|
48
|
-
|
|
49
46
|
create_table "chat_message_users", force: :cascade do |t|
|
|
50
|
-
t.integer
|
|
51
|
-
t.integer
|
|
47
|
+
t.integer "chat_message_id"
|
|
48
|
+
t.integer "user_id"
|
|
52
49
|
t.datetime "read_at"
|
|
53
|
-
t.datetime "created_at",
|
|
54
|
-
t.datetime "updated_at",
|
|
50
|
+
t.datetime "created_at", null: false
|
|
51
|
+
t.datetime "updated_at", null: false
|
|
52
|
+
t.index ["chat_message_id"], name: "index_chat_message_users_on_chat_message_id"
|
|
53
|
+
t.index ["user_id"], name: "index_chat_message_users_on_user_id"
|
|
55
54
|
end
|
|
56
55
|
|
|
57
|
-
add_index "chat_message_users", ["chat_message_id"], name: "index_chat_message_users_on_chat_message_id"
|
|
58
|
-
add_index "chat_message_users", ["user_id"], name: "index_chat_message_users_on_user_id"
|
|
59
|
-
|
|
60
56
|
create_table "chat_messages", force: :cascade do |t|
|
|
61
|
-
t.integer
|
|
62
|
-
t.integer
|
|
63
|
-
t.text
|
|
57
|
+
t.integer "chat_id"
|
|
58
|
+
t.integer "author_id"
|
|
59
|
+
t.text "message"
|
|
64
60
|
t.datetime "created_at", null: false
|
|
65
61
|
t.datetime "updated_at", null: false
|
|
62
|
+
t.index ["author_id"], name: "index_chat_messages_on_author_id"
|
|
63
|
+
t.index ["chat_id"], name: "index_chat_messages_on_chat_id"
|
|
66
64
|
end
|
|
67
65
|
|
|
68
|
-
add_index "chat_messages", ["author_id"], name: "index_chat_messages_on_author_id"
|
|
69
|
-
add_index "chat_messages", ["chat_id"], name: "index_chat_messages_on_chat_id"
|
|
70
|
-
|
|
71
66
|
create_table "chat_users", force: :cascade do |t|
|
|
72
|
-
t.integer
|
|
73
|
-
t.integer
|
|
67
|
+
t.integer "chat_id"
|
|
68
|
+
t.integer "user_id"
|
|
74
69
|
t.datetime "departed_at"
|
|
75
|
-
t.datetime "created_at",
|
|
76
|
-
t.datetime "updated_at",
|
|
70
|
+
t.datetime "created_at", null: false
|
|
71
|
+
t.datetime "updated_at", null: false
|
|
72
|
+
t.index ["chat_id"], name: "index_chat_users_on_chat_id"
|
|
73
|
+
t.index ["user_id"], name: "index_chat_users_on_user_id"
|
|
77
74
|
end
|
|
78
75
|
|
|
79
|
-
add_index "chat_users", ["chat_id"], name: "index_chat_users_on_chat_id"
|
|
80
|
-
add_index "chat_users", ["user_id"], name: "index_chat_users_on_user_id"
|
|
81
|
-
|
|
82
76
|
create_table "chats", force: :cascade do |t|
|
|
83
|
-
t.integer
|
|
77
|
+
t.integer "creator_id"
|
|
84
78
|
t.datetime "created_at", null: false
|
|
85
79
|
t.datetime "updated_at", null: false
|
|
86
80
|
end
|
|
87
81
|
|
|
88
82
|
create_table "companies", force: :cascade do |t|
|
|
89
|
-
t.string
|
|
90
|
-
t.string
|
|
91
|
-
t.datetime "created_at",
|
|
92
|
-
t.datetime "updated_at",
|
|
83
|
+
t.string "name", limit: 256, null: false
|
|
84
|
+
t.string "short_name", limit: 10, null: false
|
|
85
|
+
t.datetime "created_at", null: false
|
|
86
|
+
t.datetime "updated_at", null: false
|
|
87
|
+
t.index ["name"], name: "index_companies_on_name", unique: true
|
|
93
88
|
end
|
|
94
89
|
|
|
95
|
-
add_index "companies", ["name"], name: "index_companies_on_name", unique: true
|
|
96
|
-
|
|
97
90
|
create_table "images", force: :cascade do |t|
|
|
98
|
-
t.integer
|
|
99
|
-
t.string
|
|
100
|
-
t.string
|
|
101
|
-
t.string
|
|
102
|
-
t.integer
|
|
91
|
+
t.integer "imageable_id"
|
|
92
|
+
t.string "imageable_type"
|
|
93
|
+
t.string "file_file_name"
|
|
94
|
+
t.string "file_content_type"
|
|
95
|
+
t.integer "file_file_size"
|
|
103
96
|
t.datetime "file_updated_at"
|
|
104
|
-
t.boolean
|
|
105
|
-
t.text
|
|
106
|
-
t.string
|
|
107
|
-
t.float
|
|
108
|
-
t.float
|
|
97
|
+
t.boolean "file_processing", default: false, null: false
|
|
98
|
+
t.text "meta"
|
|
99
|
+
t.string "source"
|
|
100
|
+
t.float "lat"
|
|
101
|
+
t.float "lng"
|
|
109
102
|
t.datetime "taken_at"
|
|
110
|
-
t.datetime "created_at",
|
|
111
|
-
t.datetime "updated_at",
|
|
103
|
+
t.datetime "created_at", null: false
|
|
104
|
+
t.datetime "updated_at", null: false
|
|
112
105
|
end
|
|
113
106
|
|
|
114
107
|
create_table "jobs", force: :cascade do |t|
|
|
115
|
-
t.string
|
|
108
|
+
t.string "title", null: false
|
|
116
109
|
t.datetime "created_at", null: false
|
|
117
110
|
t.datetime "updated_at", null: false
|
|
118
111
|
end
|
|
119
112
|
|
|
120
113
|
create_table "locatables", force: :cascade do |t|
|
|
121
|
-
t.integer
|
|
122
|
-
t.integer
|
|
123
|
-
t.string
|
|
124
|
-
t.datetime "created_at",
|
|
125
|
-
t.datetime "updated_at",
|
|
114
|
+
t.integer "location_id"
|
|
115
|
+
t.integer "locatable_id"
|
|
116
|
+
t.string "locatable_type"
|
|
117
|
+
t.datetime "created_at", null: false
|
|
118
|
+
t.datetime "updated_at", null: false
|
|
119
|
+
t.index ["locatable_type", "locatable_id"], name: "index_locatables_on_locatable_type_and_locatable_id"
|
|
126
120
|
end
|
|
127
121
|
|
|
128
|
-
add_index "locatables", ["locatable_type", "locatable_id"], name: "index_locatables_on_locatable_type_and_locatable_id"
|
|
129
|
-
|
|
130
122
|
create_table "location_beacons", force: :cascade do |t|
|
|
131
|
-
t.integer
|
|
132
|
-
t.integer
|
|
133
|
-
t.string
|
|
134
|
-
t.string
|
|
135
|
-
t.integer
|
|
136
|
-
t.integer
|
|
137
|
-
t.datetime "created_at",
|
|
138
|
-
t.datetime "updated_at",
|
|
123
|
+
t.integer "location_id"
|
|
124
|
+
t.integer "company_id", null: false
|
|
125
|
+
t.string "mac_address", limit: 12
|
|
126
|
+
t.string "uuid", limit: 32, null: false
|
|
127
|
+
t.integer "major", null: false
|
|
128
|
+
t.integer "minor", null: false
|
|
129
|
+
t.datetime "created_at", null: false
|
|
130
|
+
t.datetime "updated_at", null: false
|
|
131
|
+
t.index ["company_id", "uuid", "major", "minor"], name: "index_location_beacons_unique_company_identifier", unique: true
|
|
139
132
|
end
|
|
140
133
|
|
|
141
|
-
add_index "location_beacons", ["company_id", "uuid", "major", "minor"], name: "index_location_beacons_unique_company_identifier", unique: true
|
|
142
|
-
|
|
143
134
|
create_table "location_gps", force: :cascade do |t|
|
|
144
|
-
t.integer
|
|
145
|
-
t.float
|
|
146
|
-
t.float
|
|
147
|
-
t.float
|
|
148
|
-
t.datetime "created_at",
|
|
149
|
-
t.datetime "updated_at",
|
|
135
|
+
t.integer "location_id"
|
|
136
|
+
t.float "lat", null: false
|
|
137
|
+
t.float "lng", null: false
|
|
138
|
+
t.float "alt", default: 0.0
|
|
139
|
+
t.datetime "created_at", null: false
|
|
140
|
+
t.datetime "updated_at", null: false
|
|
141
|
+
t.index ["location_id"], name: "index_location_gps_on_location_id"
|
|
150
142
|
end
|
|
151
143
|
|
|
152
|
-
add_index "location_gps", ["location_id"], name: "index_location_gps_on_location_id"
|
|
153
|
-
|
|
154
144
|
create_table "locations", force: :cascade do |t|
|
|
155
|
-
t.string
|
|
156
|
-
t.string
|
|
157
|
-
t.integer
|
|
158
|
-
t.datetime "created_at",
|
|
159
|
-
t.datetime "updated_at",
|
|
145
|
+
t.string "name", null: false
|
|
146
|
+
t.string "kind"
|
|
147
|
+
t.integer "parent_location_id"
|
|
148
|
+
t.datetime "created_at", null: false
|
|
149
|
+
t.datetime "updated_at", null: false
|
|
150
|
+
t.index ["parent_location_id", "kind", "name"], name: "index_locations_on_parent_location_id_and_kind_and_name", unique: true
|
|
151
|
+
t.index ["parent_location_id"], name: "index_locations_on_parent_location_id"
|
|
160
152
|
end
|
|
161
153
|
|
|
162
|
-
add_index "locations", ["parent_location_id", "kind", "name"], name: "index_locations_on_parent_location_id_and_kind_and_name", unique: true
|
|
163
|
-
add_index "locations", ["parent_location_id"], name: "index_locations_on_parent_location_id"
|
|
164
|
-
|
|
165
154
|
create_table "project_jobs", force: :cascade do |t|
|
|
166
|
-
t.integer
|
|
167
|
-
t.integer
|
|
155
|
+
t.integer "project_id", null: false
|
|
156
|
+
t.integer "job_id", null: false
|
|
168
157
|
t.datetime "created_at", null: false
|
|
169
158
|
t.datetime "updated_at", null: false
|
|
159
|
+
t.index ["job_id"], name: "index_project_jobs_on_job_id"
|
|
160
|
+
t.index ["project_id", "job_id"], name: "index_project_jobs_on_project_id_and_job_id", unique: true
|
|
161
|
+
t.index ["project_id"], name: "index_project_jobs_on_project_id"
|
|
170
162
|
end
|
|
171
163
|
|
|
172
|
-
add_index "project_jobs", ["job_id"], name: "index_project_jobs_on_job_id"
|
|
173
|
-
add_index "project_jobs", ["project_id", "job_id"], name: "index_project_jobs_on_project_id_and_job_id", unique: true
|
|
174
|
-
add_index "project_jobs", ["project_id"], name: "index_project_jobs_on_project_id"
|
|
175
|
-
|
|
176
164
|
create_table "projects", force: :cascade do |t|
|
|
177
|
-
t.string
|
|
178
|
-
t.integer
|
|
179
|
-
t.datetime "created_at",
|
|
180
|
-
t.datetime "updated_at",
|
|
181
|
-
t.string
|
|
165
|
+
t.string "name", null: false
|
|
166
|
+
t.integer "owner_id"
|
|
167
|
+
t.datetime "created_at", null: false
|
|
168
|
+
t.datetime "updated_at", null: false
|
|
169
|
+
t.string "default_password"
|
|
170
|
+
t.index ["owner_id"], name: "index_projects_on_owner_id"
|
|
182
171
|
end
|
|
183
172
|
|
|
184
|
-
add_index "projects", ["owner_id"], name: "index_projects_on_owner_id"
|
|
185
|
-
|
|
186
173
|
create_table "roles", force: :cascade do |t|
|
|
187
|
-
t.integer
|
|
188
|
-
t.integer
|
|
189
|
-
t.string
|
|
190
|
-
t.datetime "created_at",
|
|
191
|
-
t.datetime "updated_at",
|
|
174
|
+
t.integer "user_id", null: false
|
|
175
|
+
t.integer "ownable_id"
|
|
176
|
+
t.string "ownable_type"
|
|
177
|
+
t.datetime "created_at", null: false
|
|
178
|
+
t.datetime "updated_at", null: false
|
|
179
|
+
t.index ["ownable_type", "ownable_id"], name: "index_roles_on_ownable_type_and_ownable_id"
|
|
180
|
+
t.index ["user_id", "ownable_type", "ownable_id"], name: "index_roles_on_user_id_and_ownable_type_and_ownable_id", unique: true
|
|
192
181
|
end
|
|
193
182
|
|
|
194
|
-
add_index "roles", ["ownable_type", "ownable_id"], name: "index_roles_on_ownable_type_and_ownable_id"
|
|
195
|
-
add_index "roles", ["user_id", "ownable_type", "ownable_id"], name: "index_roles_on_user_id_and_ownable_type_and_ownable_id", unique: true
|
|
196
|
-
|
|
197
183
|
create_table "team_users", force: :cascade do |t|
|
|
198
|
-
t.integer
|
|
199
|
-
t.integer
|
|
184
|
+
t.integer "user_id"
|
|
185
|
+
t.integer "team_id"
|
|
200
186
|
t.datetime "created_at", null: false
|
|
201
187
|
t.datetime "updated_at", null: false
|
|
188
|
+
t.index ["team_id"], name: "index_team_users_on_team_id"
|
|
189
|
+
t.index ["user_id", "team_id"], name: "index_team_users_on_user_id_and_team_id", unique: true
|
|
190
|
+
t.index ["user_id"], name: "index_team_users_on_user_id"
|
|
202
191
|
end
|
|
203
192
|
|
|
204
|
-
add_index "team_users", ["team_id"], name: "index_team_users_on_team_id"
|
|
205
|
-
add_index "team_users", ["user_id", "team_id"], name: "index_team_users_on_user_id_and_team_id", unique: true
|
|
206
|
-
add_index "team_users", ["user_id"], name: "index_team_users_on_user_id"
|
|
207
|
-
|
|
208
193
|
create_table "teams", force: :cascade do |t|
|
|
209
|
-
t.string
|
|
210
|
-
t.integer
|
|
211
|
-
t.integer
|
|
194
|
+
t.string "name"
|
|
195
|
+
t.integer "project_id"
|
|
196
|
+
t.integer "creator_id"
|
|
212
197
|
t.datetime "created_at", null: false
|
|
213
198
|
t.datetime "updated_at", null: false
|
|
199
|
+
t.index ["creator_id"], name: "index_teams_on_creator_id"
|
|
200
|
+
t.index ["project_id"], name: "index_teams_on_project_id"
|
|
214
201
|
end
|
|
215
202
|
|
|
216
|
-
add_index "teams", ["creator_id"], name: "index_teams_on_creator_id"
|
|
217
|
-
add_index "teams", ["project_id"], name: "index_teams_on_project_id"
|
|
218
|
-
|
|
219
203
|
create_table "user_locations", force: :cascade do |t|
|
|
220
|
-
t.integer
|
|
221
|
-
t.integer
|
|
222
|
-
t.integer
|
|
223
|
-
t.string
|
|
224
|
-
t.float
|
|
225
|
-
t.float
|
|
226
|
-
t.float
|
|
227
|
-
t.datetime "created_at",
|
|
228
|
-
t.datetime "updated_at",
|
|
204
|
+
t.integer "user_id"
|
|
205
|
+
t.integer "location_id"
|
|
206
|
+
t.integer "detectable_id"
|
|
207
|
+
t.string "detectable_type"
|
|
208
|
+
t.float "lat"
|
|
209
|
+
t.float "lng"
|
|
210
|
+
t.float "alt"
|
|
211
|
+
t.datetime "created_at", null: false
|
|
212
|
+
t.datetime "updated_at", null: false
|
|
213
|
+
t.index ["detectable_type", "detectable_id"], name: "index_user_locations_on_detectable_type_and_detectable_id"
|
|
214
|
+
t.index ["location_id"], name: "index_user_locations_on_location_id"
|
|
215
|
+
t.index ["user_id"], name: "index_user_locations_on_user_id"
|
|
229
216
|
end
|
|
230
217
|
|
|
231
|
-
add_index "user_locations", ["detectable_type", "detectable_id"], name: "index_user_locations_on_detectable_type_and_detectable_id"
|
|
232
|
-
add_index "user_locations", ["location_id"], name: "index_user_locations_on_location_id"
|
|
233
|
-
add_index "user_locations", ["user_id"], name: "index_user_locations_on_user_id"
|
|
234
|
-
|
|
235
218
|
create_table "user_project_jobs", force: :cascade do |t|
|
|
236
|
-
t.integer
|
|
237
|
-
t.integer
|
|
238
|
-
t.integer
|
|
219
|
+
t.integer "user_id", null: false
|
|
220
|
+
t.integer "project_id", null: false
|
|
221
|
+
t.integer "job_id", null: false
|
|
239
222
|
t.datetime "created_at", null: false
|
|
240
223
|
t.datetime "updated_at", null: false
|
|
224
|
+
t.index ["job_id"], name: "index_user_project_jobs_on_job_id"
|
|
225
|
+
t.index ["project_id"], name: "index_user_project_jobs_on_project_id"
|
|
226
|
+
t.index ["user_id", "project_id", "job_id"], name: "index_user_project_jobs_on_user_id_and_project_id_and_job_id", unique: true
|
|
227
|
+
t.index ["user_id"], name: "index_user_project_jobs_on_user_id"
|
|
241
228
|
end
|
|
242
229
|
|
|
243
|
-
add_index "user_project_jobs", ["job_id"], name: "index_user_project_jobs_on_job_id"
|
|
244
|
-
add_index "user_project_jobs", ["project_id"], name: "index_user_project_jobs_on_project_id"
|
|
245
|
-
add_index "user_project_jobs", ["user_id", "project_id", "job_id"], name: "index_user_project_jobs_on_user_id_and_project_id_and_job_id", unique: true
|
|
246
|
-
add_index "user_project_jobs", ["user_id"], name: "index_user_project_jobs_on_user_id"
|
|
247
|
-
|
|
248
230
|
create_table "users", force: :cascade do |t|
|
|
249
|
-
t.string
|
|
250
|
-
t.string
|
|
251
|
-
t.string
|
|
231
|
+
t.string "email", default: "", null: false
|
|
232
|
+
t.string "encrypted_password", default: "", null: false
|
|
233
|
+
t.string "reset_password_token"
|
|
252
234
|
t.datetime "reset_password_sent_at"
|
|
253
235
|
t.datetime "remember_created_at"
|
|
254
|
-
t.integer
|
|
236
|
+
t.integer "sign_in_count", default: 0, null: false
|
|
255
237
|
t.datetime "current_sign_in_at"
|
|
256
238
|
t.datetime "last_sign_in_at"
|
|
257
|
-
t.string
|
|
258
|
-
t.string
|
|
259
|
-
t.datetime "created_at",
|
|
260
|
-
t.datetime "updated_at",
|
|
261
|
-
t.integer
|
|
262
|
-
t.string
|
|
239
|
+
t.string "current_sign_in_ip"
|
|
240
|
+
t.string "last_sign_in_ip"
|
|
241
|
+
t.datetime "created_at", null: false
|
|
242
|
+
t.datetime "updated_at", null: false
|
|
243
|
+
t.integer "failed_attempts", default: 0, null: false
|
|
244
|
+
t.string "unlock_token"
|
|
263
245
|
t.datetime "locked_at"
|
|
264
|
-
t.boolean
|
|
265
|
-
t.string
|
|
266
|
-
t.string
|
|
246
|
+
t.boolean "superuser", default: false, null: false
|
|
247
|
+
t.string "authentication_token"
|
|
248
|
+
t.string "confirmation_token"
|
|
267
249
|
t.datetime "confirmed_at"
|
|
268
250
|
t.datetime "confirmation_sent_at"
|
|
269
|
-
t.string
|
|
270
|
-
t.string
|
|
271
|
-
t.string
|
|
251
|
+
t.string "unconfirmed_email"
|
|
252
|
+
t.string "first_name"
|
|
253
|
+
t.string "last_name"
|
|
254
|
+
t.index ["authentication_token"], name: "index_users_on_authentication_token", unique: true
|
|
255
|
+
t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
|
|
256
|
+
t.index ["email"], name: "index_users_on_email", unique: true
|
|
257
|
+
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
|
|
272
258
|
end
|
|
273
259
|
|
|
274
|
-
add_index "users", ["authentication_token"], name: "index_users_on_authentication_token", unique: true
|
|
275
|
-
add_index "users", ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
|
|
276
|
-
add_index "users", ["email"], name: "index_users_on_email", unique: true
|
|
277
|
-
add_index "users", ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true
|
|
278
|
-
|
|
279
260
|
end
|
|
@@ -174,7 +174,7 @@ describe Dummy::ProjectAPI, type: :request do
|
|
|
174
174
|
it "should respect the maximum number of results" do
|
|
175
175
|
get '/api/v1/projects', params: { per_page: 20, offset: 0 }
|
|
176
176
|
response.code.should eq "400"
|
|
177
|
-
json['error'].should eq "per_page must be less than 10"
|
|
177
|
+
json['error'].should eq "per_page must be less than or equal 10"
|
|
178
178
|
end
|
|
179
179
|
end
|
|
180
180
|
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: introspective_grape
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.9
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Josh Buermann
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2019-03
|
|
11
|
+
date: 2019-04-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rails
|
|
@@ -28,14 +28,14 @@ dependencies:
|
|
|
28
28
|
name: grape
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
|
-
- - "
|
|
31
|
+
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
33
|
version: 1.2.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
|
-
- - "
|
|
38
|
+
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
40
|
version: 1.2.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
@@ -68,20 +68,6 @@ dependencies:
|
|
|
68
68
|
version: '0'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
70
|
name: kaminari
|
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
|
72
|
-
requirements:
|
|
73
|
-
- - "<"
|
|
74
|
-
- !ruby/object:Gem::Version
|
|
75
|
-
version: '1.0'
|
|
76
|
-
type: :runtime
|
|
77
|
-
prerelease: false
|
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
-
requirements:
|
|
80
|
-
- - "<"
|
|
81
|
-
- !ruby/object:Gem::Version
|
|
82
|
-
version: '1.0'
|
|
83
|
-
- !ruby/object:Gem::Dependency
|
|
84
|
-
name: grape-kaminari
|
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
|
86
72
|
requirements:
|
|
87
73
|
- - ">="
|
|
@@ -246,14 +232,6 @@ files:
|
|
|
246
232
|
- app/models/.keep
|
|
247
233
|
- app/views/.keep
|
|
248
234
|
- bin/rails
|
|
249
|
-
- gemfiles/2.0.0-Gemfile
|
|
250
|
-
- gemfiles/2.2.0-Gemfile
|
|
251
|
-
- gemfiles/Gemfile.rails.3.2.22
|
|
252
|
-
- gemfiles/Gemfile.rails.4.1.13
|
|
253
|
-
- gemfiles/Gemfile.rails.4.2.10
|
|
254
|
-
- gemfiles/Gemfile.rails.4.2.7.1
|
|
255
|
-
- gemfiles/Gemfile.rails.4.2.7.1.new.swagger
|
|
256
|
-
- gemfiles/Gemfile.rails.4.2.8
|
|
257
235
|
- gemfiles/Gemfile.rails.5.0.0
|
|
258
236
|
- gemfiles/Gemfile.rails.5.0.1
|
|
259
237
|
- gemfiles/Gemfile.rails.5.1.0
|
|
@@ -383,6 +361,7 @@ files:
|
|
|
383
361
|
- spec/dummy/db/migrate/20150820190524_add_user_names.rb
|
|
384
362
|
- spec/dummy/db/migrate/20150824215701_create_images.rb
|
|
385
363
|
- spec/dummy/db/migrate/20150909225019_add_password_to_project.rb
|
|
364
|
+
- spec/dummy/db/migrate/20190325231304_add_test_data.rb
|
|
386
365
|
- spec/dummy/db/schema.rb
|
|
387
366
|
- spec/dummy/lib/assets/.keep
|
|
388
367
|
- spec/dummy/log/.keep
|
|
@@ -425,9 +404,9 @@ require_paths:
|
|
|
425
404
|
- lib
|
|
426
405
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
427
406
|
requirements:
|
|
428
|
-
- - "
|
|
407
|
+
- - ">="
|
|
429
408
|
- !ruby/object:Gem::Version
|
|
430
|
-
version: '2.
|
|
409
|
+
version: '2.3'
|
|
431
410
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
432
411
|
requirements:
|
|
433
412
|
- - ">="
|
|
@@ -551,6 +530,7 @@ test_files:
|
|
|
551
530
|
- spec/dummy/db/migrate/20150820190524_add_user_names.rb
|
|
552
531
|
- spec/dummy/db/migrate/20150824215701_create_images.rb
|
|
553
532
|
- spec/dummy/db/migrate/20150909225019_add_password_to_project.rb
|
|
533
|
+
- spec/dummy/db/migrate/20190325231304_add_test_data.rb
|
|
554
534
|
- spec/dummy/db/schema.rb
|
|
555
535
|
- spec/dummy/lib/assets/.keep
|
|
556
536
|
- spec/dummy/log/.keep
|
data/gemfiles/2.0.0-Gemfile
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
|
|
3
|
-
# Declare your gem's dependencies in introspective_grape.gemspec.
|
|
4
|
-
# Bundler will treat runtime dependencies like base dependencies, and
|
|
5
|
-
# development dependencies will be added by default to the :development group.
|
|
6
|
-
|
|
7
|
-
gemspec :path => '../'
|
|
8
|
-
|
|
9
|
-
gem 'grape', '< 0.17'
|
|
10
|
-
gem 'grape-swagger', '< 0.12.0'
|
|
11
|
-
gem 'nokogiri', '< 1.6.9'
|
|
12
|
-
gem 'coveralls', require: false
|
|
13
|
-
|
|
14
|
-
# Declare any dependencies that are still in development here instead of in
|
|
15
|
-
# your gemspec. These might include edge Rails or gems from your path or
|
|
16
|
-
# Git. Remember to move these dependencies to your gemspec before releasing
|
|
17
|
-
# your gem to rubygems.org.
|
|
18
|
-
|
|
19
|
-
group :development,:test do
|
|
20
|
-
gem 'rspec'
|
|
21
|
-
# gem 'byebug'
|
|
22
|
-
end
|
data/gemfiles/2.2.0-Gemfile
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
|
|
3
|
-
# Declare your gem's dependencies in introspective_grape.gemspec.
|
|
4
|
-
# Bundler will treat runtime dependencies like base dependencies, and
|
|
5
|
-
# development dependencies will be added by default to the :development group.
|
|
6
|
-
|
|
7
|
-
gemspec :path => '../'
|
|
8
|
-
|
|
9
|
-
gem 'grape', '< 1.0.0'
|
|
10
|
-
gem 'grape-swagger'
|
|
11
|
-
gem 'coveralls', require: false
|
|
12
|
-
|
|
13
|
-
#
|
|
14
|
-
# Declare any dependencies that are still in development here instead of in
|
|
15
|
-
# your gemspec. These might include edge Rails or gems from your path or
|
|
16
|
-
# Git. Remember to move these dependencies to your gemspec before releasing
|
|
17
|
-
# your gem to rubygems.org.
|
|
18
|
-
|
|
19
|
-
group :development do
|
|
20
|
-
# gem 'byebug'
|
|
21
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
|
|
3
|
-
gemspec :path => '../'
|
|
4
|
-
|
|
5
|
-
gem 'rails', '3.2.22'
|
|
6
|
-
gem 'grape', '< 0.17'
|
|
7
|
-
gem 'grape-swagger', '< 0.12.0'
|
|
8
|
-
gem 'nokogiri', '< 1.6.9'
|
|
9
|
-
gem 'coveralls', require: false
|
|
10
|
-
|
|
11
|
-
group :development,:test do
|
|
12
|
-
gem 'rspec'
|
|
13
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
|
|
3
|
-
gemspec :path => '../'
|
|
4
|
-
|
|
5
|
-
gem 'rails', '4.1.13'
|
|
6
|
-
gem 'grape', '< 0.17'
|
|
7
|
-
gem 'grape-swagger', '< 0.12.0'
|
|
8
|
-
gem 'nokogiri', '< 1.6.9'
|
|
9
|
-
gem 'coveralls', require: false
|
|
10
|
-
|
|
11
|
-
group :development,:test do
|
|
12
|
-
gem 'rspec'
|
|
13
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
|
|
3
|
-
gemspec :path => '../'
|
|
4
|
-
|
|
5
|
-
gem 'rails', '4.2.7.1'
|
|
6
|
-
gem 'grape', '< 0.17'
|
|
7
|
-
gem 'grape-swagger', '< 0.12.0'
|
|
8
|
-
gem 'nokogiri', '< 1.6.9'
|
|
9
|
-
gem 'machinist'
|
|
10
|
-
gem 'coveralls', require: false
|
|
11
|
-
|
|
12
|
-
group :development,:test do
|
|
13
|
-
gem 'rspec'
|
|
14
|
-
end
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
source 'https://rubygems.org'
|
|
2
|
-
|
|
3
|
-
gemspec :path => '../'
|
|
4
|
-
|
|
5
|
-
gem 'rails', '4.2.8'
|
|
6
|
-
gem 'grape', '> 0.17'
|
|
7
|
-
gem 'grape-swagger', '> 0.12.0'
|
|
8
|
-
gem 'machinist'
|
|
9
|
-
gem 'nokogiri', '< 1.10.1'
|
|
10
|
-
gem 'coveralls', require: false
|
|
11
|
-
|
|
12
|
-
group :development,:test do
|
|
13
|
-
gem 'rspec'
|
|
14
|
-
end
|