panlex_client 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -1,21 +1,22 @@
1
1
  # panlex\_client
2
- Simple Ruby client for the [public API](http://dev.panlex.org/api/) of the [Panlex Database](http://panlex.org).
2
+
3
+ Simple Ruby client for the [public API](http://dev.panlex.org/api/) of the [PanLex Database](http://panlex.org). It uses [rest-client](https://github.com/adamwiggins/rest-client) gem.
3
4
 
4
5
  ## Usage
5
6
 
6
- Right now, there is just a `PanlexClient` module with only one `query` method with two arguments: the URL parameter and the request body. It returns PanLex API response parsed to a Hash.
7
+ Right now, there is just a `PanlexClient` module with only one `query` method wich takes two arguments: the URL parameter and the request body. It returns PanLex API response parsed to a Hash or raises an exception with the response in it.
7
8
 
8
9
  ```ruby
9
10
  require 'panlex_client'
10
11
 
11
- response = PanlexClient.query 'lv', { :indent => true, :limit => 2 }
12
-
13
- if response['status'] == 'OK' then
12
+ begin
13
+ response = PanlexClient.query 'lv', { :indent => true, :limit => 2 }
14
14
  response['result'].each do |language|
15
- puts language['tt']
15
+ puts language['tt']
16
16
  end
17
+ rescue RestClient::ExceptionWithResponse => e
18
+ puts JSON.parse(e.response)['message']
17
19
  end
18
-
19
20
  ```
20
21
 
21
22
  ## Relase Policy
@@ -8,8 +8,13 @@ module PanlexClient
8
8
  # @param param [String] {http://dev.panlex.org/api/#urlparam PanLex API URL parameter}
9
9
  # @param body [#to_json] The request body which includes the query parameters. Look at the {http://dev.panlex.org/api/#globalparam global optional parameter} and the specifics for each URL parameter
10
10
  # @return [Hash] {http://dev.panlex.org/api/#globalparam PanLex API response}
11
+ # @raise [RestClient::ExceptionWithResponse] if there is an error in the response. You can use e.response to access the PanLex API error response
11
12
  def self.query(param, body)
12
- response = RestClient.post API_URL+param, body.to_json, { 'content-type' => :json, :accept => :json, 'accept-encoding' => 'gzip' }
13
- JSON.parse(response)
13
+ begin
14
+ response = RestClient.post API_URL+param, body.to_json, { 'content-type' => :json, :accept => :json, 'accept-encoding' => 'gzip' }
15
+ JSON.parse(response)
16
+ rescue RestClient::ExceptionWithResponse => e
17
+ raise e
18
+ end
14
19
  end
15
20
  end
data/panlex_client.spec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'panlex_client'
3
- s.version = '0.2.0'
3
+ s.version = '0.3.0'
4
4
  s.summary = 'Client for the PanLex database public API'
5
5
  s.description = 'https://github.com/laMarciana/panlex_client/'
6
6
  s.license = 'GPL3'
@@ -12,4 +12,6 @@ Gem::Specification.new do |s|
12
12
  s.add_runtime_dependency "rest-client", "~>1.6"
13
13
  s.add_runtime_dependency "yard", "~>0.8"
14
14
  s.add_runtime_dependency "redcarpet", "~>2.2"
15
+
16
+ s.add_development_dependency "rspec", "~>2.13"
15
17
  end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe PanlexClient do
4
+ describe "::query" do
5
+ context "when the request is successfully" do
6
+ it "should return PanLex response parsed in a Hash" do
7
+ response = PanlexClient.query 'lv', { limit: 1 }
8
+ response.should be_an_instance_of Hash
9
+ end
10
+ end
11
+
12
+ context "when the request is not successfully" do
13
+ it "should raise an exception with the response" do
14
+ expect { PanlexClient.query 'foo', {} }.to raise_error RestClient::ExceptionWithResponse
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1 @@
1
+ require_relative '../lib/panlex_client'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: panlex_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-04-18 00:00:00.000000000 Z
12
+ date: 2013-05-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '2.2'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '2.13'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '2.13'
62
78
  description: https://github.com/laMarciana/panlex_client/
63
79
  email: marc@lamarciana.com
64
80
  executables: []
@@ -72,6 +88,8 @@ files:
72
88
  - lib/panlex_client.rb
73
89
  - lib/panlex_client/panlex_client.rb
74
90
  - panlex_client.spec
91
+ - spec/lib/panlex_client/panlex_client_spec.rb
92
+ - spec/spec_helper.rb
75
93
  homepage: https://github.com/laMarciana/panlex_client/
76
94
  licenses:
77
95
  - GPL3