snfoil 0.8.1 → 0.8.5
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/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: []
|