mocktail 0.0.2 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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