rspice 0.25.3 → 0.25.8.1

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: 407fd125e9e344eefe9dd675f158f196f91c36f6e6a55982f562f08c6da16392
4
- data.tar.gz: 47fef18b863497635e4c7811e803215e5bb1de1a7fabdfc6428927691fd12664
3
+ metadata.gz: caf3c7e9d4fab9843577499f315719108f3d38920b5aee4f25e1e2d1fc3c7144
4
+ data.tar.gz: a9af8e3bdd9e69317ff65ff98b59d3b363dca42f367833cd01d17f4997938407
5
5
  SHA512:
6
- metadata.gz: 477aa45faef7a99a65ed3f98838d9e270a71854fdab234356c65d406ec9cb9d61728b38eba8454617dededcc4ad7d213f8fa85323df6492c08b8d6abb1e93042
7
- data.tar.gz: 1e63929257f5b2354864710c7325118c98c8297547dfe8a88fc3f889ae3afd2e6f89b56eb5a80807f6b399b8ff6b061c3a27f5113006564fb3a7c1e9065c35df
6
+ metadata.gz: f77f5fb80a19085d3318dc6ed108a0853a1c50d3e04db6fd1ec311c5ff47f7c49247383920599eb6a13c48844b7147ec9be7208aa87e81f49bb232bb4edff7eb
7
+ data.tar.gz: 2ae42641c2d01f78999d9a8264168a8328f7d0f9f83febf85e16c49647391f877577e5f41ac94573b5893e6d4ed9cee4c74545f90574dd2f7b7b30d920a806ec
@@ -26,6 +26,8 @@ RSpec::Matchers.define :have_error_on_attribute do |attribute|
26
26
  @errors = (record.errors.details[attribute.to_sym] || []).pluck(:error).map(&:to_sym)
27
27
 
28
28
  expect(@errors).to include(@detail_key.to_sym)
29
+
30
+ expect { record.errors[attribute.to_sym] }.to_not raise_error
29
31
  end
30
32
 
31
33
  chain :with_detail_key do |detail_key|
@@ -34,7 +34,13 @@
34
34
  RSpec.shared_examples_for "a class pass method" do |method|
35
35
  subject do
36
36
  if accepts_block?
37
- call_class.public_send(method, *arguments, &block)
37
+ if options.present?
38
+ call_class.public_send(method, *arguments, **options, &block)
39
+ else
40
+ call_class.public_send(method, *arguments, &block)
41
+ end
42
+ elsif options.present?
43
+ call_class.public_send(method, *arguments, **options)
38
44
  else
39
45
  call_class.public_send(method, *arguments)
40
46
  end
@@ -47,13 +53,11 @@ RSpec.shared_examples_for "a class pass method" do |method|
47
53
  let(:argument_arity) { method_parameters.map(&:first).select { |type| type.in?(%i[req opt]) }.length }
48
54
  let(:option_keys) { method_parameters.select { |param| param.first.in?(%i[key keyreq]) }.map(&:last) }
49
55
  let(:accepts_block?) { method_parameters.any? { |param| param.first == :block } }
56
+ let(:keyrest?) { method_parameters.any? { |param| param.first == :keyrest } }
50
57
 
51
- let(:arguments) do
52
- Array.new(argument_arity) { double }.tap do |array|
53
- array << options if options.present?
54
- end
55
- end
56
- let(:options) { option_keys.each_with_object({}) { |key, hash| hash[key] = Faker::Lorem.word } }
58
+ let(:arguments) { Array.new(argument_arity) { double } }
59
+ let(:keyrest_keys) { keyrest? ? Faker::Lorem.unique.words.map(&:to_sym) : [] }
60
+ let(:options) { (option_keys + keyrest_keys).each_with_object({}) { |key, hash| hash[key] = Faker::Lorem.word } }
57
61
  let(:block) { -> {} }
58
62
  let(:instance) { instance_double(test_class) }
59
63
  let(:output) { double }
@@ -61,10 +65,26 @@ RSpec.shared_examples_for "a class pass method" do |method|
61
65
  before do
62
66
  allow(instance).to receive(method).and_return(output)
63
67
 
64
- if accepts_block?
65
- allow(test_class).to receive(:new).with(*arguments, &block).and_return(instance)
66
- elsif arguments.any?
67
- allow(test_class).to receive(:new).with(*arguments).and_return(instance)
68
+ if arguments.present?
69
+ if options.present?
70
+ if accepts_block?
71
+ allow(test_class).to receive(:new).with(*arguments, **options, &block).and_return(instance)
72
+ else
73
+ allow(test_class).to receive(:new).with(*arguments, **options).and_return(instance)
74
+ end
75
+ elsif accepts_block?
76
+ allow(test_class).to receive(:new).with(*arguments, &block).and_return(instance)
77
+ else
78
+ allow(test_class).to receive(:new).with(*arguments).and_return(instance)
79
+ end
80
+ elsif options.present?
81
+ if accepts_block?
82
+ allow(test_class).to receive(:new).with(**options, &block).and_return(instance)
83
+ else
84
+ allow(test_class).to receive(:new).with(**options).and_return(instance)
85
+ end
86
+ elsif accepts_block?
87
+ allow(test_class).to receive(:new).with(&block).and_return(instance)
68
88
  else
69
89
  allow(test_class).to receive(:new).with(no_args).and_return(instance)
70
90
  end
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Rspice
4
4
  # This constant is managed by spicerack
5
- VERSION = "0.25.3"
5
+ VERSION = "0.25.8.1"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspice
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.25.3
4
+ version: 0.25.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Garside
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2020-12-23 00:00:00.000000000 Z
14
+ date: 2021-04-13 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: rspec
@@ -92,7 +92,7 @@ metadata:
92
92
  homepage_uri: https://github.com/Freshly/spicerack/tree/master/rspice
93
93
  source_code_uri: https://github.com/Freshly/spicerack/tree/master/rspice
94
94
  changelog_uri: https://github.com/Freshly/spicerack/blob/master/rspice/CHANGELOG.md
95
- documentation_uri: https://www.rubydoc.info/gems/rspice/0.25.3
95
+ documentation_uri: https://www.rubydoc.info/gems/rspice/0.25.8.1
96
96
  post_install_message:
97
97
  rdoc_options: []
98
98
  require_paths:
@@ -108,7 +108,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
108
  - !ruby/object:Gem::Version
109
109
  version: '0'
110
110
  requirements: []
111
- rubygems_version: 3.1.4
111
+ rubygems_version: 3.1.6
112
112
  signing_key:
113
113
  specification_version: 4
114
114
  summary: An `RSpec` utility gem of custom matchers, shared contexts and examples