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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d21f0199087d10df6e8b65aec2e759aaba09ae7435366b861f1f66a7e122f0e3
4
- data.tar.gz: 8180f9fe7de77979ef2e4e55464d9681ec44feb005e6c007dc17130f333ca902
3
+ metadata.gz: 4928d412e07ea8d2b871bbfafd71e430b6d3e9c31cb9e88779efcd567db0217c
4
+ data.tar.gz: d46e69bde8bcd3c5480d18773868d9c28f24e35ef2ed92f3e1e153f47ff655c5
5
5
  SHA512:
6
- metadata.gz: 89b34c08ac2b0a94962069e10040055800a85196f1b4d0156f943b425750f916c3359992710ee019cf61470965af782250f071aa83079fc82b5c1802ec23195d
7
- data.tar.gz: 71d2b7a606841a054d06b9268decb625722a801d73ee776c2dacdaecc1a6e8929269d1c1804e9fe173cd4af7aab9e2bbb7354e8a2474307e6440f801309b0347
6
+ metadata.gz: ad4e04abe56529ede7e5c1e911f1d123367b0329d350dba3387f233d97e25d04886ee361272a22222671980b89999370e1b4af72b7a859ee99dd4bdb8b1b4b17
7
+ data.tar.gz: 6ea04352aff4d71af5cb9c724289825f1be838217c4cd2517612ca4dc6e2f0cc1308efe87311d7ff3124d575d60628471f02ca71236053c55087bc340ce318c8
@@ -26,10 +26,6 @@ module SnFoil
26
26
  def attributes=(attributes)
27
27
  __getobj__.attributes = attributes
28
28
  end
29
-
30
- def is_a?(klass)
31
- __getobj__.instance_of?(klass)
32
- end
33
29
  end
34
30
  end
35
31
  end
@@ -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
@@ -35,7 +35,8 @@ module SnFoil
35
35
  end
36
36
 
37
37
  object.attributes = params
38
- options.merge! object: object
38
+ options[:object] = object
39
+ options
39
40
  end
40
41
 
41
42
  def build(**options)
@@ -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(*whitelisted_params)
19
+ def params(*permitted_params)
20
20
  @i_params ||= []
21
- @i_params |= whitelisted_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.merge!(object: unwrap_object(options[:object]))
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.merge! object: wrap_object(object || scope.resolve.find(id))
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.merge!(object: unwrap_object(options[:object]))
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.merge! object: wrap_object(object || scope.resolve.find(id))
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.merge! object: object
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.merge!(object: unwrap_object(options[:object]))
131
+ options[:object] = unwrap_object(options[:object])
131
132
  options = if update_successful
132
133
  after_update_save_success(options)
133
134
  else
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SnFoil
4
- VERSION = '0.8.1'
4
+ VERSION = '0.8.5'
5
5
  end
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.1
4
+ version: 0.8.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew Howes
8
8
  - Danny Murphy
9
- autorequire:
9
+ - Cliff Campbell
10
+ autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2021-06-01 00:00:00.000000000 Z
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.4.3
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.4.3
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.0'
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.0'
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.0'
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.0'
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.14'
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.14'
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.3'
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.3'
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.4
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: []