much-rails 0.2.3 → 0.2.8

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: f4834b7655c265c28bb9f46729491681daa8003dd99615c2074f27a010f22e10
4
- data.tar.gz: 70603cc1bd5717a2edf35ff23cf2fa50ae35dc494431e2fbc476388af8c3d6a1
3
+ metadata.gz: 4b16874b1abd3bada37a15e501101bf2b1f3b0f49949e939078a06fe5df861ee
4
+ data.tar.gz: abf58e64838b2a14a2a2b3d243f6fb601dbe93fb1537f00a9cfca12e09c2c16a
5
5
  SHA512:
6
- metadata.gz: d3e614697001a8f9dd5d09a78dcfa3c5e4f6fb458406a7af6c018d7a829687b74c1a98c673ef3e62ec8f7a28f85e4a59f4b3bd7c01ccb95b4ff0d661f569cb61
7
- data.tar.gz: dcd670e7ca04b1394a92a8a9a7a55b31fd825f5f99bf0282a18d4907e7f614536f30195756ceda6b4320a2fec0d073caf96ab5b74aa57428e4331a1c73381cd7
6
+ metadata.gz: 3a971f04f2f90b7c5adc8284d7fe7b6ff11a115d637183921c6bc2f12867e226f6ce741513068cf9418f6094778e9b2adf27e74fafaf11fcf3e621913271058f
7
+ data.tar.gz: c0ba8ef4a6242a9e0d1ccfe56d1d6b1a6aeec49f994e47e9d4c52553bc13f6311fe3f5e2a41ce7105c30b3d7bbac79f68399d6e2f75b5bbfbde85aad6d457b23
@@ -31,7 +31,7 @@ module MuchRails::Action
31
31
 
32
32
  add_config :much_rails_action
33
33
 
34
- attr_reader :params, :current_user, :request, :errors
34
+ attr_reader :params, :current_session, :request, :errors
35
35
  end
36
36
 
37
37
  mixin_class_methods do
@@ -107,17 +107,14 @@ module MuchRails::Action
107
107
 
108
108
  def default_action_template_name
109
109
  @default_action_template_name ||=
110
- to_s
111
- .remove(/\A#{MuchRails.config.action.namespace}/)
112
- .tableize
113
- .singularize
110
+ to_s.remove(/\A#{MuchRails.config.action.namespace}/).underscore
114
111
  end
115
112
  end
116
113
 
117
114
  mixin_instance_methods do
118
- def initialize(params: nil, current_user: nil, request: nil)
115
+ def initialize(params: nil, current_session: nil, request: nil)
119
116
  @params = params.to_h.with_indifferent_access
120
- @current_user = current_user
117
+ @current_session = current_session
121
118
  @request = request
122
119
  @errors = Hash.new{ |hash, key| hash[key] = [] }
123
120
  end
@@ -257,6 +254,10 @@ module MuchRails::Action
257
254
  template: template || default_action_template_name,
258
255
  }.merge(**kargs)
259
256
 
257
+ if view_model&.respond_to?(:much_rails_action=)
258
+ view_model.much_rails_action = self
259
+ end
260
+
260
261
  @much_rails_action_result =
261
262
  MuchRails::Action::RenderResult.new(view_model, *args, **result_kargs)
262
263
  halt
@@ -70,8 +70,8 @@ class MuchRails::Action::BaseRouter
70
70
  # url :users, "/users", "Users::Index"
71
71
  # }
72
72
  # AdminRouter.path_for(:users) # => "/admin/users"
73
- def path_for(name, *args)
74
- @url_set.path_for(name, *args)
73
+ def path_for(name, **kargs)
74
+ @url_set.path_for(name, **kargs)
75
75
  end
76
76
 
77
77
  # Example:
@@ -87,8 +87,8 @@ class MuchRails::Action::BaseRouter
87
87
  # url :users, "/users", "Users::Index"
88
88
  # }
89
89
  # AdminRouter.url_for(:users) # => "http://example.org/admin/users"
90
- def url_for(name, *args)
91
- @url_set.url_for(name, *args)
90
+ def url_for(name, **kargs)
91
+ @url_set.url_for(name, **kargs)
92
92
  end
93
93
 
94
94
  # Example:
@@ -149,7 +149,7 @@ class MuchRails::Action::BaseRouter
149
149
  # get "/new", "Root::New"
150
150
  # post "/", "Root::Create"
151
151
  # get "/edit", "Root::Edit"
152
- # put "/", "Root::Update"
152
+ # put "/", "Root::Upsert"
153
153
  # patch "/", "Root::Update"
154
154
  # get "/remove", "Root::Remove"
155
155
  # delete "/", "Root::Destroy"
@@ -301,6 +301,14 @@ class MuchRails::Action::BaseRouter
301
301
  def constraints_lambda
302
302
  request_type.constraints_lambda
303
303
  end
304
+
305
+ def class_constant
306
+ @class_constant ||= class_name.constantize
307
+ end
308
+
309
+ def format
310
+ class_constant.format
311
+ end
304
312
  end
305
313
 
306
314
  class URLSet
@@ -350,12 +358,12 @@ class MuchRails::Action::BaseRouter
350
358
  end
351
359
  end
352
360
 
353
- def path_for(name, *args)
354
- fetch(name).path_for(*args)
361
+ def path_for(name, **kargs)
362
+ fetch(name).path_for(**kargs)
355
363
  end
356
364
 
357
- def url_for(name, *args)
358
- fetch(name).url_for(*args)
365
+ def url_for(name, **kargs)
366
+ fetch(name).url_for(**kargs)
359
367
  end
360
368
  end
361
369
 
@@ -396,11 +404,11 @@ class MuchRails::Action::BaseRouter
396
404
  self.class.url_path(@router, @url_path)
397
405
  end
398
406
 
399
- def path_for(*args)
407
+ def path_for(**kargs)
400
408
  raise NotImplementedError
401
409
  end
402
410
 
403
- def url_for(*args)
411
+ def url_for(**kargs)
404
412
  raise NotImplementedError
405
413
  end
406
414
 
@@ -460,6 +468,16 @@ class MuchRails::Action::BaseRouter
460
468
  !@default_action_class_name.nil?
461
469
  end
462
470
 
471
+ def default_action_class_constant
472
+ return unless has_default_action_class_name?
473
+
474
+ @default_action_class_constant ||= default_action_class_name.constantize
475
+ end
476
+
477
+ def default_action_format
478
+ default_action_class_constant&.format
479
+ end
480
+
463
481
  def ==(other)
464
482
  return super unless other.is_a?(self.class)
465
483
 
@@ -32,7 +32,7 @@ module MuchRails::Action::Controller
32
32
  result =
33
33
  much_rails_action_class.call(
34
34
  params: much_rails_action_params,
35
- current_user: current_user,
35
+ current_session: current_session,
36
36
  request: request,
37
37
  )
38
38
  instance_exec(result, &result.execute_block)
@@ -52,16 +52,19 @@ class MuchRails::Action::Router < MuchRails::Action::BaseRouter
52
52
  draw_url_to = "#{controller_name}##{CONTROLLER_NOT_FOUND_METHOD_NAME}"
53
53
  draw_route_to = "#{controller_name}##{CONTROLLER_CALL_ACTION_METHOD_NAME}"
54
54
 
55
+ definition_names = Set.new
56
+
55
57
  definitions.each do |definition|
56
58
  definition.request_type_actions.each do |request_type_action|
57
59
  application_routes_draw_scope.public_send(
58
60
  definition.http_method,
59
61
  definition.path,
60
62
  to: draw_route_to,
61
- as: definition.name,
63
+ as: (definition.name if definition_names.add?(definition.name)),
62
64
  defaults:
63
65
  definition.default_params.merge({
64
66
  ACTION_CLASS_PARAM_NAME => request_type_action.class_name,
67
+ "format" => request_type_action.format,
65
68
  }),
66
69
  constraints: request_type_action.constraints_lambda,
67
70
  )
@@ -73,10 +76,11 @@ class MuchRails::Action::Router < MuchRails::Action::BaseRouter
73
76
  definition.http_method,
74
77
  definition.path,
75
78
  to: draw_route_to,
76
- as: definition.name,
79
+ as: (definition.name if definition_names.add?(definition.name)),
77
80
  defaults:
78
81
  definition.default_params.merge({
79
82
  ACTION_CLASS_PARAM_NAME => definition.default_action_class_name,
83
+ "format" => definition.default_action_format,
80
84
  }),
81
85
  )
82
86
  end
@@ -90,12 +94,18 @@ class MuchRails::Action::Router < MuchRails::Action::BaseRouter
90
94
  alias_method :draw, :apply_to
91
95
 
92
96
  class URL < MuchRails::Action::BaseRouter::BaseURL
93
- def path_for(*args)
94
- MuchRails::RailsRoutes.instance.public_send("#{name}_path", *args)
97
+ def path_for(**kargs)
98
+ MuchRails::RailsRoutes.instance.public_send(
99
+ "#{name}_path",
100
+ **kargs.symbolize_keys.except(:format),
101
+ )
95
102
  end
96
103
 
97
- def url_for(*args)
98
- MuchRails::RailsRoutes.instance.public_send("#{name}_url", *args)
104
+ def url_for(**kargs)
105
+ MuchRails::RailsRoutes.instance.public_send(
106
+ "#{name}_url",
107
+ **kargs.symbolize_keys.except(:format),
108
+ )
99
109
  end
100
110
  end
101
111
  end
@@ -7,7 +7,7 @@ module MuchRails::InputValue
7
7
  def self.strip(value)
8
8
  return if value.blank?
9
9
 
10
- value.to_s.strip
10
+ value.to_s.strip.presence
11
11
  end
12
12
 
13
13
  def self.strip_all(values)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module MuchRails
4
- VERSION = "0.2.3"
4
+ VERSION = "0.2.8"
5
5
  end
data/much-rails.gemspec CHANGED
@@ -37,6 +37,6 @@ Gem::Specification.new do |gem|
37
37
  gem.add_dependency("much-mixin", ["~> 0.2.4"])
38
38
  gem.add_dependency("much-not-given", ["~> 0.1.2"])
39
39
  gem.add_dependency("much-result", ["~> 0.1.3"])
40
- gem.add_dependency("much-slug", ["~> 0.1.1"])
40
+ gem.add_dependency("much-slug", ["~> 0.1.2"])
41
41
  gem.add_dependency("oj", ["~> 3.10"])
42
42
  end
@@ -7,5 +7,7 @@ module Actions; end
7
7
  module Actions::Show
8
8
  include MuchRails::Action
9
9
 
10
+ format :html
11
+
10
12
  params_root :nested
11
13
  end
@@ -80,13 +80,13 @@ class MuchRails::Action::BaseRouter
80
80
  end
81
81
 
82
82
  should "build path/URL strings for named URLs" do
83
- path_string = subject.path_for(:url1, "TEST PATH ARGS")
83
+ path_string = subject.path_for(:url1, test: "args")
84
84
  assert_that(path_string).equals("TEST PATH STRING")
85
- assert_that(@url_set_path_for_call.args).equals([:url1, "TEST PATH ARGS"])
85
+ assert_that(@url_set_path_for_call.args).equals([:url1, { test: "args" }])
86
86
 
87
- url_string = subject.url_for(:url1, "TEST URL ARGS")
87
+ url_string = subject.url_for(:url1, test: "args")
88
88
  assert_that(url_string).equals("TEST URL STRING")
89
- assert_that(@url_set_url_for_call.args).equals([:url1, "TEST URL ARGS"])
89
+ assert_that(@url_set_url_for_call.args).equals([:url1, { test: "args" }])
90
90
  end
91
91
 
92
92
  should "define request types" do
@@ -296,20 +296,30 @@ class MuchRails::Action::BaseRouter
296
296
  desc "when init"
297
297
  subject{ request_type_action_class.new(request_type1, action_class_name1) }
298
298
 
299
+ setup do
300
+ Assert.stub(action_class_name1, :constantize){ action_class1 }
301
+ end
302
+
299
303
  let(:name1){ Factory.symbol }
300
304
  let(:constraints_lambda1){ ->(request){} }
301
305
  let(:request_type1) do
302
306
  unit_class::RequestType.new(name1, constraints_lambda1)
303
307
  end
304
308
  let(:action_class_name1){ Factory.string }
309
+ let(:action_class1) do
310
+ Struct.new(:format).new([:html, :any].sample)
311
+ end
305
312
 
306
313
  should have_imeths :request_type, :class_name, :constraints_lambda
314
+ should have_imeths :class_constant, :format
307
315
 
308
316
  should "know its attributes" do
309
317
  assert_that(subject.request_type).equals(request_type1)
310
318
  assert_that(subject.class_name).equals(action_class_name1)
311
319
  assert_that(subject.constraints_lambda)
312
320
  .equals(request_type1.constraints_lambda)
321
+ assert_that(subject.class_constant).equals(action_class1)
322
+ assert_that(subject.format).equals(subject.class_constant.format)
313
323
  end
314
324
  end
315
325
 
@@ -380,13 +390,13 @@ class MuchRails::Action::BaseRouter
380
390
 
381
391
  subject.add(:url1, Factory.url)
382
392
 
383
- path_string = subject.path_for(:url1, "TEST PATH ARGS")
393
+ path_string = subject.path_for(:url1, test: "args")
384
394
  assert_that(path_string).equals("TEST PATH STRING")
385
- assert_that(@url_path_for_call.args).equals(["TEST PATH ARGS"])
395
+ assert_that(@url_path_for_call.args).equals([{ test: "args" }])
386
396
 
387
- url_string = subject.url_for(:url1, "TEST URL ARGS")
397
+ url_string = subject.url_for(:url1, test: "args")
388
398
  assert_that(url_string).equals("TEST URL STRING")
389
- assert_that(@url_url_for_call.args).equals(["TEST URL ARGS"])
399
+ assert_that(@url_url_for_call.args).equals([{ test: "args" }])
390
400
  end
391
401
  end
392
402
 
@@ -450,8 +460,8 @@ class MuchRails::Action::BaseRouter
450
460
  assert_that(subject.path)
451
461
  .equals(base_url_class.url_path(router1, url_path1))
452
462
 
453
- assert_that{ subject.path_for("TEST ARGS") }.raises(NotImplementedError)
454
- assert_that{ subject.url_for("TEST ARGS") }.raises(NotImplementedError)
463
+ assert_that{ subject.path_for(test: "args") }.raises(NotImplementedError)
464
+ assert_that{ subject.url_for(test: "args") }.raises(NotImplementedError)
455
465
  end
456
466
  end
457
467
 
@@ -506,6 +516,15 @@ class MuchRails::Action::BaseRouter
506
516
  )
507
517
  end
508
518
 
519
+ setup do
520
+ Assert.stub(default_action_class_name1, :constantize) do
521
+ default_action_class1
522
+ end
523
+ end
524
+
525
+ let(:default_action_class1) do
526
+ Struct.new(:format).new([:html, :any].sample)
527
+ end
509
528
  let(:default_params1) do
510
529
  { Factory.string => Factory.string }
511
530
  end
@@ -514,6 +533,7 @@ class MuchRails::Action::BaseRouter
514
533
  should have_readers :default_action_class_name, :request_type_actions
515
534
  should have_readers :called_from
516
535
  should have_imeths :path, :name, :has_default_action_class_name?
536
+ should have_imeths :default_action_class_constant, :default_action_format
517
537
 
518
538
  should "know its attributes" do
519
539
  assert_that(subject.http_method).equals(http_method1)
@@ -525,6 +545,10 @@ class MuchRails::Action::BaseRouter
525
545
  assert_that(subject.called_from).equals(caller1)
526
546
  assert_that(subject.path).equals(url_path1)
527
547
  assert_that(subject.name).equals(url_name1)
548
+ assert_that(subject.default_action_class_constant)
549
+ .equals(default_action_class1)
550
+ assert_that(subject.default_action_format)
551
+ .equals(subject.default_action_class_constant.format)
528
552
  end
529
553
  end
530
554
  end
@@ -35,6 +35,10 @@ module MuchRails::Action::Controller
35
35
  desc "when init"
36
36
  subject{ receiver_class.new(params1) }
37
37
 
38
+ setup do
39
+ Assert.stub(::Actions::Show, :format){ nil }
40
+ end
41
+
38
42
  let(:params1) do
39
43
  {
40
44
  MuchRails::Action::Router::ACTION_CLASS_PARAM_NAME => "Actions::Show",
@@ -75,10 +79,9 @@ module MuchRails::Action::Controller
75
79
 
76
80
  assert_that(subject.much_rails_action_class).equals(Actions::Show)
77
81
 
78
- Actions::Show.format(:html)
82
+ Assert.stub(::Actions::Show, :format){ :html }
79
83
  receiver = receiver_class.new(params1)
80
84
  assert_that(receiver.much_rails_action_class_format).equals(:html)
81
- Actions::Show.format(nil)
82
85
  end
83
86
  end
84
87
 
@@ -104,7 +104,10 @@ class MuchRails::Action::Router
104
104
  "#{subject.controller_name}"\
105
105
  "##{unit_class::CONTROLLER_CALL_ACTION_METHOD_NAME}"
106
106
  expected_default_defaults =
107
- { unit_class::ACTION_CLASS_PARAM_NAME => default_class_name }
107
+ {
108
+ unit_class::ACTION_CLASS_PARAM_NAME => default_class_name,
109
+ "format" => :html,
110
+ }
108
111
 
109
112
  assert_that(application_routes.get_calls.size).equals(3)
110
113
  assert_that(application_routes.get_calls[0].pargs).equals([url_path])
@@ -113,14 +116,17 @@ class MuchRails::Action::Router
113
116
  to: expected_draw_route_to,
114
117
  as: url_name,
115
118
  defaults:
116
- { unit_class::ACTION_CLASS_PARAM_NAME => request_type_class_name },
119
+ {
120
+ unit_class::ACTION_CLASS_PARAM_NAME => request_type_class_name,
121
+ "format" => :html,
122
+ },
117
123
  constraints: request_type_proc,
118
124
  )
119
125
  assert_that(application_routes.get_calls[1].pargs).equals([url_path])
120
126
  assert_that(application_routes.get_calls[1].kargs)
121
127
  .equals(
122
128
  to: expected_draw_route_to,
123
- as: url_name,
129
+ as: nil,
124
130
  defaults: expected_default_defaults,
125
131
  )
126
132
  assert_that(application_routes.get_calls[2].pargs).equals([url2_path])
@@ -135,7 +141,7 @@ class MuchRails::Action::Router
135
141
  assert_that(application_routes.post_calls.last.kargs)
136
142
  .equals(
137
143
  to: expected_draw_route_to,
138
- as: url_name,
144
+ as: nil,
139
145
  defaults: expected_default_defaults,
140
146
  )
141
147
 
@@ -153,7 +159,7 @@ class MuchRails::Action::Router
153
159
  assert_that(application_routes.patch_calls.last.kargs)
154
160
  .equals(
155
161
  to: expected_draw_route_to,
156
- as: url_name,
162
+ as: nil,
157
163
  defaults: expected_default_defaults,
158
164
  )
159
165
 
@@ -162,7 +168,7 @@ class MuchRails::Action::Router
162
168
  assert_that(application_routes.delete_calls.last.kargs)
163
169
  .equals(
164
170
  to: expected_draw_route_to,
165
- as: url_name,
171
+ as: nil,
166
172
  defaults: expected_default_defaults,
167
173
  )
168
174
  end
@@ -206,15 +212,15 @@ class MuchRails::Action::Router
206
212
  should have_imeths :path_for, :url_for
207
213
 
208
214
  should "know its attributes" do
209
- path_string = subject.path_for("TEST PATH ARGS")
215
+ path_string = subject.path_for(test: "args", format: "html")
210
216
  assert_that(path_string).equals("TEST PATH OR URL STRING")
211
217
  assert_that(@rails_routes_method_missing_call.args)
212
- .equals(["#{url_name1}_path".to_sym, "TEST PATH ARGS"])
218
+ .equals(["#{url_name1}_path".to_sym, { test: "args" }])
213
219
 
214
- url_string = subject.url_for("TEST URL ARGS")
220
+ url_string = subject.url_for(test: "args", format: "xml")
215
221
  assert_that(url_string).equals("TEST PATH OR URL STRING")
216
222
  assert_that(@rails_routes_method_missing_call.args)
217
- .equals(["#{url_name1}_url".to_sym, "TEST URL ARGS"])
223
+ .equals(["#{url_name1}_url".to_sym, { test: "args" }])
218
224
  end
219
225
  end
220
226
 
@@ -167,7 +167,7 @@ module MuchRails::Action
167
167
  assert_that(subject.default_action_template_name)
168
168
  .equals(
169
169
  "some/namespace/for/"\
170
- "#{MuchRails.config.action.namespace.tableize.singularize}"\
170
+ "#{MuchRails.config.action.namespace.underscore}"\
171
171
  "thing/show",
172
172
  )
173
173
  end
@@ -178,7 +178,7 @@ module MuchRails::Action
178
178
  subject do
179
179
  receiver_class.new(
180
180
  params: params1,
181
- current_user: current_user1,
181
+ current_session: current_session1,
182
182
  request: request1,
183
183
  )
184
184
  end
@@ -234,15 +234,15 @@ module MuchRails::Action
234
234
  active: "true",
235
235
  }
236
236
  end
237
- let(:current_user1){ "CURRENT USER 1" }
237
+ let(:current_session1){ "CURRENT SESSION 1" }
238
238
  let(:request1){ "REQUEST 1" }
239
239
 
240
- should have_readers :params, :current_user, :request, :errors
240
+ should have_readers :params, :current_session, :request, :errors
241
241
  should have_imeths :on_call, :valid_action?, :successful_action?
242
242
 
243
243
  should "know its attributes" do
244
244
  assert_that(subject.params).equals(params1.with_indifferent_access)
245
- assert_that(subject.current_user).equals(current_user1)
245
+ assert_that(subject.current_session).equals(current_session1)
246
246
  assert_that(subject.request).equals(request1)
247
247
  end
248
248
 
@@ -318,6 +318,7 @@ module MuchRails::Action
318
318
  layout: false,
319
319
  )
320
320
 
321
+ view_model = Object.new
321
322
  receiver_class.on_call do
322
323
  render(view_model, "some/view/template", layout: false)
323
324
  end
@@ -330,18 +331,29 @@ module MuchRails::Action
330
331
  layout: false,
331
332
  )
332
333
 
334
+ view_model =
335
+ Class
336
+ .new{
337
+ def much_rails_action
338
+ "NOT A MUCH RAILS ACTION"
339
+ end
340
+ }
341
+ .new
333
342
  receiver_class.on_call do
334
343
  render(view_model, "some/view/template", template: "other/template")
335
344
  end
336
345
  action = receiver_class.new(params: params1)
337
346
  result = action.call
338
347
  assert_that(result.render_view_model).is(view_model)
348
+ assert_that(result.render_view_model.much_rails_action).is_not(action)
339
349
  assert_that(result.render_kargs).equals(template: "other/template")
340
350
 
351
+ view_model = Struct.new(:much_rails_action).new(nil)
341
352
  receiver_class.on_call{ render(view_model, template: "other/template") }
342
353
  action = receiver_class.new(params: params1)
343
354
  result = action.call
344
355
  assert_that(result.render_view_model).is(view_model)
356
+ assert_that(result.render_view_model.much_rails_action).is(action)
345
357
  assert_that(result.render_kargs).equals(template: "other/template")
346
358
  end
347
359
 
@@ -61,7 +61,7 @@ module MuchRails::ChangeAction
61
61
  subject do
62
62
  receiver_class.new(
63
63
  params: {},
64
- current_user: nil,
64
+ current_session: nil,
65
65
  request: nil,
66
66
  )
67
67
  end
@@ -87,7 +87,7 @@ module MuchRails::ChangeAction
87
87
  subject do
88
88
  receiver_class.new(
89
89
  params: {},
90
- current_user: nil,
90
+ current_session: nil,
91
91
  request: nil,
92
92
  )
93
93
  end
@@ -121,7 +121,7 @@ module MuchRails::ChangeAction
121
121
  subject do
122
122
  receiver_class.new(
123
123
  params: {},
124
- current_user: nil,
124
+ current_session: nil,
125
125
  request: nil,
126
126
  )
127
127
  end
@@ -152,7 +152,7 @@ module MuchRails::ChangeAction
152
152
  subject do
153
153
  receiver_class.new(
154
154
  params: {},
155
- current_user: nil,
155
+ current_session: nil,
156
156
  request: nil,
157
157
  )
158
158
  end
@@ -181,7 +181,7 @@ module MuchRails::ChangeAction
181
181
  subject do
182
182
  receiver_class.new(
183
183
  params: {},
184
- current_user: nil,
184
+ current_session: nil,
185
185
  request: nil,
186
186
  )
187
187
  end
@@ -208,7 +208,7 @@ module MuchRails::ChangeAction
208
208
  subject do
209
209
  receiver_class.new(
210
210
  params: {},
211
- current_user: nil,
211
+ current_session: nil,
212
212
  request: nil,
213
213
  )
214
214
  end
@@ -235,7 +235,7 @@ module MuchRails::ChangeAction
235
235
  subject do
236
236
  receiver_class.new(
237
237
  params: {},
238
- current_user: nil,
238
+ current_session: nil,
239
239
  request: nil,
240
240
  )
241
241
  end
@@ -53,7 +53,7 @@ module MuchRails::DestroyAction
53
53
  subject do
54
54
  receiver_class.new(
55
55
  params: {},
56
- current_user: nil,
56
+ current_session: nil,
57
57
  request: nil,
58
58
  )
59
59
  end
@@ -9,12 +9,21 @@ module MuchRails::InputValue
9
9
  subject{ unit_class }
10
10
 
11
11
  let(:unit_class){ MuchRails::InputValue }
12
+ let(:non_blank_but_empty_to_s_object) do
13
+ Class
14
+ .new{
15
+ def to_s
16
+ ["", " "].sample
17
+ end
18
+ }
19
+ .new
20
+ end
12
21
 
13
22
  should have_imeths :strip, :strip_all
14
23
 
15
24
  should "know its attributes" do
16
25
  # strip
17
- input_value = [nil, "", " "].sample
26
+ input_value = [nil, "", " ", non_blank_but_empty_to_s_object].sample
18
27
  assert_that(subject.strip(input_value)).is_nil
19
28
 
20
29
  input_value = [" VALUE ", "\r VALUE\n"].sample
@@ -53,7 +53,7 @@ module MuchRails::SaveAction
53
53
  subject do
54
54
  receiver_class.new(
55
55
  params: {},
56
- current_user: nil,
56
+ current_session: nil,
57
57
  request: nil,
58
58
  )
59
59
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: much-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.3
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kelly Redding
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-02-08 00:00:00.000000000 Z
12
+ date: 2021-04-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: much-style-guide
@@ -217,14 +217,14 @@ dependencies:
217
217
  requirements:
218
218
  - - "~>"
219
219
  - !ruby/object:Gem::Version
220
- version: 0.1.1
220
+ version: 0.1.2
221
221
  type: :runtime
222
222
  prerelease: false
223
223
  version_requirements: !ruby/object:Gem::Requirement
224
224
  requirements:
225
225
  - - "~>"
226
226
  - !ruby/object:Gem::Version
227
- version: 0.1.1
227
+ version: 0.1.2
228
228
  - !ruby/object:Gem::Dependency
229
229
  name: oj
230
230
  requirement: !ruby/object:Gem::Requirement