rspice 0.25.2 → 0.25.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: 68aa888a46aa014f1a4aaefc219e42d054132845cc26fb92e220662a653774d7
4
- data.tar.gz: 2f9187cb36a3f6c00c9b8b0ffefc1eaa17d5fcc6addc97dfa6bae410b240f035
3
+ metadata.gz: 0770e7863e895e0ea47ab7ac60d6eb556125d85c8c5d8ccb949540c9e4a5e53c
4
+ data.tar.gz: ec375848191b3342ac7d2ec9a6904e06793d2fbfb639c099b8ecb3f1f464ccd3
5
5
  SHA512:
6
- metadata.gz: 84f87ed65020b2bc871b97c659bc71e9cd514d710c836428ca373113c352b52e6a8a296b56fa4968abafd96099670b32075bdb0030b589f0297db77a3a1cf879
7
- data.tar.gz: d9284ccb05adab1605cb4851cdd4a15f0a28b99002e28d2bfd0ae35eb28f94c0db908a03506f12b4ae7108695894c57df67acc93c77b2e3bbae2e234864fc8be
6
+ metadata.gz: 8c6d319d8c47208388c5440ced87209ab43c6c5b215341718e33de8fe22eca546ec515387693b2f829812501eac5591ae8e85f4decc93b408a13819cf30d7a71
7
+ data.tar.gz: adbc36d70eac23a3a3628dc2e3174a0aeddf9a17bd2dd55fd22532f6aacc91def3b0dad4644356c85feb2cddca48ec911a6c42c625a5d3a6be6084a98697bfbf
@@ -26,6 +26,7 @@ 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
+ expect(record.errors[attribute.to_sym]).to_not raise_error
29
30
  end
30
31
 
31
32
  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.2"
5
+ VERSION = "0.25.8"
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.2
4
+ version: 0.25.8
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-10-16 00:00:00.000000000 Z
14
+ date: 2021-04-12 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.2
95
+ documentation_uri: https://www.rubydoc.info/gems/rspice/0.25.8
96
96
  post_install_message:
97
97
  rdoc_options: []
98
98
  require_paths: