sawyer 0.5.3 → 0.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sawyer.rb +1 -1
- data/lib/sawyer/link_parsers/simple.rb +1 -1
- data/lib/sawyer/relation.rb +9 -1
- data/lib/sawyer/resource.rb +15 -0
- data/test/relation_test.rb +9 -0
- data/test/resource_test.rb +14 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6de3df7914dedda29d5d502b9adb7b6df07eb2e
|
4
|
+
data.tar.gz: 26b8e89d2c2555949081f5229dac86394399a421
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5efb922a2238670effddd63acea45632d784317708446c5e6c858acb9600c6a85fa71b6002591514b0059f46d96392b7423dfeadff6b2e82fd9446b696d55de9
|
7
|
+
data.tar.gz: efaffd42000f611e68a7c59364a6b4d0f1b3df0ed9709550e432a8dea5159293d127d1265f06eb9694257077b663ac968e76f1bf9fcb389a47767d7ccb96dffd
|
data/lib/sawyer.rb
CHANGED
@@ -17,7 +17,7 @@ module Sawyer
|
|
17
17
|
inline_links = data.keys.select {|k| k.to_s[LINK_REGEX] }
|
18
18
|
inline_links.each do |key|
|
19
19
|
rel_name = key.to_s == 'url' ? 'self' : key.to_s.gsub(LINK_REGEX, '')
|
20
|
-
links[rel_name.to_sym] = data
|
20
|
+
links[rel_name.to_sym] = data[key]
|
21
21
|
end
|
22
22
|
|
23
23
|
return data, links
|
data/lib/sawyer/relation.rb
CHANGED
@@ -38,9 +38,17 @@ module Sawyer
|
|
38
38
|
def keys
|
39
39
|
@map.keys
|
40
40
|
end
|
41
|
+
def to_hash
|
42
|
+
pairs = @map.map do |k, v|
|
43
|
+
[(k.to_s + "_url").to_sym, v.href]
|
44
|
+
end
|
45
|
+
Hash[pairs]
|
46
|
+
end
|
47
|
+
alias :to_h :to_hash
|
41
48
|
|
42
49
|
def inspect
|
43
|
-
|
50
|
+
hash = to_hash
|
51
|
+
hash.respond_to?(:pretty_inspect) ? hash.pretty_inspect : hash.inspect
|
44
52
|
end
|
45
53
|
end
|
46
54
|
|
data/lib/sawyer/resource.rb
CHANGED
@@ -4,6 +4,7 @@ module Sawyer
|
|
4
4
|
attr_reader :_agent, :_rels, :_fields
|
5
5
|
attr_reader :attrs
|
6
6
|
alias to_hash attrs
|
7
|
+
alias to_h attrs
|
7
8
|
|
8
9
|
# Initializes a Resource with the given data.
|
9
10
|
#
|
@@ -115,11 +116,25 @@ module Sawyer
|
|
115
116
|
end
|
116
117
|
end
|
117
118
|
|
119
|
+
def inspect
|
120
|
+
to_attrs.respond_to?(:pretty_inspect) ? to_attrs.pretty_inspect : to_attrs.inspect
|
121
|
+
end
|
122
|
+
|
118
123
|
# private
|
119
124
|
def to_yaml_properties
|
120
125
|
[:@attrs, :@_fields, :@_rels]
|
121
126
|
end
|
122
127
|
|
128
|
+
def to_attrs
|
129
|
+
hash = self.attrs.clone
|
130
|
+
hash.keys.each do |k|
|
131
|
+
if hash[k].is_a?(Sawyer::Resource)
|
132
|
+
hash[k] = hash[k].to_attrs
|
133
|
+
end
|
134
|
+
end
|
135
|
+
hash
|
136
|
+
end
|
137
|
+
|
123
138
|
def marshal_dump
|
124
139
|
[@attrs, @_fields, @_rels]
|
125
140
|
end
|
data/test/relation_test.rb
CHANGED
@@ -161,5 +161,14 @@ module Sawyer
|
|
161
161
|
assert_equal 204, rel.put.status
|
162
162
|
assert_equal 204, rel.delete.status
|
163
163
|
end
|
164
|
+
|
165
|
+
def test_map_inspect
|
166
|
+
map = Sawyer::Relation::Map.new
|
167
|
+
hash = {:href => '/users/1', :method => 'post'}
|
168
|
+
rel = Sawyer::Relation.from_link(nil, :self, hash)
|
169
|
+
map << rel
|
170
|
+
|
171
|
+
assert_equal "{:self_url=>\"/users/1\"}\n", map.inspect
|
172
|
+
end
|
164
173
|
end
|
165
174
|
end
|
data/test/resource_test.rb
CHANGED
@@ -122,6 +122,12 @@ module Sawyer
|
|
122
122
|
assert_equal hash, res.attrs
|
123
123
|
end
|
124
124
|
|
125
|
+
def test_to_h
|
126
|
+
res = Resource.new @agent, :a => 1
|
127
|
+
hash = {:a => 1 }
|
128
|
+
assert_equal hash, res.to_h
|
129
|
+
end
|
130
|
+
|
125
131
|
def test_handle_hash_notation_with_string_key
|
126
132
|
res = Resource.new @agent, :a => 1
|
127
133
|
assert_equal 1, res['a']
|
@@ -142,12 +148,12 @@ module Sawyer
|
|
142
148
|
|
143
149
|
assert_equal '/', res.rels[:self].href
|
144
150
|
assert_kind_of Resource, res.user
|
145
|
-
|
151
|
+
assert_equal '/', res.url
|
146
152
|
assert_equal 1, res.user.id
|
147
153
|
assert_equal '/users/1', res.user.rels[:self].href
|
148
|
-
|
154
|
+
assert_equal '/users/1', res.user.url
|
149
155
|
assert_equal '/users/1/followers', res.user.rels[:followers].href
|
150
|
-
|
156
|
+
assert_equal '/users/1/followers', res.user.followers_url
|
151
157
|
end
|
152
158
|
|
153
159
|
def test_handle_yaml_dump
|
@@ -164,5 +170,10 @@ module Sawyer
|
|
164
170
|
Marshal.dump(res)
|
165
171
|
end
|
166
172
|
end
|
173
|
+
|
174
|
+
def test_inspect
|
175
|
+
resource = Resource.new @agent, :a => 1
|
176
|
+
assert_equal "{:a=>1}\n", resource.inspect
|
177
|
+
end
|
167
178
|
end
|
168
179
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sawyer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rick Olson
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-03-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: faraday
|