grape-utils 0.1.2 → 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/Gemfile +1 -0
- data/Gemfile.lock +25 -1
- data/README.md +1 -1
- data/grape-utils-0.1.2.gem +0 -0
- data/lib/grape_utils/helpers.rb +5 -0
- data/lib/grape_utils/templates/create.rb +2 -2
- data/lib/grape_utils/templates/crud.rb +7 -2
- data/lib/grape_utils/templates/delete.rb +2 -1
- data/lib/grape_utils/templates/index.rb +1 -3
- data/lib/grape_utils/templates/show.rb +2 -1
- data/lib/grape_utils/templates/update.rb +2 -1
- data/lib/grape_utils/version.rb +1 -1
- metadata +7 -7
- data/grape-utils.gemspec +0 -41
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2ab969a4f83d19b5d05812cef99c2a9142a7b9fe4237831cb651cc6c2a41085
|
4
|
+
data.tar.gz: 315b141c08054cd7bfdef907c7683a7708defbe91d11bc796d19dbc47c3dd5ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 38eac86aecde93ae61a04890307e34eb03551b215422921caf21bbade61df0bc6f153c7cc1cf28f512970ae5c4a39cf9664d30d5416dae178ecf862d88a84e3e
|
7
|
+
data.tar.gz: 5d6378df1d33581cf201339ac2c42b5722d8bd3ca730a10049cbe3f5f69d4756c4794191b166382e3fd02b52a5ce845841a713ec05551fc80626e0943ad4b01d
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
grape-utils (0.
|
4
|
+
grape-utils (0.2.0)
|
5
5
|
grape
|
6
6
|
grape-entity
|
7
7
|
grape-kaminari
|
@@ -14,10 +14,18 @@ GEM
|
|
14
14
|
i18n (>= 1.6, < 2)
|
15
15
|
minitest (>= 5.1)
|
16
16
|
tzinfo (~> 2.0)
|
17
|
+
airborne (0.3.7)
|
18
|
+
activesupport
|
19
|
+
rack
|
20
|
+
rack-test (>= 1.1.0, < 2.0)
|
21
|
+
rest-client (>= 2.0.2, < 3.0)
|
22
|
+
rspec (~> 3.8)
|
17
23
|
ast (2.4.2)
|
18
24
|
builder (3.2.4)
|
19
25
|
concurrent-ruby (1.2.2)
|
20
26
|
diff-lcs (1.5.0)
|
27
|
+
domain_name (0.5.20190701)
|
28
|
+
unf (>= 0.0.5, < 1.0.0)
|
21
29
|
dry-core (1.0.1)
|
22
30
|
concurrent-ruby (~> 1.0)
|
23
31
|
zeitwerk (~> 2.6)
|
@@ -45,6 +53,9 @@ GEM
|
|
45
53
|
grape-kaminari (0.4.5)
|
46
54
|
grape (>= 1.6.1)
|
47
55
|
kaminari-grape
|
56
|
+
http-accept (1.7.0)
|
57
|
+
http-cookie (1.0.5)
|
58
|
+
domain_name (~> 0.5)
|
48
59
|
i18n (1.14.1)
|
49
60
|
concurrent-ruby (~> 1.0)
|
50
61
|
json (2.6.3)
|
@@ -53,12 +64,16 @@ GEM
|
|
53
64
|
grape
|
54
65
|
kaminari-core (~> 1.0)
|
55
66
|
language_server-protocol (3.17.0.3)
|
67
|
+
mime-types (3.4.1)
|
68
|
+
mime-types-data (~> 3.2015)
|
69
|
+
mime-types-data (3.2022.0105)
|
56
70
|
minitest (5.20.0)
|
57
71
|
multi_json (1.15.0)
|
58
72
|
mustermann (3.0.0)
|
59
73
|
ruby2_keywords (~> 0.0.1)
|
60
74
|
mustermann-grape (1.0.2)
|
61
75
|
mustermann (>= 1.0.0)
|
76
|
+
netrc (0.11.0)
|
62
77
|
parallel (1.23.0)
|
63
78
|
parser (3.2.2.4)
|
64
79
|
ast (~> 2.4.1)
|
@@ -72,6 +87,11 @@ GEM
|
|
72
87
|
rainbow (3.1.1)
|
73
88
|
rake (13.1.0)
|
74
89
|
regexp_parser (2.8.2)
|
90
|
+
rest-client (2.1.0)
|
91
|
+
http-accept (>= 1.7.0, < 2.0)
|
92
|
+
http-cookie (>= 1.0.2, < 2.0)
|
93
|
+
mime-types (>= 1.16, < 4.0)
|
94
|
+
netrc (~> 0.8)
|
75
95
|
rexml (3.2.6)
|
76
96
|
rspec (3.12.0)
|
77
97
|
rspec-core (~> 3.12.0)
|
@@ -103,6 +123,9 @@ GEM
|
|
103
123
|
ruby2_keywords (0.0.5)
|
104
124
|
tzinfo (2.0.6)
|
105
125
|
concurrent-ruby (~> 1.0)
|
126
|
+
unf (0.1.4)
|
127
|
+
unf_ext
|
128
|
+
unf_ext (0.0.8.2)
|
106
129
|
unicode-display_width (2.5.0)
|
107
130
|
zeitwerk (2.6.12)
|
108
131
|
|
@@ -110,6 +133,7 @@ PLATFORMS
|
|
110
133
|
x86_64-linux
|
111
134
|
|
112
135
|
DEPENDENCIES
|
136
|
+
airborne
|
113
137
|
grape
|
114
138
|
grape-entity
|
115
139
|
grape-kaminari
|
data/README.md
CHANGED
@@ -48,7 +48,7 @@ module AwesomeAPI
|
|
48
48
|
class Foo < Base
|
49
49
|
|
50
50
|
resource :foos do
|
51
|
-
mount Grape::Utils::Templates::Index, with: { model: Foo,
|
51
|
+
mount Grape::Utils::Templates::Index, with: { model: Foo, scope: Foo.all, entity: Entities::Foo }
|
52
52
|
mount Grape::Utils::Templates::Show, with: { model: Foo, entity: Entities::Foo }
|
53
53
|
mount Grape::Utils::Templates::Create, with: { model: Foo, entity: Entities::Foo}
|
54
54
|
mount Grape::Utils::Templates::Update, with: { model: Foo.all, entity: Entities::Foo }
|
Binary file
|
data/lib/grape_utils/helpers.rb
CHANGED
@@ -6,6 +6,11 @@ module Grape
|
|
6
6
|
def permitted_params
|
7
7
|
@permitted_params ||= declared(params, include_missing: false)
|
8
8
|
end
|
9
|
+
|
10
|
+
def calculate_scope(scope:, model:)
|
11
|
+
initial_scope = scope.is_a?(Proc) ? instance_eval(&scope) : scope
|
12
|
+
initial_scope || model.all
|
13
|
+
end
|
9
14
|
end
|
10
15
|
end
|
11
16
|
end
|
@@ -14,8 +14,8 @@ module Grape
|
|
14
14
|
using: configuration[:entity].documentation
|
15
15
|
end
|
16
16
|
post do
|
17
|
-
|
18
|
-
|
17
|
+
default_params = configuration[:default_params] || {}
|
18
|
+
resource = configuration[:model].create!(default_params.merge(permitted_params))
|
19
19
|
present resource, with: configuration[:entity]
|
20
20
|
end
|
21
21
|
end
|
@@ -7,22 +7,27 @@ module Grape
|
|
7
7
|
class Crud < ::Grape::API
|
8
8
|
mounted do
|
9
9
|
mount Templates::Index, with: { model: configuration[:model],
|
10
|
-
|
10
|
+
scope: configuration[:scope],
|
11
11
|
entity: configuration[:entity] }
|
12
12
|
|
13
13
|
mount Templates::Create, with: { model: configuration[:model],
|
14
|
+
scope: configuration[:scope],
|
14
15
|
entity: configuration[:entity],
|
15
|
-
required_params: configuration[:required_params]
|
16
|
+
required_params: configuration[:required_params],
|
17
|
+
default_params: configuration[:default_params] }
|
16
18
|
|
17
19
|
mount Templates::Show, with: { model: configuration[:model],
|
20
|
+
scope: configuration[:scope],
|
18
21
|
entity: configuration[:entity],
|
19
22
|
column_id: configuration[:column_id] }
|
20
23
|
|
21
24
|
mount Templates::Update, with: { model: configuration[:model],
|
25
|
+
scope: configuration[:scope],
|
22
26
|
entity: configuration[:entity],
|
23
27
|
column_id: configuration[:column_id] }
|
24
28
|
|
25
29
|
mount Templates::Delete, with: { model: configuration[:model],
|
30
|
+
scope: configuration[:scope],
|
26
31
|
entity: configuration[:entity],
|
27
32
|
column_id: configuration[:column_id] }
|
28
33
|
end
|
@@ -11,7 +11,8 @@ module Grape
|
|
11
11
|
route_param :id, type: String do
|
12
12
|
desc "Deletes an instances of #{configuration[:model].name}"
|
13
13
|
delete do
|
14
|
-
|
14
|
+
scope = calculate_scope(scope: configuration[:scope], model: configuration[:model])
|
15
|
+
resource = scope.find_by!((configuration[:column_id] || :id) => params[:id])
|
15
16
|
resource.destroy!
|
16
17
|
|
17
18
|
status(204)
|
@@ -16,9 +16,7 @@ module Grape
|
|
16
16
|
use :pagination, per_page: 10, max_per_page: 30
|
17
17
|
end
|
18
18
|
get do
|
19
|
-
|
20
|
-
|
21
|
-
list = index.is_a?(Proc) ? instance_eval(&index) : index
|
19
|
+
list = calculate_scope(scope: configuration[:scope], model: configuration[:model])
|
22
20
|
|
23
21
|
present list, with: configuration[:entity]
|
24
22
|
end
|
@@ -11,7 +11,8 @@ module Grape
|
|
11
11
|
route_param :id, type: String do
|
12
12
|
desc "Details of a #{configuration[:model].name}"
|
13
13
|
get do
|
14
|
-
|
14
|
+
scope = calculate_scope(scope: configuration[:scope], model: configuration[:model])
|
15
|
+
resource = scope.find_by!((configuration[:column_id] || :id) => params[:id])
|
15
16
|
present resource, with: configuration[:entity]
|
16
17
|
end
|
17
18
|
end
|
@@ -14,7 +14,8 @@ module Grape
|
|
14
14
|
requires :none, using: configuration[:entity].documentation
|
15
15
|
end
|
16
16
|
patch do
|
17
|
-
|
17
|
+
scope = configuration[:scope] || configuration[:model]
|
18
|
+
resource = scope.find_by!((configuration[:column_id] || :id) => params[:id])
|
18
19
|
resource.update!(permitted_params.except(:id))
|
19
20
|
|
20
21
|
present resource, with: configuration[:entity]
|
data/lib/grape_utils/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: grape-utils
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nix41
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: grape
|
@@ -80,7 +80,7 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
-
description:
|
83
|
+
description:
|
84
84
|
email:
|
85
85
|
- acprieto41@gmail.com
|
86
86
|
executables: []
|
@@ -96,7 +96,7 @@ files:
|
|
96
96
|
- LICENSE.txt
|
97
97
|
- README.md
|
98
98
|
- Rakefile
|
99
|
-
- grape-utils.
|
99
|
+
- grape-utils-0.1.2.gem
|
100
100
|
- lib/grape-utils.rb
|
101
101
|
- lib/grape_utils.rb
|
102
102
|
- lib/grape_utils/helpers.rb
|
@@ -115,7 +115,7 @@ metadata:
|
|
115
115
|
homepage_uri: https://github.com/Nix41/grape-utils
|
116
116
|
source_code_uri: https://github.com/Nix41/grape-utils
|
117
117
|
changelog_uri: https://github.com/Nix41/grape-utils/blob/main/CHANGELOG.md
|
118
|
-
post_install_message:
|
118
|
+
post_install_message:
|
119
119
|
rdoc_options: []
|
120
120
|
require_paths:
|
121
121
|
- lib
|
@@ -131,7 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
131
|
version: '0'
|
132
132
|
requirements: []
|
133
133
|
rubygems_version: 3.4.10
|
134
|
-
signing_key:
|
134
|
+
signing_key:
|
135
135
|
specification_version: 4
|
136
136
|
summary: Grape Utils for building APIs
|
137
137
|
test_files: []
|
data/grape-utils.gemspec
DELETED
@@ -1,41 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
$LOAD_PATH.unshift File.expand_path("lib", __dir__)
|
4
|
-
require_relative "lib/grape_utils/version"
|
5
|
-
|
6
|
-
Gem::Specification.new do |spec|
|
7
|
-
spec.name = "grape-utils"
|
8
|
-
spec.version = Grape::Utils::VERSION
|
9
|
-
spec.authors = ["Nix41"]
|
10
|
-
spec.email = ["acprieto41@gmail.com"]
|
11
|
-
|
12
|
-
spec.summary = "Grape Utils for building APIs"
|
13
|
-
# spec.description = "TODO: Write a longer description or delete this line."
|
14
|
-
spec.homepage = "https://github.com/Nix41/grape-utils"
|
15
|
-
spec.license = "MIT"
|
16
|
-
spec.required_ruby_version = ">= 2.6.0"
|
17
|
-
|
18
|
-
spec.metadata["homepage_uri"] = spec.homepage
|
19
|
-
spec.metadata["source_code_uri"] = "https://github.com/Nix41/grape-utils"
|
20
|
-
spec.metadata["changelog_uri"] = "https://github.com/Nix41/grape-utils/blob/main/CHANGELOG.md"
|
21
|
-
|
22
|
-
# Specify which files should be added to the gem when it is released.
|
23
|
-
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
24
|
-
spec.files = Dir.chdir(__dir__) do
|
25
|
-
`git ls-files -z`.split("\x0").reject do |f|
|
26
|
-
(File.expand_path(f) == __FILE__) || f.start_with?(*%w[bin/ test/ spec/ features/ .git .circleci appveyor])
|
27
|
-
end
|
28
|
-
end
|
29
|
-
spec.bindir = "exe"
|
30
|
-
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
31
|
-
spec.require_paths = ["lib"]
|
32
|
-
|
33
|
-
spec.add_dependency "grape"
|
34
|
-
spec.add_dependency "grape-entity"
|
35
|
-
spec.add_dependency "grape-kaminari"
|
36
|
-
spec.add_development_dependency "rspec"
|
37
|
-
spec.add_development_dependency "rubocop"
|
38
|
-
|
39
|
-
# For more information and examples about making a new gem, check out our
|
40
|
-
# guide at: https://bundler.io/guides/creating_gem.html
|
41
|
-
end
|