hyperclient 0.3.0 → 0.3.1
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/.rvmrc +1 -1
- data/.travis.yml +1 -0
- data/CHANGELOG.md +13 -0
- data/Gemfile.lock +1 -1
- data/Rakefile +8 -0
- data/lib/hyperclient/link_collection.rb +19 -4
- data/lib/hyperclient/version.rb +1 -1
- data/test/fixtures/element.json +9 -1
- data/test/hyperclient/link_collection_test.rb +18 -0
- data/test/test_helper.rb +0 -7
- metadata +10 -37
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ca91418e4cc3c00e7b395bb10fe72199ede4921e
|
4
|
+
data.tar.gz: 6bd818aaf9d3198503a400427cb531dbf3cf5211
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: cb9da634649232d9712dfcec8d1590b42e54fd3fed3f39b013ebce5327cdd92317ecd22b054069e7d0fb26f7879b0ba9f8361da34b52621d663fc88ff403271d
|
7
|
+
data.tar.gz: 002971bb90ff267effa042925ab314f864a040e070158810c3ba7e329ca47a7e2e659cab90ab72310202d660886acf6913dcbc0889e0c7582ad5cead89aea38e
|
data/.rvmrc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
rvm use --create
|
1
|
+
rvm use --create 2.0.0@hyperclient
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
data/Gemfile.lock
CHANGED
data/Rakefile
CHANGED
@@ -5,6 +5,14 @@ rescue LoadError
|
|
5
5
|
puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
|
6
6
|
end
|
7
7
|
|
8
|
+
if ENV['COVERAGE']
|
9
|
+
require 'simplecov'
|
10
|
+
SimpleCov.start do
|
11
|
+
add_filter '/test/'
|
12
|
+
add_filter '/features/'
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
8
16
|
require 'yard'
|
9
17
|
YARD::Config.load_plugin('yard-tomdoc')
|
10
18
|
YARD::Rake::YardocTask.new do |t|
|
@@ -13,12 +13,27 @@ module Hyperclient
|
|
13
13
|
# Public: Initializes a LinkCollection.
|
14
14
|
#
|
15
15
|
# collection - The Hash with the links.
|
16
|
-
# entry_point - The EntryPoint object to inject the
|
17
|
-
#
|
16
|
+
# entry_point - The EntryPoint object to inject the configuration.
|
18
17
|
def initialize(collection, entry_point)
|
19
|
-
raise "Invalid response for LinkCollection. The response was: #{collection.inspect}" if collection && !collection.respond_to?(:
|
18
|
+
raise "Invalid response for LinkCollection. The response was: #{collection.inspect}" if collection && !collection.respond_to?(:collect)
|
19
|
+
|
20
20
|
@collection = (collection || {}).inject({}) do |hash, (name, link)|
|
21
|
-
hash.update(name =>
|
21
|
+
hash.update(name => build_link(link, entry_point))
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
private
|
26
|
+
# Internal: Creates links from the response hash.
|
27
|
+
#
|
28
|
+
# link_or_links - A Hash or an Array of hashes with the links to build.
|
29
|
+
# entry_point - The EntryPoint object to inject the configuration.
|
30
|
+
#
|
31
|
+
# Returns a Link or an array of Links when given an Array.
|
32
|
+
def build_link(link_or_links, entry_point)
|
33
|
+
return Link.new(link_or_links, entry_point) unless link_or_links.respond_to?(:to_ary)
|
34
|
+
|
35
|
+
link_or_links.collect do |link|
|
36
|
+
build_link(link, entry_point)
|
22
37
|
end
|
23
38
|
end
|
24
39
|
end
|
data/lib/hyperclient/version.rb
CHANGED
data/test/fixtures/element.json
CHANGED
@@ -6,7 +6,15 @@
|
|
6
6
|
"filter": {
|
7
7
|
"href": "/productions/1?categories={filter}",
|
8
8
|
"templated": true
|
9
|
-
}
|
9
|
+
},
|
10
|
+
"gizmos": [
|
11
|
+
{
|
12
|
+
"href": "/gizmos/1"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"href": "/gizmos/2"
|
16
|
+
}
|
17
|
+
]
|
10
18
|
},
|
11
19
|
"title": "Real World ASP.NET MVC3",
|
12
20
|
"description": "In this advanced, somewhat-opinionated production you'll get your very own startup off the ground using ASP.NET MVC 3...",
|
@@ -19,11 +19,29 @@ module Hyperclient
|
|
19
19
|
|
20
20
|
it 'initializes the collection with links' do
|
21
21
|
links.must_respond_to :filter
|
22
|
+
links.must_respond_to :gizmos
|
22
23
|
end
|
23
24
|
|
24
25
|
it 'returns link objects for each link' do
|
25
26
|
links.filter.must_be_kind_of Link
|
26
27
|
links['self'].must_be_kind_of Link
|
28
|
+
|
29
|
+
links.gizmos.must_be_kind_of Array
|
30
|
+
links['gizmos'].must_be_kind_of Array
|
31
|
+
end
|
32
|
+
|
33
|
+
describe "array of links" do
|
34
|
+
let(:gizmos) { links.gizmos }
|
35
|
+
|
36
|
+
it 'should have 2 items' do
|
37
|
+
gizmos.length.must_equal 2
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'must be an array of Links' do
|
41
|
+
gizmos.each do |link|
|
42
|
+
link.must_be_kind_of Link
|
43
|
+
end
|
44
|
+
end
|
27
45
|
end
|
28
46
|
end
|
29
47
|
end
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hyperclient
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Oriol Gual
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-04-03 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: faraday
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ~>
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
24
|
- - ~>
|
28
25
|
- !ruby/object:Gem::Version
|
@@ -30,7 +27,6 @@ dependencies:
|
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: faraday_middleware
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
31
|
- - ~>
|
36
32
|
- !ruby/object:Gem::Version
|
@@ -38,7 +34,6 @@ dependencies:
|
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
38
|
- - ~>
|
44
39
|
- !ruby/object:Gem::Version
|
@@ -46,7 +41,6 @@ dependencies:
|
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: uri_template
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
45
|
- - ~>
|
52
46
|
- !ruby/object:Gem::Version
|
@@ -54,7 +48,6 @@ dependencies:
|
|
54
48
|
type: :runtime
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
52
|
- - ~>
|
60
53
|
- !ruby/object:Gem::Version
|
@@ -62,7 +55,6 @@ dependencies:
|
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: net-http-digest_auth
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
59
|
- - ~>
|
68
60
|
- !ruby/object:Gem::Version
|
@@ -70,7 +62,6 @@ dependencies:
|
|
70
62
|
type: :runtime
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
66
|
- - ~>
|
76
67
|
- !ruby/object:Gem::Version
|
@@ -78,7 +69,6 @@ dependencies:
|
|
78
69
|
- !ruby/object:Gem::Dependency
|
79
70
|
name: minitest
|
80
71
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
72
|
requirements:
|
83
73
|
- - ~>
|
84
74
|
- !ruby/object:Gem::Version
|
@@ -86,7 +76,6 @@ dependencies:
|
|
86
76
|
type: :development
|
87
77
|
prerelease: false
|
88
78
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
79
|
requirements:
|
91
80
|
- - ~>
|
92
81
|
- !ruby/object:Gem::Version
|
@@ -94,7 +83,6 @@ dependencies:
|
|
94
83
|
- !ruby/object:Gem::Dependency
|
95
84
|
name: turn
|
96
85
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
86
|
requirements:
|
99
87
|
- - ~>
|
100
88
|
- !ruby/object:Gem::Version
|
@@ -102,7 +90,6 @@ dependencies:
|
|
102
90
|
type: :development
|
103
91
|
prerelease: false
|
104
92
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
93
|
requirements:
|
107
94
|
- - ~>
|
108
95
|
- !ruby/object:Gem::Version
|
@@ -110,7 +97,6 @@ dependencies:
|
|
110
97
|
- !ruby/object:Gem::Dependency
|
111
98
|
name: webmock
|
112
99
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
100
|
requirements:
|
115
101
|
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
@@ -118,7 +104,6 @@ dependencies:
|
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
107
|
requirements:
|
123
108
|
- - ~>
|
124
109
|
- !ruby/object:Gem::Version
|
@@ -126,7 +111,6 @@ dependencies:
|
|
126
111
|
- !ruby/object:Gem::Dependency
|
127
112
|
name: mocha
|
128
113
|
requirement: !ruby/object:Gem::Requirement
|
129
|
-
none: false
|
130
114
|
requirements:
|
131
115
|
- - ~>
|
132
116
|
- !ruby/object:Gem::Version
|
@@ -134,7 +118,6 @@ dependencies:
|
|
134
118
|
type: :development
|
135
119
|
prerelease: false
|
136
120
|
version_requirements: !ruby/object:Gem::Requirement
|
137
|
-
none: false
|
138
121
|
requirements:
|
139
122
|
- - ~>
|
140
123
|
- !ruby/object:Gem::Version
|
@@ -142,7 +125,6 @@ dependencies:
|
|
142
125
|
- !ruby/object:Gem::Dependency
|
143
126
|
name: rack-test
|
144
127
|
requirement: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
128
|
requirements:
|
147
129
|
- - ~>
|
148
130
|
- !ruby/object:Gem::Version
|
@@ -150,7 +132,6 @@ dependencies:
|
|
150
132
|
type: :development
|
151
133
|
prerelease: false
|
152
134
|
version_requirements: !ruby/object:Gem::Requirement
|
153
|
-
none: false
|
154
135
|
requirements:
|
155
136
|
- - ~>
|
156
137
|
- !ruby/object:Gem::Version
|
@@ -158,17 +139,15 @@ dependencies:
|
|
158
139
|
- !ruby/object:Gem::Dependency
|
159
140
|
name: spinach
|
160
141
|
requirement: !ruby/object:Gem::Requirement
|
161
|
-
none: false
|
162
142
|
requirements:
|
163
|
-
- -
|
143
|
+
- - '>='
|
164
144
|
- !ruby/object:Gem::Version
|
165
145
|
version: '0'
|
166
146
|
type: :development
|
167
147
|
prerelease: false
|
168
148
|
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
149
|
requirements:
|
171
|
-
- -
|
150
|
+
- - '>='
|
172
151
|
- !ruby/object:Gem::Version
|
173
152
|
version: '0'
|
174
153
|
description: HyperClient is a Ruby Hypermedia API client.
|
@@ -182,6 +161,7 @@ files:
|
|
182
161
|
- .rvmrc
|
183
162
|
- .travis.yml
|
184
163
|
- .yardopts
|
164
|
+
- CHANGELOG.md
|
185
165
|
- Gemfile
|
186
166
|
- Gemfile.lock
|
187
167
|
- Guardfile
|
@@ -226,33 +206,26 @@ files:
|
|
226
206
|
- test/test_helper.rb
|
227
207
|
homepage: http://codegram.github.com/hyperclient/
|
228
208
|
licenses: []
|
209
|
+
metadata: {}
|
229
210
|
post_install_message:
|
230
211
|
rdoc_options: []
|
231
212
|
require_paths:
|
232
213
|
- lib
|
233
214
|
required_ruby_version: !ruby/object:Gem::Requirement
|
234
|
-
none: false
|
235
215
|
requirements:
|
236
|
-
- -
|
216
|
+
- - '>='
|
237
217
|
- !ruby/object:Gem::Version
|
238
218
|
version: '0'
|
239
|
-
segments:
|
240
|
-
- 0
|
241
|
-
hash: -3632989280066104764
|
242
219
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
243
|
-
none: false
|
244
220
|
requirements:
|
245
|
-
- -
|
221
|
+
- - '>='
|
246
222
|
- !ruby/object:Gem::Version
|
247
223
|
version: '0'
|
248
|
-
segments:
|
249
|
-
- 0
|
250
|
-
hash: -3632989280066104764
|
251
224
|
requirements: []
|
252
225
|
rubyforge_project:
|
253
|
-
rubygems_version:
|
226
|
+
rubygems_version: 2.0.0
|
254
227
|
signing_key:
|
255
|
-
specification_version:
|
228
|
+
specification_version: 4
|
256
229
|
summary: ''
|
257
230
|
test_files:
|
258
231
|
- features/api_navigation.feature
|