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 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: []