rspec-sleeping_king_studios 2.2.0.rc.1 → 2.2.0.rc.2
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35c3429a5963ce2ef369603423096f476b4387b2
|
4
|
+
data.tar.gz: f5437ed959abeb0c55616891bd13b7d229e963f8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1baedcdb400230782b88b660fa77dc946f3843dc5831501263358b99c681b3108121e36f48fc6237ebb17a02a4da4218caab6f1b1ffcae105e81a73ae032604c
|
7
|
+
data.tar.gz: a2a15b5b5afb836fad2c5c5838371aa7ef5590f93a24ec1ce900553f56561c3892229d8ab7a657cb1519853d0da700fc146714dbf338efd6cf5130cc2a7209e5
|
data/DEVELOPMENT.md
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
|
5
5
|
### Features
|
6
6
|
|
7
|
+
- Alias `have_constant` as `define_constant`.
|
7
8
|
- Implement RespondToMatcher#with_at_least(N).arguments, equivalent to with(N).arguments.and_unlimited_arguments.
|
8
9
|
- Revisit failure messages for #respond_to, #be_constructible - see #received/#have_received for example?
|
9
10
|
- Enhance RSpec matcher examples to display the #failure_message on a failed "should pass/fail with" example.
|
@@ -16,6 +17,8 @@
|
|
16
17
|
### Features
|
17
18
|
|
18
19
|
- Add spy+matcher for expect(my_object, :my_method).to have_changed ?
|
20
|
+
- Add 'should have class reader/writer/property' shared examples.
|
21
|
+
- Add 'should have private reader/writer/property' shared examples.
|
19
22
|
|
20
23
|
### Maintenance
|
21
24
|
|
@@ -28,6 +31,14 @@
|
|
28
31
|
|
29
32
|
## Icebox
|
30
33
|
|
34
|
+
- Implement Matchers::define_negated_matcher.
|
35
|
+
- Implement negated compound matchers, e.g. expect().to match().and_not other_match()
|
36
|
+
- Alias as "but_not"?
|
37
|
+
- Implement benchmarking specs:
|
38
|
+
- Generate benchmarks for each test, save as file.
|
39
|
+
- Each time the benchmark specs are run, compare the results to the expected values.
|
40
|
+
- If the result is out of the expected range, fail the tests.
|
41
|
+
- Configure to run on first test, expected/permitted range.
|
31
42
|
- Extract ActiveModel/Rails functionality to sub-gem?
|
32
43
|
- Add shared examples for #belongs_to, #has_one, #has_many, #embedded_in, #embeds_one, #embeds_many.
|
33
44
|
- Add shared examples for core ActiveModel validations.
|
@@ -35,11 +35,12 @@ module RSpec::SleepingKingStudios::Concerns
|
|
35
35
|
# @raise ArgumentError If the referenced shared example group does not
|
36
36
|
# exist.
|
37
37
|
def alias_shared_examples new_name, old_name
|
38
|
-
|
38
|
+
example_group = shared_example_groups[self][old_name]
|
39
|
+
definition = example_group_definition(example_group)
|
39
40
|
|
40
|
-
raise ArgumentError.new(%{Could not find shared examples "#{old_name}"}) if
|
41
|
+
raise ArgumentError.new(%{Could not find shared examples "#{old_name}"}) if definition.nil?
|
41
42
|
|
42
|
-
self.shared_examples new_name, &
|
43
|
+
self.shared_examples new_name, &definition
|
43
44
|
end # method alias_shared_examples
|
44
45
|
alias_method :alias_shared_context, :alias_shared_examples
|
45
46
|
|
@@ -73,14 +74,27 @@ module RSpec::SleepingKingStudios::Concerns
|
|
73
74
|
|
74
75
|
private
|
75
76
|
|
77
|
+
def example_group_definition example_group
|
78
|
+
if example_group.is_a?(Proc)
|
79
|
+
example_group
|
80
|
+
elsif defined?(RSpec::Core::SharedExampleGroupModule) && example_group.is_a?(RSpec::Core::SharedExampleGroupModule)
|
81
|
+
example_group.definition
|
82
|
+
else
|
83
|
+
nil
|
84
|
+
end # if-elsif-else
|
85
|
+
end # method example_group_definition
|
86
|
+
|
76
87
|
# @api private
|
77
88
|
def merge_shared_example_groups other
|
78
|
-
shared_example_groups[self].each do |name,
|
89
|
+
shared_example_groups[self].each do |name, example_group|
|
90
|
+
definition = example_group_definition(example_group)
|
91
|
+
|
79
92
|
# Skip the warning if the shared example group is already defined with the
|
80
93
|
# same definition.
|
81
|
-
|
94
|
+
existing_group = shared_example_groups[other][name]
|
95
|
+
next if existing_group == example_group || example_group_definition(existing_group) == definition
|
82
96
|
|
83
|
-
RSpec.world.shared_example_group_registry.add(other, name, &
|
97
|
+
RSpec.world.shared_example_group_registry.add(other, name, &definition)
|
84
98
|
end # each
|
85
99
|
end # method merge_shared_example_groups
|
86
100
|
|
@@ -86,9 +86,11 @@ module RSpec::SleepingKingStudios::Matchers::BuiltIn
|
|
86
86
|
end # method comparing_proc?
|
87
87
|
|
88
88
|
def excluded_from_actual
|
89
|
+
items = defined?(expecteds) ? expecteds : expected
|
90
|
+
|
89
91
|
return [] unless @actual.respond_to?(:include?)
|
90
92
|
|
91
|
-
|
93
|
+
items.inject([]) do |memo, expected_item|
|
92
94
|
if comparing_proc?(expected_item)
|
93
95
|
memo << :__block_comparison__ unless yield actual_matches_proc?(expected_item)
|
94
96
|
elsif comparing_hash_to_a_subset?(expected_item)
|
@@ -106,8 +108,10 @@ module RSpec::SleepingKingStudios::Matchers::BuiltIn
|
|
106
108
|
end # method excluded_from_actual
|
107
109
|
|
108
110
|
def expected_items_for_description
|
111
|
+
items = defined?(expecteds) ? expecteds : @expected
|
112
|
+
|
109
113
|
# Preprocess items to stub out block expectations.
|
110
|
-
|
114
|
+
items.map { |item| item.is_a?(Proc) ? :__block_comparison__ : item }
|
111
115
|
end # method expected_items_for_description
|
112
116
|
|
113
117
|
def perform_match(actual, &block)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-sleeping_king_studios
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.0.rc.
|
4
|
+
version: 2.2.0.rc.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rob "Merlin" Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|