leipzig 0.0.1 → 0.0.2
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.
- data/README.md +14 -1
- data/lib/leipzig/client.rb +4 -15
- data/lib/leipzig/mediahandbook.rb +25 -0
- data/lib/leipzig/version.rb +1 -1
- data/lib/leipzig.rb +1 -4
- data/spec/leipzig/{client_spec.rb → mediahandbook_spec.rb} +4 -4
- metadata +6 -5
data/README.md
CHANGED
@@ -31,7 +31,7 @@ require 'leipzig'
|
|
31
31
|
|
32
32
|
key = 'my-key'
|
33
33
|
|
34
|
-
client = Leipzig::
|
34
|
+
client = Leipzig::Mediahandbook.new(key)
|
35
35
|
|
36
36
|
companies = client.find_companies(:postcode => '04103')
|
37
37
|
branches = client.find_branches(:limit => 5)
|
@@ -41,6 +41,13 @@ people = client.find_people(:offset => 100)
|
|
41
41
|
All `find` methods except a hash of params which are used to change the result set. See [this link](http://www.apileipzig.de/wiki/show/allgemeineParameter) for more
|
42
42
|
information about available params.
|
43
43
|
|
44
|
+
The result set is always an array containing OpenStruct objects so one can access entry data like properties:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
client.find_companies(:limit => 10).first.name
|
48
|
+
# ==> First company's name
|
49
|
+
```
|
50
|
+
|
44
51
|
## Note
|
45
52
|
|
46
53
|
At the moment only the mediahandbook entries are supported.
|
@@ -62,6 +69,12 @@ $ API_KEY='my-key' rake
|
|
62
69
|
6. Push to the branch
|
63
70
|
7. Create new Pull Request
|
64
71
|
|
72
|
+
## Todo
|
73
|
+
|
74
|
+
* Support for whole API and all available resources
|
75
|
+
* Refactoring
|
76
|
+
* Maybe model layer instead of OpenStruct?
|
77
|
+
|
65
78
|
## License
|
66
79
|
|
67
80
|
(The MIT License)
|
data/lib/leipzig/client.rb
CHANGED
@@ -4,28 +4,17 @@ require 'ostruct'
|
|
4
4
|
|
5
5
|
module Leipzig
|
6
6
|
class Client
|
7
|
-
TYPES = [:companies, :branches, :people]
|
8
|
-
API_URL = 'http://www.apileipzig.de/api/v1/mediahandbook/'
|
9
|
-
|
10
7
|
attr_reader :api_key
|
11
8
|
|
12
|
-
TYPES.each do |type|
|
13
|
-
define_method "find_#{type}" do |*args|
|
14
|
-
find(type, *args)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
9
|
def initialize(api_key)
|
19
10
|
@api_key = api_key
|
20
|
-
@options = {
|
11
|
+
@options = {}
|
21
12
|
end
|
22
13
|
|
23
|
-
|
24
|
-
raise "Type #{type} is invalid" unless TYPES.include?(type.to_sym)
|
25
|
-
|
26
|
-
uri = "#{API_URL}#{type}/search"
|
14
|
+
private
|
27
15
|
|
28
|
-
|
16
|
+
def request(uri, params)
|
17
|
+
result = JSON.parse RestClient.get(uri, :params => @options.merge(params))
|
29
18
|
|
30
19
|
if result.has_key? "error"
|
31
20
|
raise "Webservice returned error for uri '#{uri}': #{result['error']}"
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'leipzig/client'
|
2
|
+
|
3
|
+
module Leipzig
|
4
|
+
class Mediahandbook < Leipzig::Client
|
5
|
+
|
6
|
+
TYPES = [:companies, :branches, :people]
|
7
|
+
API_URL = 'http://www.apileipzig.de/api/v1/mediahandbook/'
|
8
|
+
|
9
|
+
TYPES.each do |type|
|
10
|
+
define_method "find_#{type}" do |*args|
|
11
|
+
find(type, *args)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def initialize(api_key)
|
16
|
+
super
|
17
|
+
@options = { :limit => 10, :name => 'leipzig', :api_key => @api_key }
|
18
|
+
end
|
19
|
+
|
20
|
+
def find(type, conditions)
|
21
|
+
raise "Type #{type} is invalid" unless TYPES.include?(type.to_sym)
|
22
|
+
request("#{API_URL}#{type}/search", conditions)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/leipzig/version.rb
CHANGED
data/lib/leipzig.rb
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
-
require 'leipzig/
|
1
|
+
require 'leipzig/mediahandbook'
|
2
2
|
|
3
3
|
KEY = ENV['API_KEY']
|
4
4
|
LIMIT = 5
|
5
5
|
|
6
|
-
describe '
|
7
|
-
let(:client) { Leipzig::
|
6
|
+
describe 'Mediahandbook' do
|
7
|
+
let(:client) { Leipzig::Mediahandbook.new(KEY) }
|
8
8
|
|
9
9
|
it 'returns given API key' do
|
10
10
|
client.api_key.should eq(KEY)
|
@@ -29,7 +29,7 @@ describe 'Client' do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'raises exception if invalid key is used' do
|
32
|
-
lambda { Leipzig::
|
32
|
+
lambda { Leipzig::Mediahandbook.new('wrong').find_companies }.should raise_error
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'raises exception if undefined method is called' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leipzig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -75,8 +75,9 @@ files:
|
|
75
75
|
- leipzig.gemspec
|
76
76
|
- lib/leipzig.rb
|
77
77
|
- lib/leipzig/client.rb
|
78
|
+
- lib/leipzig/mediahandbook.rb
|
78
79
|
- lib/leipzig/version.rb
|
79
|
-
- spec/leipzig/
|
80
|
+
- spec/leipzig/mediahandbook_spec.rb
|
80
81
|
- spec/leipzig/spec_helper.rb
|
81
82
|
- spec/leipzig/version_spec.rb
|
82
83
|
homepage: ''
|
@@ -93,7 +94,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
93
94
|
version: '0'
|
94
95
|
segments:
|
95
96
|
- 0
|
96
|
-
hash: -
|
97
|
+
hash: -3565537231393772397
|
97
98
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
99
|
none: false
|
99
100
|
requirements:
|
@@ -102,7 +103,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
102
103
|
version: '0'
|
103
104
|
segments:
|
104
105
|
- 0
|
105
|
-
hash: -
|
106
|
+
hash: -3565537231393772397
|
106
107
|
requirements: []
|
107
108
|
rubyforge_project:
|
108
109
|
rubygems_version: 1.8.24
|
@@ -110,6 +111,6 @@ signing_key:
|
|
110
111
|
specification_version: 3
|
111
112
|
summary: Tiny client for API Leipzig
|
112
113
|
test_files:
|
113
|
-
- spec/leipzig/
|
114
|
+
- spec/leipzig/mediahandbook_spec.rb
|
114
115
|
- spec/leipzig/spec_helper.rb
|
115
116
|
- spec/leipzig/version_spec.rb
|