roar 0.11.5 → 0.11.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.
- data/CHANGES.markdown +4 -0
- data/lib/roar/representer/feature/hypermedia.rb +0 -3
- data/lib/roar/representer/json.rb +4 -0
- data/lib/roar/representer/json/hal.rb +1 -1
- data/lib/roar/representer/xml.rb +4 -0
- data/lib/roar/version.rb +1 -1
- data/test/hypermedia_feature_test.rb +1 -30
- data/test/hypermedia_test.rb +37 -1
- metadata +2 -2
data/CHANGES.markdown
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
## 0.11.6
|
2
|
+
|
3
|
+
* "Fixing" a bug where `links_definition_option` was missing when no link was set in a representer. Note that this is a quick and horrible bugfix and will soon be cleaned up.
|
4
|
+
|
1
5
|
## 0.11.5
|
2
6
|
|
3
7
|
* Introducing HAL::links method to map arrays of link objects in the HAL format. This completes the HAL/JSON specification.
|
@@ -52,9 +52,6 @@ module Roar
|
|
52
52
|
end
|
53
53
|
end
|
54
54
|
include LinksDefinitionMethods
|
55
|
-
def links_definition_options # FIXME: make this unnecessary.
|
56
|
-
self.class.links_definition_options
|
57
|
-
end
|
58
55
|
|
59
56
|
def before_serialize(options={})
|
60
57
|
prepare_links!(options) unless options[:links] == false # DISCUSS: doesn't work when links are already setup (e.g. from #deserialize).
|
@@ -49,6 +49,10 @@ module Roar
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
+
def links_definition_options # FIXME: remove me ASAP!
|
53
|
+
[:links_array, {:from => :links, :class => Feature::Hypermedia::Hyperlink, :extend => HyperlinkRepresenter, :collection => true}]
|
54
|
+
end
|
55
|
+
|
52
56
|
require "representable/json/hash"
|
53
57
|
# Represents a hyperlink in standard roar+json hash representation.
|
54
58
|
module HyperlinkRepresenter
|
data/lib/roar/representer/xml.rb
CHANGED
@@ -47,6 +47,10 @@ module Roar
|
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
|
+
def links_definition_options # FIXME: remove me ASAP!
|
51
|
+
[:links_array, {:from => :link, :class => Feature::Hypermedia::Hyperlink, :collection => true, :extend => XML::HyperlinkRepresenter}]
|
52
|
+
end
|
53
|
+
|
50
54
|
|
51
55
|
require 'representable/xml/hash'
|
52
56
|
module HyperlinkRepresenter
|
data/lib/roar/version.rb
CHANGED
@@ -2,7 +2,7 @@ require 'test_helper'
|
|
2
2
|
require 'roar/representer/feature/hypermedia'
|
3
3
|
require 'roar/representer/json'
|
4
4
|
|
5
|
-
class HypermediaTest
|
5
|
+
class HypermediaTest < MiniTest::Spec
|
6
6
|
describe "Hypermedia Feature" do
|
7
7
|
|
8
8
|
|
@@ -135,35 +135,6 @@ class LinkCollectionTest < MiniTest::Spec
|
|
135
135
|
end
|
136
136
|
end
|
137
137
|
|
138
|
-
class HyperlinkTest < MiniTest::Spec
|
139
|
-
Hyperlink = Roar::Representer::Feature::Hypermedia::Hyperlink
|
140
|
-
describe "Hyperlink" do
|
141
|
-
subject { Hyperlink.new(:rel => "self", "href" => "http://self", "data-whatever" => "Hey, @myabc") }
|
142
|
-
|
143
|
-
it "accepts string keys in constructor" do
|
144
|
-
assert_equal "Hey, @myabc", subject.send("data-whatever")
|
145
|
-
end
|
146
|
-
|
147
|
-
it "responds to #rel" do
|
148
|
-
assert_equal "self", subject.rel
|
149
|
-
end
|
150
|
-
|
151
|
-
it "responds to #href" do
|
152
|
-
assert_equal "http://self", subject.href
|
153
|
-
end
|
154
|
-
|
155
|
-
it "responds to #replace with string keys" do
|
156
|
-
subject.replace("rel" => "next")
|
157
|
-
assert_equal nil, subject.href
|
158
|
-
assert_equal "next", subject.rel
|
159
|
-
end
|
160
|
-
|
161
|
-
it "responds to #each and implements Enumerable" do
|
162
|
-
assert_equal ["rel:self", "href:http://self", "data-whatever:Hey, @myabc"], subject.collect { |k,v| "#{k}:#{v}" }
|
163
|
-
end
|
164
|
-
end
|
165
|
-
end
|
166
|
-
|
167
138
|
class HyperlinkInheritanceTest < MiniTest::Spec
|
168
139
|
describe "when the base representer has a link" do
|
169
140
|
before do
|
data/test/hypermedia_test.rb
CHANGED
@@ -54,6 +54,14 @@ class HypermediaTest < MiniTest::Spec
|
|
54
54
|
subject.to_json.must_equal "{\"links\":[{\"rel\":\"self\",\"href\":\"//self\",\"type\":\"image/jpg\"}]}"
|
55
55
|
end
|
56
56
|
end
|
57
|
+
|
58
|
+
describe "not calling #link" do
|
59
|
+
representer_for {}
|
60
|
+
|
61
|
+
it "still allows rendering" do
|
62
|
+
subject.to_json.must_equal "{\"links\":[]}"
|
63
|
+
end
|
64
|
+
end
|
57
65
|
end
|
58
66
|
|
59
67
|
# private tests:
|
@@ -97,4 +105,32 @@ class LinksDefinitionTest < MiniTest::Spec
|
|
97
105
|
assert subject.clone.rel2block.object_id != subject.rel2block.object_id
|
98
106
|
end
|
99
107
|
end
|
100
|
-
end
|
108
|
+
end
|
109
|
+
|
110
|
+
class HyperlinkTest < MiniTest::Spec
|
111
|
+
describe "Hyperlink" do
|
112
|
+
subject { link(:rel => "self", "href" => "http://self", "data-whatever" => "Hey, @myabc") }
|
113
|
+
|
114
|
+
it "accepts string keys in constructor" do
|
115
|
+
assert_equal "Hey, @myabc", subject.send("data-whatever")
|
116
|
+
end
|
117
|
+
|
118
|
+
it "responds to #rel" do
|
119
|
+
assert_equal "self", subject.rel
|
120
|
+
end
|
121
|
+
|
122
|
+
it "responds to #href" do
|
123
|
+
assert_equal "http://self", subject.href
|
124
|
+
end
|
125
|
+
|
126
|
+
it "responds to #replace with string keys" do
|
127
|
+
subject.replace("rel" => "next")
|
128
|
+
assert_equal nil, subject.href
|
129
|
+
assert_equal "next", subject.rel
|
130
|
+
end
|
131
|
+
|
132
|
+
it "responds to #each and implements Enumerable" do
|
133
|
+
assert_equal ["rel:self", "href:http://self", "data-whatever:Hey, @myabc"], subject.collect { |k,v| "#{k}:#{v}" }
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: representable
|