heroix 0.2.0 → 0.2.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 +4 -4
- data/Gemfile.lock +1 -1
- data/heroix.gemspec +1 -1
- data/lib/heroix.rb +6 -2
- data/lib/heroix/resource.rb +18 -42
- data/lib/heroix/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7631547c7d39fbec4cd974b8e582b6350b6b216
|
4
|
+
data.tar.gz: af1e343ba5e3d16cef171d0b652cd7d22baae4b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b5b67c923fa0b726179f0f10c98889861548b106679cd1f9122a8b138b2d66b55434249fa0b7d002a3482094afd03eb3d444da6172210083d0ddb10d73829130
|
7
|
+
data.tar.gz: 1aa099c027230a26546a951734bff5f3d0244862b1eddca795e3cc2e8b3a63f1a31b4b90b822a482c942a5698ca1c9a8b32e0bae7fc74a7316652806f97625f7
|
data/Gemfile.lock
CHANGED
data/heroix.gemspec
CHANGED
@@ -14,7 +14,7 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0")
|
17
|
-
spec.executables =
|
17
|
+
spec.executables = []
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
data/lib/heroix.rb
CHANGED
@@ -51,12 +51,16 @@ module Heroix
|
|
51
51
|
build_resource :microsite_pages, :microsite_page
|
52
52
|
end
|
53
53
|
|
54
|
+
def search(type, params)
|
55
|
+
build_resource("search/#{type}", type).index(params).fetch(type, [])
|
56
|
+
end
|
57
|
+
|
54
58
|
private
|
55
59
|
|
56
|
-
def build_resource(path,
|
60
|
+
def build_resource(path, type)
|
57
61
|
Resource.new :url => url_for(path),
|
58
62
|
:token => token,
|
59
|
-
:
|
63
|
+
:type => type
|
60
64
|
end
|
61
65
|
end
|
62
66
|
end
|
data/lib/heroix/resource.rb
CHANGED
@@ -1,17 +1,16 @@
|
|
1
1
|
require 'rest_client'
|
2
|
-
require 'cgi'
|
3
2
|
require 'json'
|
4
3
|
|
5
4
|
module Heroix
|
6
5
|
Unauthorized = RestClient::Unauthorized
|
7
6
|
|
8
7
|
class Resource
|
9
|
-
attr_reader :url, :token, :
|
8
|
+
attr_reader :url, :token, :type
|
10
9
|
|
11
10
|
def initialize(params)
|
12
11
|
@url = params[:url]
|
13
12
|
@token = params[:token]
|
14
|
-
@
|
13
|
+
@type = params[:type]
|
15
14
|
end
|
16
15
|
|
17
16
|
def with_token(value)
|
@@ -19,12 +18,8 @@ module Heroix
|
|
19
18
|
self
|
20
19
|
end
|
21
20
|
|
22
|
-
def resource
|
23
|
-
@resource ||= JSON.parse RestClient.get(url)
|
24
|
-
end
|
25
|
-
|
26
21
|
def index(params = {})
|
27
|
-
request(:get,
|
22
|
+
request(:get, url, :query => params)
|
28
23
|
end
|
29
24
|
|
30
25
|
def show(id)
|
@@ -32,11 +27,11 @@ module Heroix
|
|
32
27
|
end
|
33
28
|
|
34
29
|
def create(data)
|
35
|
-
request(:post, url, data)
|
30
|
+
request(:post, url, :data => data)
|
36
31
|
end
|
37
32
|
|
38
33
|
def update(id, data)
|
39
|
-
request(:put, url_for(id), data)
|
34
|
+
request(:put, url_for(id), :data => data)
|
40
35
|
end
|
41
36
|
|
42
37
|
def delete(id)
|
@@ -51,27 +46,19 @@ module Heroix
|
|
51
46
|
|
52
47
|
private
|
53
48
|
|
54
|
-
def
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
.map { |key, value| "#{escape(key)}=#{escape(value)}" }
|
65
|
-
.join('&')
|
66
|
-
end
|
67
|
-
|
68
|
-
def escape(value)
|
69
|
-
CGI.escape(value.to_s)
|
49
|
+
def request(method, url, options = {})
|
50
|
+
handle RestClient::Request.execute(
|
51
|
+
:method => method,
|
52
|
+
:url => url,
|
53
|
+
:payload => prepare_data(options[:data]),
|
54
|
+
:headers => {
|
55
|
+
:authorization => "Token token=\"#{token}\"",
|
56
|
+
:content_type => :json, :params => options[:query]
|
57
|
+
}
|
58
|
+
)
|
70
59
|
end
|
71
60
|
|
72
|
-
def
|
73
|
-
response = RestClient.send(method, url, *request_args(data))
|
74
|
-
|
61
|
+
def handle(response)
|
75
62
|
deprecation = response.headers[:x_deprecation]
|
76
63
|
puts "[heroix] DEPRECATION WARNING #{deprecation}" if deprecation
|
77
64
|
|
@@ -80,22 +67,11 @@ module Heroix
|
|
80
67
|
|
81
68
|
def parse_response(response)
|
82
69
|
return {} if response.empty?
|
83
|
-
JSON.parse
|
84
|
-
end
|
85
|
-
|
86
|
-
def request_args(data)
|
87
|
-
headers = { 'Authorization' => "Token token=\"#{token}\"" }
|
88
|
-
args = []
|
89
|
-
|
90
|
-
if data
|
91
|
-
args << prepare_data(data)
|
92
|
-
headers[:content_type] = :json
|
93
|
-
end
|
94
|
-
args << headers
|
70
|
+
JSON.parse(response)
|
95
71
|
end
|
96
72
|
|
97
73
|
def prepare_data(data)
|
98
|
-
data = {
|
74
|
+
data = { type => data } if data && type
|
99
75
|
data.to_json
|
100
76
|
end
|
101
77
|
end
|
data/lib/heroix/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heroix
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Leon Fu
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2015-01-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rest-client
|
@@ -85,8 +85,7 @@ dependencies:
|
|
85
85
|
description: Heroix global client
|
86
86
|
email:
|
87
87
|
- edh-dev@everydayhero.com.au
|
88
|
-
executables:
|
89
|
-
- ci
|
88
|
+
executables: []
|
90
89
|
extensions: []
|
91
90
|
extra_rdoc_files: []
|
92
91
|
files:
|