heroix 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|