zeit 0.0.1pre2 → 0.0.1

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/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zeit (0.0.1pre2)
4
+ zeit (0.0.1)
5
5
  faraday
6
6
 
7
7
  GEM
@@ -20,6 +20,7 @@ GEM
20
20
  guard-rspec (2.1.2)
21
21
  guard (>= 1.1)
22
22
  rspec (~> 2.11)
23
+ json (1.7.5)
23
24
  listen (0.6.0)
24
25
  lumberjack (1.0.2)
25
26
  method_source (0.8.1)
@@ -40,6 +41,7 @@ GEM
40
41
  slop (3.3.3)
41
42
  thor (0.16.0)
42
43
  vcr (2.3.0)
44
+ yard (0.8.3)
43
45
 
44
46
  PLATFORMS
45
47
  ruby
@@ -48,7 +50,9 @@ DEPENDENCIES
48
50
  bundler (~> 1.0)
49
51
  fakeweb (~> 1.3.0)
50
52
  guard-rspec (~> 2.1.2)
53
+ json (~> 1.7.5)
51
54
  rb-fsevent
52
55
  rspec (~> 2.12.0)
53
56
  vcr (~> 2.3.0)
57
+ yard
54
58
  zeit!
data/README.md CHANGED
@@ -1,6 +1,13 @@
1
1
  # Zeit
2
2
 
3
- TODO: Write a gem description
3
+ This gem is a ruby client for the Zeit.de API (http://developer.zeit.de/).
4
+
5
+ The german newspaper "Die Zeit" recently announced a so called "content
6
+ API" to access their large collection of printed and online articles of
7
+ the past years. To access thir API you'll have to create an api-key which allows you to
8
+ make 10.000 requests per day, free of charge for non-commercial usage.
9
+
10
+ See http://developer.zeit.de/quickstart/
4
11
 
5
12
  ## Installation
6
13
 
@@ -18,7 +25,49 @@ Or install it yourself as:
18
25
 
19
26
  ## Usage
20
27
 
21
- TODO: Write usage instructions here
28
+
29
+ require 'zeit'
30
+ require 'json'
31
+
32
+ zeit = Zeit::API.new :api_key => 'aaabbccccdddeeeeeeffgggg'
33
+
34
+ # author
35
+ result = zeit.author.find '*Schmidt*'
36
+
37
+ data = JSON.parse(result.body)
38
+ data['matches'].inspect
39
+
40
+ # content
41
+ result = zeit.content.find '*Software*', :limit => 200, :offset => 100
42
+
43
+ data = JSON.parse(result.body)
44
+ data['matches'].inspect
45
+
46
+ # department
47
+ result = zeit.department.find '*internet*'
48
+ ...
49
+
50
+ # keyword
51
+ result = zeit.keyword.find '*internet*'
52
+ ...
53
+
54
+ # product
55
+ result = zeit.product.find '*ZEIT*'
56
+
57
+ # series
58
+ result = zeit.series.find 'Die*'
59
+
60
+ # client
61
+ result = zeit.client.get
62
+ data = JSON.parse(result.body)
63
+ # => {"reset"=>1353785293,
64
+ # "name"=>"my name",
65
+ # "quota"=>10000,
66
+ # "tier"=>"free",
67
+ # "requests"=>192,
68
+ # "api_key"=>"aaaaaaaabbbbbbbbbbcccc",
69
+ # "email"=>"email@example.com"}
70
+
22
71
 
23
72
  ## Contributing
24
73
 
data/lib/zeit/api.rb CHANGED
@@ -3,6 +3,7 @@ module Zeit
3
3
 
4
4
  def initialize(params = {})
5
5
  @api_key = params[:api_key]
6
+ @debug = params[:debug]
6
7
  @base_url = params[:base_url] || 'http://api.zeit.de/'
7
8
  @faraday_adapter = params[:faraday_adapter] || Faraday.default_adapter
8
9
 
@@ -12,10 +13,10 @@ module Zeit
12
13
  end
13
14
 
14
15
  def connection
15
- @connection ||= Faraday.new(url: @base_url) do |faraday|
16
+ @connection ||= Faraday.new(:url => @base_url) do |faraday|
16
17
  faraday.use Zeit::AuthenticationMiddleware, @api_key
17
18
  faraday.request :url_encoded
18
- faraday.response :logger
19
+ faraday.response(:logger) if @debug
19
20
  faraday.adapter @faraday_adapter
20
21
  end
21
22
  end
@@ -1,7 +1,8 @@
1
1
  module Zeit
2
2
  module Resources
3
3
  class Author < Base
4
- def find(query, opts = {})
4
+ def find(q, opts = {})
5
+ opts[:q] = q
5
6
  @connection.get '/author' do |query|
6
7
  apply_params(query, opts)
7
8
  end
data/lib/zeit/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Zeit
2
- VERSION = "0.0.1pre2"
2
+ VERSION = "0.0.1"
3
3
  end
@@ -7,7 +7,7 @@ describe Zeit::Resources::Author, :vcr do
7
7
  context 'with a simple query' do
8
8
  it_behaves_like 'a resource response' do
9
9
  subject { Zeit::Resources::Author.new(api_connection).find(query) }
10
- let(:query) { '*Helmut*Schmidt*' }
10
+ let(:query) { '*Schmidt*' }
11
11
 
12
12
  context 'when authorized' do
13
13
  it_behaves_like 'a successful response with some matches'
data/spec/spec_helper.rb CHANGED
@@ -12,10 +12,10 @@ Dir["./spec/support/**/*.rb"].sort.each {|f| require f}
12
12
 
13
13
  def authorized_api_client
14
14
  key = ENV['ZEIT_API_KEY'] || 'working'
15
- Zeit::API.new api_key: key
15
+ Zeit::API.new :api_key => key
16
16
  end
17
17
 
18
18
  def unauthorized_api_client
19
- Zeit::API.new api_key: 'felix_von_springer' # bild.css
19
+ Zeit::API.new :api_key => 'felix_von_springer' # bild.css
20
20
  end
21
21
 
data/zeit.gemspec CHANGED
@@ -24,9 +24,11 @@ Gem::Specification.new do |gem|
24
24
  gem.add_dependency 'faraday'
25
25
 
26
26
  gem.add_development_dependency 'bundler', '~> 1.0'
27
+ gem.add_development_dependency 'json', '~> 1.7.5'
27
28
  gem.add_development_dependency 'rspec', '~> 2.12.0'
28
29
  gem.add_development_dependency 'guard-rspec', '~> 2.1.2'
29
30
  gem.add_development_dependency 'rb-fsevent'
30
31
  gem.add_development_dependency 'vcr', '~> 2.3.0'
31
32
  gem.add_development_dependency 'fakeweb', '~> 1.3.0'
33
+ gem.add_development_dependency 'yard'
32
34
  end
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zeit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1pre2
5
- prerelease: 5
4
+ version: 0.0.1
5
+ prerelease:
6
6
  platform: ruby
7
7
  authors:
8
8
  - Roland Moriz
@@ -43,6 +43,22 @@ dependencies:
43
43
  - - ~>
44
44
  - !ruby/object:Gem::Version
45
45
  version: '1.0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: json
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.7.5
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.7.5
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: rspec
48
64
  requirement: !ruby/object:Gem::Requirement
@@ -123,6 +139,22 @@ dependencies:
123
139
  - - ~>
124
140
  - !ruby/object:Gem::Version
125
141
  version: 1.3.0
142
+ - !ruby/object:Gem::Dependency
143
+ name: yard
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
149
+ version: '0'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ! '>='
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
126
158
  description: API client for Zeit.de API
127
159
  email:
128
160
  - roland@moriz.de
@@ -176,13 +208,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
176
208
  version: '0'
177
209
  segments:
178
210
  - 0
179
- hash: -777588896169395003
211
+ hash: 1998897930141795511
180
212
  required_rubygems_version: !ruby/object:Gem::Requirement
181
213
  none: false
182
214
  requirements:
183
- - - ! '>'
215
+ - - ! '>='
184
216
  - !ruby/object:Gem::Version
185
- version: 1.3.1
217
+ version: '0'
218
+ segments:
219
+ - 0
220
+ hash: 1998897930141795511
186
221
  requirements: []
187
222
  rubyforge_project:
188
223
  rubygems_version: 1.8.23
@@ -201,3 +236,4 @@ test_files:
201
236
  - spec/spec_helper.rb
202
237
  - spec/support/shared_examples_for_resources.rb
203
238
  - spec/support/vcr.rb
239
+ has_rdoc: