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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b4a626b0bb6cc29165f374538446926680004929
4
- data.tar.gz: f8cd5cc204af787401cfb68eb7bfd9122c84c459
3
+ metadata.gz: c7631547c7d39fbec4cd974b8e582b6350b6b216
4
+ data.tar.gz: af1e343ba5e3d16cef171d0b652cd7d22baae4b2
5
5
  SHA512:
6
- metadata.gz: 62cc251d11d4b14ebcc1106bee0f8fef2b21e0e8b6275c22b70ff35101ed1ad0da99aff03b4b26d58fa4a0ec4d5ce9b9cb210dcc3d1ea30b91a61607660a045d
7
- data.tar.gz: dd5e41d029a3a7eefac97d83785a166fa4273cafeaf10d7126de3626d8b93ed20b0f6737f9ab372a6884e5bd9e113dcbb65fbc950a7548815dff0ea1840c969f
6
+ metadata.gz: b5b67c923fa0b726179f0f10c98889861548b106679cd1f9122a8b138b2d66b55434249fa0b7d002a3482094afd03eb3d444da6172210083d0ddb10d73829130
7
+ data.tar.gz: 1aa099c027230a26546a951734bff5f3d0244862b1eddca795e3cc2e8b3a63f1a31b4b90b822a482c942a5698ca1c9a8b32e0bae7fc74a7316652806f97625f7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- heroix (0.2.0)
4
+ heroix (0.2.1)
5
5
  rest-client (~> 1.6.1)
6
6
 
7
7
  GEM
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 = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
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, namespace)
60
+ def build_resource(path, type)
57
61
  Resource.new :url => url_for(path),
58
62
  :token => token,
59
- :namespace => namespace
63
+ :type => type
60
64
  end
61
65
  end
62
66
  end
@@ -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, :namespace
8
+ attr_reader :url, :token, :type
10
9
 
11
10
  def initialize(params)
12
11
  @url = params[:url]
13
12
  @token = params[:token]
14
- @namespace = params[:namespace]
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, url_with_params(params))
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 url_with_params(params)
55
- if params.empty?
56
- url
57
- else
58
- "#{url}?#{query_string(params)}"
59
- end
60
- end
61
-
62
- def query_string(params)
63
- params
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 request(method, url, data = nil)
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 response
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 = { namespace => data } if namespace
74
+ data = { type => data } if data && type
99
75
  data.to_json
100
76
  end
101
77
  end
@@ -1,3 +1,3 @@
1
1
  module Heroix
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
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.0
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: 2014-12-18 00:00:00.000000000 Z
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: