snfoil 0.8.1 → 0.8.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sn_foil/adapters/orms/active_record.rb +0 -4
- data/lib/sn_foil/adapters/orms/base_adapter.rb +8 -0
- data/lib/sn_foil/contexts/build_context.rb +2 -1
- data/lib/sn_foil/contexts/change_context.rb +2 -2
- data/lib/sn_foil/contexts/create_context.rb +1 -1
- data/lib/sn_foil/contexts/destroy_context.rb +3 -2
- data/lib/sn_foil/contexts/setup_context.rb +4 -2
- data/lib/sn_foil/contexts/show_context.rb +2 -1
- data/lib/sn_foil/contexts/update_context.rb +3 -2
- data/lib/sn_foil/version.rb +1 -1
- metadata +33 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4928d412e07ea8d2b871bbfafd71e430b6d3e9c31cb9e88779efcd567db0217c
|
4
|
+
data.tar.gz: d46e69bde8bcd3c5480d18773868d9c28f24e35ef2ed92f3e1e153f47ff655c5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ad4e04abe56529ede7e5c1e911f1d123367b0329d350dba3387f233d97e25d04886ee361272a22222671980b89999370e1b4af72b7a859ee99dd4bdb8b1b4b17
|
7
|
+
data.tar.gz: 6ea04352aff4d71af5cb9c724289825f1be838217c4cd2517612ca4dc6e2f0cc1308efe87311d7ff3124d575d60628471f02ca71236053c55087bc340ce318c8
|
@@ -25,6 +25,14 @@ module SnFoil
|
|
25
25
|
def attributes=(_attributes)
|
26
26
|
raise NotImplementedError, '#attributes= not implemented in adapter'
|
27
27
|
end
|
28
|
+
|
29
|
+
def is_a?(check_class)
|
30
|
+
__getobj__.class.object_id.equal?(check_class.object_id)
|
31
|
+
end
|
32
|
+
|
33
|
+
def klass
|
34
|
+
__getobj__.class
|
35
|
+
end
|
28
36
|
end
|
29
37
|
end
|
30
38
|
end
|
@@ -16,9 +16,9 @@ module SnFoil
|
|
16
16
|
attr_reader :i_params, :i_setup_change_hooks, :i_before_change_hooks, :i_after_change_hooks,
|
17
17
|
:i_after_change_success_hooks, :i_after_change_failure_hooks
|
18
18
|
|
19
|
-
def params(*
|
19
|
+
def params(*permitted_params)
|
20
20
|
@i_params ||= []
|
21
|
-
@i_params |=
|
21
|
+
@i_params |= permitted_params
|
22
22
|
end
|
23
23
|
|
24
24
|
def setup_change(method = nil, **options, &block)
|
@@ -117,7 +117,7 @@ module SnFoil
|
|
117
117
|
def create_hooks(options)
|
118
118
|
options = before_create_save(**options)
|
119
119
|
save_successful = options[:object].save
|
120
|
-
options
|
120
|
+
options[:object] = unwrap_object(options[:object])
|
121
121
|
options = if save_successful
|
122
122
|
after_create_save_success(**options)
|
123
123
|
else
|
@@ -56,7 +56,8 @@ module SnFoil
|
|
56
56
|
def setup_destroy_object(id: nil, object: nil, **options)
|
57
57
|
raise ArgumentError, 'one of the following keywords is required: id, object' unless id || object
|
58
58
|
|
59
|
-
options
|
59
|
+
options[:object] = wrap_object(object || scope.resolve.find(id))
|
60
|
+
options
|
60
61
|
end
|
61
62
|
|
62
63
|
def destroy(**options)
|
@@ -123,7 +124,7 @@ module SnFoil
|
|
123
124
|
def destroy_hooks(options)
|
124
125
|
options = before_destroy_save(options)
|
125
126
|
destroy_successful = options[:object].destroy
|
126
|
-
options
|
127
|
+
options[:object] = unwrap_object(options[:object])
|
127
128
|
options = if destroy_successful
|
128
129
|
after_destroy_save_success(options)
|
129
130
|
else
|
@@ -1,5 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require 'pundit'
|
3
4
|
require 'active_support/concern'
|
4
5
|
require 'active_support/core_ext/string/inflections'
|
5
6
|
|
@@ -104,10 +105,11 @@ module SnFoil
|
|
104
105
|
|
105
106
|
def lookup_policy(object, options)
|
106
107
|
lookup = if options[:policy]
|
107
|
-
options[:policy].new(entity, object)
|
108
|
+
options[:policy].new(entity, object, options: options)
|
108
109
|
elsif policy
|
109
|
-
policy.new(entity, object)
|
110
|
+
policy.new(entity, object, options: options)
|
110
111
|
else
|
112
|
+
SnFoil.logger.debug 'No policy found. Looking up policy using Pundit. `options` will not be passed to policy'
|
111
113
|
Pundit.policy!(entity, object)
|
112
114
|
end
|
113
115
|
|
@@ -29,7 +29,8 @@ module SnFoil
|
|
29
29
|
def setup_show_object(id: nil, object: nil, **options)
|
30
30
|
raise ArgumentError, 'one of the following keywords is required: id, object' unless id || object
|
31
31
|
|
32
|
-
options
|
32
|
+
options[:object] = wrap_object(object || scope.resolve.find(id))
|
33
|
+
options
|
33
34
|
end
|
34
35
|
|
35
36
|
def setup_show_hooks
|
@@ -60,7 +60,8 @@ module SnFoil
|
|
60
60
|
authorize(object, options.fetch(:authorize, :update?), **options)
|
61
61
|
|
62
62
|
object.attributes = params
|
63
|
-
options
|
63
|
+
options[:object] = object
|
64
|
+
options
|
64
65
|
end
|
65
66
|
|
66
67
|
def update(**options)
|
@@ -127,7 +128,7 @@ module SnFoil
|
|
127
128
|
def update_hooks(options)
|
128
129
|
options = before_update_save(options)
|
129
130
|
update_successful = options[:object].save
|
130
|
-
options
|
131
|
+
options[:object] = unwrap_object(options[:object])
|
131
132
|
options = if update_successful
|
132
133
|
after_update_save_success(options)
|
133
134
|
else
|
data/lib/sn_foil/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snfoil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew Howes
|
8
8
|
- Danny Murphy
|
9
|
-
|
9
|
+
- Cliff Campbell
|
10
|
+
autorequire:
|
10
11
|
bindir: bin
|
11
12
|
cert_chain: []
|
12
|
-
date: 2021-
|
13
|
+
date: 2021-09-19 00:00:00.000000000 Z
|
13
14
|
dependencies:
|
14
15
|
- !ruby/object:Gem::Dependency
|
15
16
|
name: activesupport
|
@@ -17,14 +18,14 @@ dependencies:
|
|
17
18
|
requirements:
|
18
19
|
- - ">="
|
19
20
|
- !ruby/object:Gem::Version
|
20
|
-
version: 5.2.
|
21
|
+
version: 5.2.6
|
21
22
|
type: :runtime
|
22
23
|
prerelease: false
|
23
24
|
version_requirements: !ruby/object:Gem::Requirement
|
24
25
|
requirements:
|
25
26
|
- - ">="
|
26
27
|
- !ruby/object:Gem::Version
|
27
|
-
version: 5.2.
|
28
|
+
version: 5.2.6
|
28
29
|
- !ruby/object:Gem::Dependency
|
29
30
|
name: logger
|
30
31
|
requirement: !ruby/object:Gem::Requirement
|
@@ -59,14 +60,14 @@ dependencies:
|
|
59
60
|
requirements:
|
60
61
|
- - "~>"
|
61
62
|
- !ruby/object:Gem::Version
|
62
|
-
version: '2.
|
63
|
+
version: '2.2'
|
63
64
|
type: :development
|
64
65
|
prerelease: false
|
65
66
|
version_requirements: !ruby/object:Gem::Requirement
|
66
67
|
requirements:
|
67
68
|
- - "~>"
|
68
69
|
- !ruby/object:Gem::Version
|
69
|
-
version: '2.
|
70
|
+
version: '2.2'
|
70
71
|
- !ruby/object:Gem::Dependency
|
71
72
|
name: dry-struct
|
72
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -87,14 +88,14 @@ dependencies:
|
|
87
88
|
requirements:
|
88
89
|
- - "~>"
|
89
90
|
- !ruby/object:Gem::Version
|
90
|
-
version: '3.
|
91
|
+
version: '3.9'
|
91
92
|
type: :development
|
92
93
|
prerelease: false
|
93
94
|
version_requirements: !ruby/object:Gem::Requirement
|
94
95
|
requirements:
|
95
96
|
- - "~>"
|
96
97
|
- !ruby/object:Gem::Version
|
97
|
-
version: '3.
|
98
|
+
version: '3.9'
|
98
99
|
- !ruby/object:Gem::Dependency
|
99
100
|
name: rake
|
100
101
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,32 +130,47 @@ dependencies:
|
|
129
130
|
requirements:
|
130
131
|
- - "~>"
|
131
132
|
- !ruby/object:Gem::Version
|
132
|
-
version: '1.
|
133
|
+
version: '1.18'
|
134
|
+
type: :development
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - "~>"
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '1.18'
|
141
|
+
- !ruby/object:Gem::Dependency
|
142
|
+
name: rubocop-performance
|
143
|
+
requirement: !ruby/object:Gem::Requirement
|
144
|
+
requirements:
|
145
|
+
- - "~>"
|
146
|
+
- !ruby/object:Gem::Version
|
147
|
+
version: '1.11'
|
133
148
|
type: :development
|
134
149
|
prerelease: false
|
135
150
|
version_requirements: !ruby/object:Gem::Requirement
|
136
151
|
requirements:
|
137
152
|
- - "~>"
|
138
153
|
- !ruby/object:Gem::Version
|
139
|
-
version: '1.
|
154
|
+
version: '1.11'
|
140
155
|
- !ruby/object:Gem::Dependency
|
141
156
|
name: rubocop-rspec
|
142
157
|
requirement: !ruby/object:Gem::Requirement
|
143
158
|
requirements:
|
144
159
|
- - "~>"
|
145
160
|
- !ruby/object:Gem::Version
|
146
|
-
version: '2.
|
161
|
+
version: '2.4'
|
147
162
|
type: :development
|
148
163
|
prerelease: false
|
149
164
|
version_requirements: !ruby/object:Gem::Requirement
|
150
165
|
requirements:
|
151
166
|
- - "~>"
|
152
167
|
- !ruby/object:Gem::Version
|
153
|
-
version: '2.
|
154
|
-
description:
|
168
|
+
version: '2.4'
|
169
|
+
description:
|
155
170
|
email:
|
156
171
|
- howeszy@gmail.com
|
157
172
|
- dmurph24@gmail.com
|
173
|
+
- cliffcampbell@hey.com
|
158
174
|
executables: []
|
159
175
|
extensions: []
|
160
176
|
extra_rdoc_files: []
|
@@ -182,7 +198,7 @@ homepage: https://github.com/limited-effort/snfoil
|
|
182
198
|
licenses:
|
183
199
|
- MIT
|
184
200
|
metadata: {}
|
185
|
-
post_install_message:
|
201
|
+
post_install_message:
|
186
202
|
rdoc_options: []
|
187
203
|
require_paths:
|
188
204
|
- lib
|
@@ -197,8 +213,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
213
|
- !ruby/object:Gem::Version
|
198
214
|
version: '0'
|
199
215
|
requirements: []
|
200
|
-
rubygems_version: 3.1.
|
201
|
-
signing_key:
|
216
|
+
rubygems_version: 3.1.6
|
217
|
+
signing_key:
|
202
218
|
specification_version: 4
|
203
219
|
summary: A boilerplate gem for providing basic contexts
|
204
220
|
test_files: []
|