mocktail 0.0.2 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +28 -0
  3. data/Gemfile.lock +2 -2
  4. data/README.md +178 -18
  5. data/bin/console +21 -1
  6. data/lib/mocktail/explains_thing.rb +132 -0
  7. data/lib/mocktail/handles_dry_call/fulfills_stubbing/describes_unsatisfied_stubbing.rb +13 -0
  8. data/lib/mocktail/handles_dry_call/fulfills_stubbing.rb +4 -0
  9. data/lib/mocktail/handles_dry_call/validates_arguments.rb +2 -23
  10. data/lib/mocktail/imitates_type/makes_double/declares_dry_class.rb +29 -23
  11. data/lib/mocktail/imitates_type/makes_double/gathers_fakeable_instance_methods.rb +21 -0
  12. data/lib/mocktail/imitates_type/makes_double.rb +8 -4
  13. data/lib/mocktail/raises_neato_no_method_error.rb +81 -0
  14. data/lib/mocktail/share/creates_identifier.rb +28 -0
  15. data/lib/mocktail/{verifies_call/raises_verification_error → share}/stringifies_call.rb +16 -7
  16. data/lib/mocktail/share/stringifies_method_name.rb +11 -0
  17. data/lib/mocktail/simulates_argument_error/cleans_backtrace.rb +17 -0
  18. data/lib/mocktail/simulates_argument_error/reconciles_args_with_params.rb +20 -0
  19. data/lib/mocktail/simulates_argument_error/recreates_message.rb +29 -0
  20. data/lib/mocktail/simulates_argument_error/transforms_params.rb +32 -0
  21. data/lib/mocktail/simulates_argument_error.rb +30 -0
  22. data/lib/mocktail/value/cabinet.rb +12 -0
  23. data/lib/mocktail/value/double.rb +7 -8
  24. data/lib/mocktail/value/double_data.rb +10 -0
  25. data/lib/mocktail/value/explanation.rb +26 -0
  26. data/lib/mocktail/value/signature.rb +36 -0
  27. data/lib/mocktail/value/stub_returned_nil.rb +26 -0
  28. data/lib/mocktail/value/top_shelf.rb +24 -25
  29. data/lib/mocktail/value/type_replacement_data.rb +13 -0
  30. data/lib/mocktail/value/unsatisfied_stubbing.rb +8 -0
  31. data/lib/mocktail/value.rb +6 -0
  32. data/lib/mocktail/verifies_call/raises_verification_error.rb +4 -2
  33. data/lib/mocktail/version.rb +1 -1
  34. data/lib/mocktail.rb +9 -0
  35. data/mocktail.gemspec +1 -1
  36. metadata +22 -6
  37. data/lib/mocktail/share/simulates_argument_error.rb +0 -28
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mocktail
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Searls
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-02 00:00:00.000000000 Z
11
+ date: 2021-11-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -31,8 +31,10 @@ files:
31
31
  - lib/mocktail.rb
32
32
  - lib/mocktail/dsl.rb
33
33
  - lib/mocktail/errors.rb
34
+ - lib/mocktail/explains_thing.rb
34
35
  - lib/mocktail/handles_dry_call.rb
35
36
  - lib/mocktail/handles_dry_call/fulfills_stubbing.rb
37
+ - lib/mocktail/handles_dry_call/fulfills_stubbing/describes_unsatisfied_stubbing.rb
36
38
  - lib/mocktail/handles_dry_call/fulfills_stubbing/finds_satisfaction.rb
37
39
  - lib/mocktail/handles_dry_call/logs_call.rb
38
40
  - lib/mocktail/handles_dry_call/validates_arguments.rb
@@ -41,6 +43,7 @@ files:
41
43
  - lib/mocktail/imitates_type/ensures_imitation_support.rb
42
44
  - lib/mocktail/imitates_type/makes_double.rb
43
45
  - lib/mocktail/imitates_type/makes_double/declares_dry_class.rb
46
+ - lib/mocktail/imitates_type/makes_double/gathers_fakeable_instance_methods.rb
44
47
  - lib/mocktail/initializes_mocktail.rb
45
48
  - lib/mocktail/matcher_presentation.rb
46
49
  - lib/mocktail/matchers.rb
@@ -53,6 +56,7 @@ files:
53
56
  - lib/mocktail/matchers/not.rb
54
57
  - lib/mocktail/matchers/numeric.rb
55
58
  - lib/mocktail/matchers/that.rb
59
+ - lib/mocktail/raises_neato_no_method_error.rb
56
60
  - lib/mocktail/records_demonstration.rb
57
61
  - lib/mocktail/registers_matcher.rb
58
62
  - lib/mocktail/registers_stubbing.rb
@@ -61,22 +65,34 @@ files:
61
65
  - lib/mocktail/replaces_type/redefines_new.rb
62
66
  - lib/mocktail/replaces_type/redefines_singleton_methods.rb
63
67
  - lib/mocktail/resets_state.rb
68
+ - lib/mocktail/share/creates_identifier.rb
64
69
  - lib/mocktail/share/determines_matching_calls.rb
65
- - lib/mocktail/share/simulates_argument_error.rb
70
+ - lib/mocktail/share/stringifies_call.rb
71
+ - lib/mocktail/share/stringifies_method_name.rb
72
+ - lib/mocktail/simulates_argument_error.rb
73
+ - lib/mocktail/simulates_argument_error/cleans_backtrace.rb
74
+ - lib/mocktail/simulates_argument_error/reconciles_args_with_params.rb
75
+ - lib/mocktail/simulates_argument_error/recreates_message.rb
76
+ - lib/mocktail/simulates_argument_error/transforms_params.rb
66
77
  - lib/mocktail/value.rb
67
78
  - lib/mocktail/value/cabinet.rb
68
79
  - lib/mocktail/value/call.rb
69
80
  - lib/mocktail/value/demo_config.rb
70
81
  - lib/mocktail/value/double.rb
82
+ - lib/mocktail/value/double_data.rb
83
+ - lib/mocktail/value/explanation.rb
71
84
  - lib/mocktail/value/matcher_registry.rb
85
+ - lib/mocktail/value/signature.rb
86
+ - lib/mocktail/value/stub_returned_nil.rb
72
87
  - lib/mocktail/value/stubbing.rb
73
88
  - lib/mocktail/value/top_shelf.rb
74
89
  - lib/mocktail/value/type_replacement.rb
90
+ - lib/mocktail/value/type_replacement_data.rb
91
+ - lib/mocktail/value/unsatisfied_stubbing.rb
75
92
  - lib/mocktail/verifies_call.rb
76
93
  - lib/mocktail/verifies_call/finds_verifiable_calls.rb
77
94
  - lib/mocktail/verifies_call/raises_verification_error.rb
78
95
  - lib/mocktail/verifies_call/raises_verification_error/gathers_calls_of_method.rb
79
- - lib/mocktail/verifies_call/raises_verification_error/stringifies_call.rb
80
96
  - lib/mocktail/version.rb
81
97
  - mocktail.gemspec
82
98
  homepage: https://github.com/testdouble/mocktail
@@ -100,8 +116,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
100
116
  - !ruby/object:Gem::Version
101
117
  version: '0'
102
118
  requirements: []
103
- rubygems_version: 3.2.15
119
+ rubygems_version: 3.2.22
104
120
  signing_key:
105
121
  specification_version: 4
106
- summary: your objects, less potency
122
+ summary: Take your objects, and make them a double
107
123
  test_files: []
@@ -1,28 +0,0 @@
1
- module Mocktail
2
- class SimulatesArgumentError
3
- def simulate(arg_params, args, kwarg_params, kwargs)
4
- req_args = arg_params.count { |type, _| type == :req }
5
- opt_args = arg_params.count { |type, _| type == :opt }
6
- rest_args = arg_params.any? { |type, _| type == :rest }
7
- req_kwargs = kwarg_params.select { |type, _| type == :keyreq }
8
-
9
- allowed_args = req_args + opt_args
10
- msg = if args.size < req_args || (!rest_args && args.size > allowed_args)
11
- expected_desc = if rest_args
12
- "#{req_args}+"
13
- elsif allowed_args != req_args
14
- "#{req_args}..#{allowed_args}"
15
- else
16
- req_args.to_s
17
- end
18
-
19
- "wrong number of arguments (given #{args.size}, expected #{expected_desc}#{"; required keyword#{"s" if req_kwargs.size > 1}: #{req_kwargs.map { |_, name| name }.join(", ")}" unless req_kwargs.empty?})"
20
-
21
- elsif !(missing_kwargs = req_kwargs.reject { |_, name| kwargs.key?(name) }).empty?
22
- "missing keyword#{"s" if missing_kwargs.size > 1}: #{missing_kwargs.map { |_, name| name.inspect }.join(", ")}"
23
- end
24
-
25
- ArgumentError.new(msg)
26
- end
27
- end
28
- end