factual-api 1.3.3 → 1.3.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## v1.3.4
2
+ * multi requests as POST
3
+
1
4
  ## v1.3.3
2
5
  * fixed bug in multi #12
3
6
 
data/lib/factual/api.rb CHANGED
@@ -4,7 +4,7 @@ require 'timeout'
4
4
 
5
5
  class Factual
6
6
  class API
7
- VERSION = "1.3.3"
7
+ VERSION = "1.3.4"
8
8
  API_V3_HOST = "api.v3.factual.com"
9
9
  DRIVER_VERSION_TAG = "factual-ruby-driver-v" + VERSION
10
10
  PARAM_ALIASES = { :search => :q, :sort_asc => :sort }
@@ -22,9 +22,7 @@ class Factual
22
22
  end
23
23
 
24
24
  def post(request)
25
- response = make_request("http://" + @host + request.path, request.body, :post)
26
- payload = JSON.parse(response.body)
27
- handle_payload(payload)
25
+ handle_request(nil, request.path, request.body, :post)
28
26
  end
29
27
 
30
28
  def schema(query)
@@ -68,12 +66,17 @@ class Factual
68
66
 
69
67
  private
70
68
 
71
- def handle_request(action, path, params)
72
- url = "http://#{@host}" + full_path(action, path, params)
73
-
74
- payload = JSON.parse(make_request(url).body)
69
+ def handle_request(action, path, params, method=:get)
70
+ if (method == :get)
71
+ url = "http://#{@host}" + full_path(action, path, params)
72
+ req = make_request(url)
73
+ else
74
+ url = "http://#{@host}#{path}"
75
+ req = make_request(url, params, :post)
76
+ end
77
+ payload = JSON.parse(req.body)
75
78
 
76
- if (path == :multi)
79
+ if (path == '/multi')
77
80
  payload.inject({}) do |res, item|
78
81
  name, p = item
79
82
  res[name] = handle_payload(p)
data/lib/factual/multi.rb CHANGED
@@ -1,20 +1,19 @@
1
1
  class Factual
2
2
  class Multi
3
- attr_reader :action, :path, :params
3
+ attr_reader :action, :path
4
4
 
5
5
  def initialize(api, queries)
6
6
  @api = api
7
7
  @queries = queries
8
8
 
9
9
  @action = nil
10
- @path = :multi
11
- @params = queries_param
10
+ @path = '/multi'
12
11
 
13
12
  @responses = {}
14
13
  end
15
14
 
16
15
  def send
17
- res = @api.get(self)
16
+ res = @api.post(self)
18
17
  @queries.each do |name, query|
19
18
  query.populate(res[name.to_s])
20
19
  @responses[name] = query
@@ -23,15 +22,13 @@ class Factual
23
22
  @responses
24
23
  end
25
24
 
26
- private
27
-
28
- def queries_param
25
+ def body
29
26
  query_urls = {}
30
27
  @queries.each do |name, query|
31
28
  query_urls[name] = query.full_path
32
29
  end
33
30
 
34
- { :queries => query_urls }
31
+ "queries=#{ CGI.escape(query_urls.to_json) }"
35
32
  end
36
33
 
37
34
  end
@@ -9,7 +9,7 @@ class Factual
9
9
  super(api, params)
10
10
  end
11
11
 
12
- [:values, :include_count].each do |param|
12
+ [:values].each do |param|
13
13
  define_method(param) do |*args|
14
14
  self.class.new(@api, @params.merge(param => form_value(args)))
15
15
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factual-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.3.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-01-09 00:00:00.000000000 Z
13
+ date: 2013-01-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: oauth