harpy 0.5.2 → 1.0.0
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 +4 -4
- data/.travis.yml +3 -4
- data/Gemfile.lock +14 -15
- data/README.md +0 -1
- data/harpy.gemspec +1 -2
- data/lib/harpy/entry_point.rb +3 -3
- data/lib/harpy/resource.rb +6 -6
- metadata +29 -43
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 35426c39b7a3ab5a5cbe8a32afd1db109a81f6dc
|
|
4
|
+
data.tar.gz: 6869a454bd349bbcd33a1aa7fe7fdce6255f087d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3c730539fe647176feb1c0e1d60a05c8a8df3ac6ecb5e7b44cf8089f976fd1b3896d8f0c94dfd15dc8c47d338ac725b48ddbce6d23eb8b3b856e37a8ad980936
|
|
7
|
+
data.tar.gz: f95e41e0b7c2c54f69c324233be772a95ffc79c588d93c38bf8b314f3bef1a0d9a0938831c56a1ed2a23746a9923f3ab8a8aa579a8f2906d0a8a15684dd9f691
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,37 +1,36 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
harpy (0.
|
|
4
|
+
harpy (1.0.0)
|
|
5
5
|
activemodel (>= 3.1.0)
|
|
6
6
|
activesupport (>= 3.1.0)
|
|
7
7
|
hash-deep-merge (~> 0.1.1)
|
|
8
8
|
typhoeus (~> 0.6.5)
|
|
9
|
-
yajl-ruby (~> 1.1.0)
|
|
10
9
|
|
|
11
10
|
GEM
|
|
12
11
|
remote: http://rubygems.org/
|
|
13
12
|
specs:
|
|
14
|
-
activemodel (4.0.
|
|
15
|
-
activesupport (= 4.0.
|
|
13
|
+
activemodel (4.0.2)
|
|
14
|
+
activesupport (= 4.0.2)
|
|
16
15
|
builder (~> 3.1.0)
|
|
17
|
-
activesupport (4.0.
|
|
16
|
+
activesupport (4.0.2)
|
|
18
17
|
i18n (~> 0.6, >= 0.6.4)
|
|
19
18
|
minitest (~> 4.2)
|
|
20
19
|
multi_json (~> 1.3)
|
|
21
20
|
thread_safe (~> 0.1)
|
|
22
21
|
tzinfo (~> 0.3.37)
|
|
23
|
-
atomic (1.1.14)
|
|
22
|
+
atomic (1.1.14-java)
|
|
24
23
|
builder (3.1.4)
|
|
25
24
|
diff-lcs (1.2.4)
|
|
26
|
-
ethon (0.6.
|
|
25
|
+
ethon (0.6.2)
|
|
27
26
|
ffi (>= 1.3.0)
|
|
28
27
|
mime-types (~> 1.18)
|
|
29
|
-
ffi (1.9.3)
|
|
28
|
+
ffi (1.9.3-java)
|
|
30
29
|
hash-deep-merge (0.1.1)
|
|
31
|
-
i18n (0.6.
|
|
32
|
-
mime-types (1.25)
|
|
30
|
+
i18n (0.6.9)
|
|
31
|
+
mime-types (1.25.1)
|
|
33
32
|
minitest (4.7.5)
|
|
34
|
-
multi_json (1.8.
|
|
33
|
+
multi_json (1.8.4)
|
|
35
34
|
rake (10.1.0)
|
|
36
35
|
rspec (2.14.1)
|
|
37
36
|
rspec-core (~> 2.14.0)
|
|
@@ -41,14 +40,14 @@ GEM
|
|
|
41
40
|
rspec-expectations (2.14.2)
|
|
42
41
|
diff-lcs (>= 1.1.3, < 2.0)
|
|
43
42
|
rspec-mocks (2.14.3)
|
|
44
|
-
thread_safe (0.1.3)
|
|
43
|
+
thread_safe (0.1.3-java)
|
|
45
44
|
atomic
|
|
46
|
-
typhoeus (0.6.
|
|
47
|
-
ethon (~> 0.6.
|
|
45
|
+
typhoeus (0.6.7)
|
|
46
|
+
ethon (~> 0.6.2)
|
|
48
47
|
tzinfo (0.3.38)
|
|
49
|
-
yajl-ruby (1.1.0)
|
|
50
48
|
|
|
51
49
|
PLATFORMS
|
|
50
|
+
java
|
|
52
51
|
ruby
|
|
53
52
|
|
|
54
53
|
DEPENDENCIES
|
data/README.md
CHANGED
data/harpy.gemspec
CHANGED
|
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
|
3
3
|
|
|
4
4
|
Gem::Specification.new do |s|
|
|
5
5
|
s.name = "harpy"
|
|
6
|
-
s.version = "0.
|
|
6
|
+
s.version = "1.0.0"
|
|
7
7
|
s.platform = Gem::Platform::RUBY
|
|
8
8
|
s.authors = ["Joseph HALTER", "Jonathan TRON"]
|
|
9
9
|
s.email = ["joseph.halter@thetalentbox.com", "jonathan.tron@thetalentbox.com"]
|
|
@@ -21,7 +21,6 @@ Gem::Specification.new do |s|
|
|
|
21
21
|
s.add_runtime_dependency "activesupport", [">= 3.1.0"]
|
|
22
22
|
s.add_runtime_dependency "activemodel", [">= 3.1.0"]
|
|
23
23
|
s.add_runtime_dependency "hash-deep-merge", ["~> 0.1.1"]
|
|
24
|
-
s.add_runtime_dependency "yajl-ruby", ["~> 1.1.0"]
|
|
25
24
|
|
|
26
25
|
s.add_development_dependency "rake", [">= 0.8.7"]
|
|
27
26
|
s.add_development_dependency "rspec"
|
data/lib/harpy/entry_point.rb
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require "
|
|
1
|
+
require "json"
|
|
2
2
|
|
|
3
3
|
module Harpy
|
|
4
4
|
class EntryPoint
|
|
@@ -12,7 +12,7 @@ module Harpy
|
|
|
12
12
|
response = Harpy.client.get url
|
|
13
13
|
case response.code
|
|
14
14
|
when 200
|
|
15
|
-
body =
|
|
15
|
+
body = JSON.parse response.body
|
|
16
16
|
link = (body["link"] || []).detect{|link| link["rel"] == resource_type}
|
|
17
17
|
link["href"] if link
|
|
18
18
|
else
|
|
@@ -32,4 +32,4 @@ module Harpy
|
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
34
|
end
|
|
35
|
-
end
|
|
35
|
+
end
|
data/lib/harpy/resource.rb
CHANGED
|
@@ -2,7 +2,7 @@ require "active_support"
|
|
|
2
2
|
require "active_support/core_ext/object/blank"
|
|
3
3
|
require "active_support/core_ext/numeric/bytes"
|
|
4
4
|
require "active_model"
|
|
5
|
-
require "
|
|
5
|
+
require "json"
|
|
6
6
|
|
|
7
7
|
module Harpy
|
|
8
8
|
module Resource
|
|
@@ -63,7 +63,7 @@ module Harpy
|
|
|
63
63
|
response = Harpy.client.get url, :params => conditions
|
|
64
64
|
case response.code
|
|
65
65
|
when 200
|
|
66
|
-
parsed =
|
|
66
|
+
parsed = JSON.parse response.body
|
|
67
67
|
items = parsed[resource_name].collect{|model| new model}
|
|
68
68
|
Harpy::Collection.new parsed.merge(:items => items)
|
|
69
69
|
else
|
|
@@ -102,7 +102,7 @@ module Harpy
|
|
|
102
102
|
def from_url_handler(response)
|
|
103
103
|
case response.code
|
|
104
104
|
when 200
|
|
105
|
-
new
|
|
105
|
+
new JSON.parse response.body
|
|
106
106
|
when 404
|
|
107
107
|
nil
|
|
108
108
|
else
|
|
@@ -147,7 +147,7 @@ module Harpy
|
|
|
147
147
|
def save
|
|
148
148
|
if valid?
|
|
149
149
|
run_callbacks :save do
|
|
150
|
-
json =
|
|
150
|
+
json = JSON.generate as_json
|
|
151
151
|
raise BodyToBig, "Size: #{json.bytesize} bytes (max 1MB)" if json.bytesize > 1.megabyte
|
|
152
152
|
persisted? ? update(json) : create(json)
|
|
153
153
|
end
|
|
@@ -219,14 +219,14 @@ module Harpy
|
|
|
219
219
|
def process_response(response, context)
|
|
220
220
|
case response.code
|
|
221
221
|
when 200, 201, 302
|
|
222
|
-
@attrs.merge!
|
|
222
|
+
@attrs.merge! JSON.parse(response.body)
|
|
223
223
|
true
|
|
224
224
|
when 204
|
|
225
225
|
context==:create ? Harpy.client.invalid_code(response) : true
|
|
226
226
|
when 401
|
|
227
227
|
raise Harpy::Unauthorized, "Server returned a 401 response code"
|
|
228
228
|
when 422
|
|
229
|
-
|
|
229
|
+
JSON.parse(response.body)["errors"].each do |attr, attr_errors|
|
|
230
230
|
attr_errors.each{|attr_error| errors[attr] = attr_error }
|
|
231
231
|
end
|
|
232
232
|
false
|
metadata
CHANGED
|
@@ -1,114 +1,100 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: harpy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 1.0.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Joseph HALTER
|
|
8
8
|
- Jonathan TRON
|
|
9
|
-
autorequire:
|
|
9
|
+
autorequire:
|
|
10
10
|
bindir: bin
|
|
11
11
|
cert_chain: []
|
|
12
|
-
date:
|
|
12
|
+
date: 2014-01-29 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
|
14
14
|
- !ruby/object:Gem::Dependency
|
|
15
15
|
name: typhoeus
|
|
16
|
-
|
|
16
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
17
17
|
requirements:
|
|
18
18
|
- - ~>
|
|
19
19
|
- !ruby/object:Gem::Version
|
|
20
20
|
version: 0.6.5
|
|
21
|
-
|
|
22
|
-
prerelease: false
|
|
23
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
21
|
+
requirement: !ruby/object:Gem::Requirement
|
|
24
22
|
requirements:
|
|
25
23
|
- - ~>
|
|
26
24
|
- !ruby/object:Gem::Version
|
|
27
25
|
version: 0.6.5
|
|
26
|
+
prerelease: false
|
|
27
|
+
type: :runtime
|
|
28
28
|
- !ruby/object:Gem::Dependency
|
|
29
29
|
name: activesupport
|
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
|
31
|
-
requirements:
|
|
32
|
-
- - '>='
|
|
33
|
-
- !ruby/object:Gem::Version
|
|
34
|
-
version: 3.1.0
|
|
35
|
-
type: :runtime
|
|
36
|
-
prerelease: false
|
|
37
30
|
version_requirements: !ruby/object:Gem::Requirement
|
|
38
31
|
requirements:
|
|
39
32
|
- - '>='
|
|
40
33
|
- !ruby/object:Gem::Version
|
|
41
34
|
version: 3.1.0
|
|
42
|
-
- !ruby/object:Gem::Dependency
|
|
43
|
-
name: activemodel
|
|
44
35
|
requirement: !ruby/object:Gem::Requirement
|
|
45
36
|
requirements:
|
|
46
37
|
- - '>='
|
|
47
38
|
- !ruby/object:Gem::Version
|
|
48
39
|
version: 3.1.0
|
|
49
|
-
type: :runtime
|
|
50
40
|
prerelease: false
|
|
41
|
+
type: :runtime
|
|
42
|
+
- !ruby/object:Gem::Dependency
|
|
43
|
+
name: activemodel
|
|
51
44
|
version_requirements: !ruby/object:Gem::Requirement
|
|
52
45
|
requirements:
|
|
53
46
|
- - '>='
|
|
54
47
|
- !ruby/object:Gem::Version
|
|
55
48
|
version: 3.1.0
|
|
56
|
-
- !ruby/object:Gem::Dependency
|
|
57
|
-
name: hash-deep-merge
|
|
58
49
|
requirement: !ruby/object:Gem::Requirement
|
|
59
50
|
requirements:
|
|
60
|
-
- -
|
|
51
|
+
- - '>='
|
|
61
52
|
- !ruby/object:Gem::Version
|
|
62
|
-
version:
|
|
63
|
-
type: :runtime
|
|
53
|
+
version: 3.1.0
|
|
64
54
|
prerelease: false
|
|
55
|
+
type: :runtime
|
|
56
|
+
- !ruby/object:Gem::Dependency
|
|
57
|
+
name: hash-deep-merge
|
|
65
58
|
version_requirements: !ruby/object:Gem::Requirement
|
|
66
59
|
requirements:
|
|
67
60
|
- - ~>
|
|
68
61
|
- !ruby/object:Gem::Version
|
|
69
62
|
version: 0.1.1
|
|
70
|
-
- !ruby/object:Gem::Dependency
|
|
71
|
-
name: yajl-ruby
|
|
72
63
|
requirement: !ruby/object:Gem::Requirement
|
|
73
64
|
requirements:
|
|
74
65
|
- - ~>
|
|
75
66
|
- !ruby/object:Gem::Version
|
|
76
|
-
version: 1.1
|
|
77
|
-
type: :runtime
|
|
67
|
+
version: 0.1.1
|
|
78
68
|
prerelease: false
|
|
79
|
-
|
|
80
|
-
requirements:
|
|
81
|
-
- - ~>
|
|
82
|
-
- !ruby/object:Gem::Version
|
|
83
|
-
version: 1.1.0
|
|
69
|
+
type: :runtime
|
|
84
70
|
- !ruby/object:Gem::Dependency
|
|
85
71
|
name: rake
|
|
86
|
-
|
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
87
73
|
requirements:
|
|
88
74
|
- - '>='
|
|
89
75
|
- !ruby/object:Gem::Version
|
|
90
76
|
version: 0.8.7
|
|
91
|
-
|
|
92
|
-
prerelease: false
|
|
93
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
77
|
+
requirement: !ruby/object:Gem::Requirement
|
|
94
78
|
requirements:
|
|
95
79
|
- - '>='
|
|
96
80
|
- !ruby/object:Gem::Version
|
|
97
81
|
version: 0.8.7
|
|
82
|
+
prerelease: false
|
|
83
|
+
type: :development
|
|
98
84
|
- !ruby/object:Gem::Dependency
|
|
99
85
|
name: rspec
|
|
100
|
-
|
|
86
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
101
87
|
requirements:
|
|
102
88
|
- - '>='
|
|
103
89
|
- !ruby/object:Gem::Version
|
|
104
90
|
version: '0'
|
|
105
|
-
|
|
106
|
-
prerelease: false
|
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
|
108
92
|
requirements:
|
|
109
93
|
- - '>='
|
|
110
94
|
- !ruby/object:Gem::Version
|
|
111
95
|
version: '0'
|
|
96
|
+
prerelease: false
|
|
97
|
+
type: :development
|
|
112
98
|
description: Client for REST API with HATEOAS
|
|
113
99
|
email:
|
|
114
100
|
- joseph.halter@thetalentbox.com
|
|
@@ -140,7 +126,7 @@ homepage: https://github.com/TalentBox/harpy
|
|
|
140
126
|
licenses:
|
|
141
127
|
- MIT
|
|
142
128
|
metadata: {}
|
|
143
|
-
post_install_message:
|
|
129
|
+
post_install_message:
|
|
144
130
|
rdoc_options: []
|
|
145
131
|
require_paths:
|
|
146
132
|
- lib
|
|
@@ -155,9 +141,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
155
141
|
- !ruby/object:Gem::Version
|
|
156
142
|
version: '0'
|
|
157
143
|
requirements: []
|
|
158
|
-
rubyforge_project:
|
|
159
|
-
rubygems_version: 2.
|
|
160
|
-
signing_key:
|
|
144
|
+
rubyforge_project:
|
|
145
|
+
rubygems_version: 2.1.9
|
|
146
|
+
signing_key:
|
|
161
147
|
specification_version: 4
|
|
162
148
|
summary: Client for REST API
|
|
163
149
|
test_files:
|