hyperclient 0.3.0 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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.9.3@hyperclient
1
+ rvm use --create 2.0.0@hyperclient
data/.travis.yml CHANGED
@@ -1,2 +1,3 @@
1
1
  rvm:
2
2
  - 1.9.3
3
+ - 2.0.0
data/CHANGELOG.md ADDED
@@ -0,0 +1,13 @@
1
+ == 0.3.1
2
+ * backwards incompatible changes
3
+ * Nothing
4
+
5
+ * enhancements
6
+ * Support arrays of Links (by @rehevkor5)
7
+ * Created the CHANGELOG.
8
+
9
+ * bug fix
10
+ * Nothing
11
+
12
+ * deprecations
13
+ * Nothing
data/Gemfile.lock CHANGED
@@ -9,7 +9,7 @@ GIT
9
9
  PATH
10
10
  remote: .
11
11
  specs:
12
- hyperclient (0.3.0)
12
+ hyperclient (0.3.1)
13
13
  faraday (~> 0.8)
14
14
  faraday_middleware (~> 0.9)
15
15
  net-http-digest_auth (~> 1.2)
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 cofnigutation.
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?(:inject)
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 => Link.new(link, entry_point))
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
@@ -1,3 +1,3 @@
1
1
  module Hyperclient
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.1'
3
3
  end
@@ -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
@@ -1,10 +1,3 @@
1
- if ENV['COVERAGE']
2
- require 'simplecov'
3
- SimpleCov.start do
4
- add_filter '/test/'
5
- end
6
- end
7
-
8
1
  gem 'minitest'
9
2
 
10
3
  require 'minitest/spec'
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.0
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-02-03 00:00:00.000000000 Z
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: 1.8.24
226
+ rubygems_version: 2.0.0
254
227
  signing_key:
255
- specification_version: 3
228
+ specification_version: 4
256
229
  summary: ''
257
230
  test_files:
258
231
  - features/api_navigation.feature