introspective_grape 0.5.4 → 0.5.7
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/.ruby-version +1 -1
- data/CHANGELOG.md +17 -1
- data/introspective_grape.gemspec +2 -2
- data/lib/introspective_grape/api.rb +9 -4
- data/lib/introspective_grape/filters.rb +1 -1
- data/lib/introspective_grape/validators.rb +5 -3
- data/lib/introspective_grape/version.rb +1 -1
- data/spec/dummy/Gemfile +3 -3
- metadata +5 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d29e073d96e9a6f2569eeaec65ece289f344fd5f0b6ea88a0dfb345d36d51052
|
4
|
+
data.tar.gz: dac77dd6bc6812de00ec06ee5299c5cea5ff0f3539a304e6a1d1335f72e69f36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 118befdc8fca693dd91610d8c0ecff86ca2e297cdb1b3817384b1fa78958a5949f1d252cc70eadf2187bee87080fb9949382e656b6765f259f4d23bba7fd2c47
|
7
|
+
data.tar.gz: 21f3339a6e874bca7d94fa3efcd92812afbbc0e9b74371cafc8eb3e1644334930671ee59841a13237998272acc06954916a5b09ccd9eb760df38c8b3a28557f9
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.7.3
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,23 @@
|
|
1
1
|
|
2
|
-
0.5.
|
2
|
+
0.5.7 03/10/2022
|
3
3
|
================
|
4
4
|
|
5
|
+
Handle the switch from Grape::Validations::Base to Grape::Validations::Validators::Base.
|
6
|
+
|
7
|
+
0.5.6 03/09/2022
|
8
|
+
================
|
9
|
+
|
10
|
+
On the DELETE endpoint the primary key with its type was undeclared, creating conflicts with user-defined delete endpoints.
|
11
|
+
|
12
|
+
0.5.5 02/24/2022
|
13
|
+
================
|
14
|
+
|
15
|
+
Update the local ruby in the gem to 2.7.3 to clear security warning cruft.
|
16
|
+
|
17
|
+
Sanitize some sql.
|
18
|
+
|
19
|
+
Target the still-supported 'kt-paperclip' in the gemspec (many pardons while we're planning the switch over to activestorage support).
|
20
|
+
|
5
21
|
Fix bug from looking for the ActiveRecord columns_hash on non-ActiveRecord objects.
|
6
22
|
|
7
23
|
0.5.2 02/07/2022
|
data/introspective_grape.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |s|
|
|
22
22
|
s.files = `git ls-files`.split("\n").sort
|
23
23
|
s.test_files = `git ls-files -- spec/*`.split("\n")
|
24
24
|
|
25
|
-
s.required_ruby_version = '
|
25
|
+
s.required_ruby_version = '> 2.5'
|
26
26
|
|
27
27
|
s.add_runtime_dependency 'rails', '~> 5.2'
|
28
28
|
s.add_runtime_dependency 'schema_validations'
|
@@ -57,7 +57,7 @@ Gem::Specification.new do |s|
|
|
57
57
|
s.add_development_dependency 'machinist_redux'
|
58
58
|
|
59
59
|
# dummy app dependencies
|
60
|
-
s.add_development_dependency 'paperclip'
|
60
|
+
s.add_development_dependency 'kt-paperclip'
|
61
61
|
s.add_development_dependency 'rufus-mnemo'
|
62
62
|
s.add_development_dependency 'devise'
|
63
63
|
end
|
@@ -99,13 +99,15 @@ module IntrospectiveGrape
|
|
99
99
|
# As routes are nested keep track of the routes, we are preventing siblings from
|
100
100
|
# appending to the routes array here:
|
101
101
|
routes = build_routes(routes, model)
|
102
|
-
define_routes(routes, whitelist)
|
103
102
|
|
104
103
|
# Top level declaration of the Grape::API namespace for the resource:
|
105
104
|
resource routes.first.name.pluralize do
|
106
|
-
# yield to
|
105
|
+
# yield to prepend user-defined routes under the root namespace first,
|
107
106
|
yield if block_given?
|
108
107
|
end
|
108
|
+
|
109
|
+
# Then define IntrospectiveGrape's routes:
|
110
|
+
define_routes(routes, whitelist)
|
109
111
|
end
|
110
112
|
|
111
113
|
def define_routes(routes, api_params)
|
@@ -209,12 +211,15 @@ module IntrospectiveGrape
|
|
209
211
|
end
|
210
212
|
|
211
213
|
# rubocop:enable Metrics/AbcSize
|
212
|
-
def define_destroy(dsl, routes,
|
214
|
+
def define_destroy(dsl, routes, model, _api_params)
|
213
215
|
klass = routes.first.klass
|
214
|
-
name
|
216
|
+
name = routes.last.name.singularize
|
215
217
|
dsl.desc "destroy a #{name}" do
|
216
218
|
detail klass.destroy_documentation(name)
|
217
219
|
end
|
220
|
+
dsl.params do
|
221
|
+
requires routes.last.swagger_key, type: klass.param_type(model, model.primary_key)
|
222
|
+
end
|
218
223
|
dsl.delete ":#{routes.last.swagger_key}" do
|
219
224
|
authorize @model, :destroy?
|
220
225
|
present status: (klass.find_leaf(routes, @model, params).destroy ? true : false)
|
@@ -91,7 +91,7 @@ module IntrospectiveGrape
|
|
91
91
|
|
92
92
|
if timestamp_filter(klass, model, field)
|
93
93
|
op = field.ends_with?('_start') ? '>=' : '<='
|
94
|
-
records.where("#{timestamp_filter(klass, model, field)} #{op} ?", Time.zone.parse(params[field]))
|
94
|
+
records.where(ActiveRecord::Base.sanitize_sql_array(["#{timestamp_filter(klass, model, field)} #{op} ?", Time.zone.parse(params[field])]))
|
95
95
|
elsif model.respond_to?("#{field}=")
|
96
96
|
records.send("#{field}=", params[field])
|
97
97
|
else
|
@@ -1,7 +1,9 @@
|
|
1
1
|
require 'grape/validations'
|
2
2
|
module Grape
|
3
3
|
module Validators
|
4
|
-
|
4
|
+
# Validations::Base becomes Validators::Base somewhere between 1.6.0 and 1.6.2
|
5
|
+
validation_class = defined?(Grape::Validations::Base) ? Grape::Validations::Base : Grape::Validations::Validators::Base
|
6
|
+
class Json < validation_class
|
5
7
|
def validate_param!(field, params)
|
6
8
|
begin
|
7
9
|
JSON.parse( params[field] )
|
@@ -11,7 +13,7 @@ module Grape
|
|
11
13
|
end
|
12
14
|
end
|
13
15
|
|
14
|
-
class JsonArray <
|
16
|
+
class JsonArray < validation_class
|
15
17
|
def validate_param!(field, params)
|
16
18
|
begin
|
17
19
|
raise unless JSON.parse( params[field] ).is_a? Array
|
@@ -21,7 +23,7 @@ module Grape
|
|
21
23
|
end
|
22
24
|
end
|
23
25
|
|
24
|
-
class JsonHash <
|
26
|
+
class JsonHash < validation_class
|
25
27
|
def validate_param!(field, params)
|
26
28
|
begin
|
27
29
|
raise unless JSON.parse( params[field] ).is_a? Hash
|
data/spec/dummy/Gemfile
CHANGED
@@ -1,19 +1,19 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
|
-
gem 'rails', '5.2.6'
|
2
|
+
gem 'rails', '5.2.6.2'
|
3
3
|
|
4
4
|
gem 'byebug'
|
5
5
|
gem 'camel_snake_keys'
|
6
6
|
|
7
7
|
gem 'devise'
|
8
8
|
gem 'delayed_paperclip'
|
9
|
-
|
9
|
+
gem 'kt-paperclip'
|
10
10
|
|
11
11
|
gem 'grape'
|
12
12
|
gem 'grape-entity'
|
13
13
|
gem 'grape-kaminari'
|
14
14
|
gem 'grape-swagger'
|
15
15
|
gem 'grape-swagger-entity'
|
16
|
-
gem 'introspective_grape'
|
16
|
+
gem 'introspective_grape' #, path: '~/Dropbox/contrib/introspective_grape'
|
17
17
|
|
18
18
|
gem 'paperclip'
|
19
19
|
gem 'pundit'
|
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.5.
|
4
|
+
version: 0.5.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Buermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-03-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -291,7 +291,7 @@ dependencies:
|
|
291
291
|
- !ruby/object:Gem::Version
|
292
292
|
version: '0'
|
293
293
|
- !ruby/object:Gem::Dependency
|
294
|
-
name: paperclip
|
294
|
+
name: kt-paperclip
|
295
295
|
requirement: !ruby/object:Gem::Requirement
|
296
296
|
requirements:
|
297
297
|
- - ">="
|
@@ -531,7 +531,7 @@ require_paths:
|
|
531
531
|
- lib
|
532
532
|
required_ruby_version: !ruby/object:Gem::Requirement
|
533
533
|
requirements:
|
534
|
-
- - "
|
534
|
+
- - ">"
|
535
535
|
- !ruby/object:Gem::Version
|
536
536
|
version: '2.5'
|
537
537
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
@@ -540,8 +540,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
540
540
|
- !ruby/object:Gem::Version
|
541
541
|
version: '0'
|
542
542
|
requirements: []
|
543
|
-
|
544
|
-
rubygems_version: 2.7.3
|
543
|
+
rubygems_version: 3.1.6
|
545
544
|
signing_key:
|
546
545
|
specification_version: 4
|
547
546
|
summary: Quickly configure Grape APIs around your database schema and models.
|