rspec-roar_matchers 0.0.1 → 0.0.2
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.
- checksums.yaml +7 -0
- data/README.md +1 -1
- data/lib/roar_matchers/have_links.rb +9 -4
- data/lib/roar_matchers/support.rb +6 -2
- data/lib/roar_matchers/version.rb +1 -1
- metadata +20 -33
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: c1308b1d5be9b0336bcba6fb7fc18a67196de241
|
4
|
+
data.tar.gz: 2b41004211a62c5b54c40adb0467ff9a071d2e53
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cb6645b77acc4f905b73123d4cedba032bdf6f5edab80a6b822b2c877c5e002b85bc2791b4d596c3f4dc439b2e83449afb45cf0def12e240d7732441f6dee48b
|
7
|
+
data.tar.gz: 5ee105656fac30a99d258a3d8ae4be2a8095dc8452d94d8449a535d861b904229e5b8a8008dd4311b64027f84d523e362a8432707ffb263b5204592b5a8e1a85
|
data/README.md
CHANGED
@@ -40,7 +40,7 @@ end
|
|
40
40
|
### have_properties
|
41
41
|
|
42
42
|
```ruby
|
43
|
-
context "
|
43
|
+
context "property is present in both spec and representer (happy path)" do
|
44
44
|
it "passes" do
|
45
45
|
expected_properties = %w{name}
|
46
46
|
expect(country.extend(CountryRepresenter)).to have_properties(expected_properties)
|
@@ -1,10 +1,13 @@
|
|
1
|
-
RSpec::Matchers.define :have_links do |
|
1
|
+
RSpec::Matchers.define :have_links do |*expected|
|
2
|
+
expected_links = expected.shift
|
3
|
+
options = RoarMatchers.extract_options!(expected)
|
4
|
+
|
2
5
|
match do |representer|
|
3
6
|
first = expected_links.all? do |expected_link|
|
4
|
-
RoarMatchers.get_actual_link_names(representer).include?(expected_link)
|
7
|
+
RoarMatchers.get_actual_link_names(representer, options).include?(expected_link)
|
5
8
|
end
|
6
9
|
|
7
|
-
second = RoarMatchers.get_actual_link_names(representer).all? do |expected_link|
|
10
|
+
second = RoarMatchers.get_actual_link_names(representer, options).all? do |expected_link|
|
8
11
|
expected_links.include?(expected_link)
|
9
12
|
end
|
10
13
|
|
@@ -12,7 +15,9 @@ RSpec::Matchers.define :have_links do |expected_links|
|
|
12
15
|
end
|
13
16
|
|
14
17
|
failure_message_for_should do |representer|
|
15
|
-
|
18
|
+
opts = opts || {}
|
19
|
+
|
20
|
+
actual_link_names = RoarMatchers.get_actual_link_names(representer, opts)
|
16
21
|
representation_or_specification, missing = RoarMatchers.missing(actual_link_names,expected_links)
|
17
22
|
|
18
23
|
(<<-EOS)
|
@@ -13,11 +13,15 @@ module RoarMatchers
|
|
13
13
|
end.map(&:name)
|
14
14
|
end
|
15
15
|
|
16
|
-
def self.get_actual_link_names(representer)
|
17
|
-
representer.to_json;
|
16
|
+
def self.get_actual_link_names(representer, options={})
|
17
|
+
representer.to_json(options);
|
18
18
|
representer.links.keys
|
19
19
|
end
|
20
20
|
|
21
|
+
def self.extract_options!(args)
|
22
|
+
args.last.is_a?(::Hash) ? args.pop : {}
|
23
|
+
end
|
24
|
+
|
21
25
|
def self.get_actual_collection_names(representer)
|
22
26
|
representer.instance_variable_get("@representable_attrs").select do |attr|
|
23
27
|
attr.options[:collection] && attr.name != "links_array"
|
metadata
CHANGED
@@ -1,96 +1,85 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-roar_matchers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.2
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Hashrocket Workstation
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-10-30 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
|
-
prerelease: false
|
17
15
|
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '1.3'
|
22
|
-
none: false
|
23
20
|
type: :development
|
21
|
+
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
23
|
requirements:
|
26
24
|
- - ~>
|
27
25
|
- !ruby/object:Gem::Version
|
28
26
|
version: '1.3'
|
29
|
-
none: false
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
|
-
prerelease: false
|
33
29
|
requirement: !ruby/object:Gem::Requirement
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
|
-
none: false
|
39
34
|
type: :development
|
35
|
+
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
37
|
requirements:
|
42
|
-
- -
|
38
|
+
- - '>='
|
43
39
|
- !ruby/object:Gem::Version
|
44
40
|
version: '0'
|
45
|
-
none: false
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: roar
|
48
|
-
prerelease: false
|
49
43
|
requirement: !ruby/object:Gem::Requirement
|
50
44
|
requirements:
|
51
|
-
- -
|
45
|
+
- - '>='
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '0'
|
54
|
-
none: false
|
55
48
|
type: :development
|
49
|
+
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
51
|
requirements:
|
58
|
-
- -
|
52
|
+
- - '>='
|
59
53
|
- !ruby/object:Gem::Version
|
60
54
|
version: '0'
|
61
|
-
none: false
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: rspec
|
64
|
-
prerelease: false
|
65
57
|
requirement: !ruby/object:Gem::Requirement
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - '>='
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
|
-
none: false
|
71
62
|
type: :development
|
63
|
+
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
65
|
requirements:
|
74
|
-
- -
|
66
|
+
- - '>='
|
75
67
|
- !ruby/object:Gem::Version
|
76
68
|
version: '0'
|
77
|
-
none: false
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: pry
|
80
|
-
prerelease: false
|
81
71
|
requirement: !ruby/object:Gem::Requirement
|
82
72
|
requirements:
|
83
|
-
- -
|
73
|
+
- - '>='
|
84
74
|
- !ruby/object:Gem::Version
|
85
75
|
version: '0'
|
86
|
-
none: false
|
87
76
|
type: :development
|
77
|
+
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
79
|
requirements:
|
90
|
-
- -
|
80
|
+
- - '>='
|
91
81
|
- !ruby/object:Gem::Version
|
92
82
|
version: '0'
|
93
|
-
none: false
|
94
83
|
description: Rspec::RoarMatchers is a collection of matchers designed to enforce a
|
95
84
|
contract between your spec and representer.
|
96
85
|
email:
|
@@ -121,27 +110,26 @@ files:
|
|
121
110
|
homepage: https://github.com/rondale-sc/rspec-roar_matchers
|
122
111
|
licenses:
|
123
112
|
- MIT
|
113
|
+
metadata: {}
|
124
114
|
post_install_message:
|
125
115
|
rdoc_options: []
|
126
116
|
require_paths:
|
127
117
|
- lib
|
128
118
|
required_ruby_version: !ruby/object:Gem::Requirement
|
129
119
|
requirements:
|
130
|
-
- -
|
120
|
+
- - '>='
|
131
121
|
- !ruby/object:Gem::Version
|
132
122
|
version: '0'
|
133
|
-
none: false
|
134
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
124
|
requirements:
|
136
|
-
- -
|
125
|
+
- - '>='
|
137
126
|
- !ruby/object:Gem::Version
|
138
127
|
version: '0'
|
139
|
-
none: false
|
140
128
|
requirements: []
|
141
129
|
rubyforge_project:
|
142
|
-
rubygems_version:
|
130
|
+
rubygems_version: 2.0.7
|
143
131
|
signing_key:
|
144
|
-
specification_version:
|
132
|
+
specification_version: 4
|
145
133
|
summary: Rspec::RoarMatchers is a collection of matchers designed to enforce a contract
|
146
134
|
between your spec and representer. The driving concern, while recently developing
|
147
135
|
for an app that was making extensive use of Roar, was the fact that we were able
|
@@ -153,4 +141,3 @@ test_files:
|
|
153
141
|
- spec/fixtures/state_representer.rb
|
154
142
|
- spec/roar_matchers/matchers_spec.rb
|
155
143
|
- spec/spec_helper.rb
|
156
|
-
has_rdoc:
|