regentanz 0.2.0 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
data/.rvmrc ADDED
@@ -0,0 +1,4 @@
1
+ # vim: ft=bash
2
+ # rvm use 1.9.3-p374
3
+ rvm use 1.8.7-p249
4
+ rvm --create gemset use $(basename $(pwd))
data/CHANGELOG.rdoc CHANGED
@@ -1,5 +1,9 @@
1
1
  == CHANGELOG
2
2
 
3
+ === v0.3.3 // 2013-06-09
4
+ * Remove ActionMailer dependency
5
+ * Gem functionality is defunct as Google shut down their API
6
+
3
7
  === v0.1.4 // 2011-10-14
4
8
  * Fixed bug that caused forecast to have the current day only
5
9
  * present? now properly returns its true state (as opposed to always false)
data/README.rdoc CHANGED
@@ -2,16 +2,15 @@
2
2
  *Regentanz* (German: <i>rain dance</i>) is a Ruby library to connect to Google's
3
3
  innofficial (ie. undocumented and unsupported) weather API.
4
4
 
5
- === Installation
6
- The gem is not published yet and can be installed from github:
7
- git clone git://github.com/kaupertmedia/regentanz.git
8
- cd regentanz
9
- gem build regentanz.gemspec
10
- gem install regentanz-<gemversion>.gem
11
5
 
12
- Much easier using bundler:
6
+ === Discontinued Weather API
7
+ *Notice*: Google has discontinued their weather service.
8
+ The Gem is currently *not* able to return weather data.
9
+
10
+ === Installation
11
+ The gem is available from rubygems, so using bundler "installation" would be:
13
12
  # Gemfile
14
- gem 'regentanz', :git => "git://github.com/carpodaster/regentanz"
13
+ gem 'regentanz'
15
14
 
16
15
  === Usage
17
16
  Supply a location and a language to retrieve weather:
@@ -23,6 +22,10 @@ It uses <b>file-based caching</b> by default, other cache backends will follow.
23
22
  See {Regentanz::Cache::Base}[https://github.com/carpodaster/regentanz/blob/master/lib/regentanz/cache/base.rb]
24
23
  for details (and if you want to create your own backend).
25
24
 
25
+ === Handling API-Errors
26
+
27
+ *TODO* wainting for callbacks
28
+
26
29
  === Configuration
27
30
  *Regentanz* can either be configured through a configure block or directly via
28
31
  its configuration object. It uses sane defaults so there should be no need for
@@ -41,6 +44,11 @@ Direct configuration:
41
44
  See {Regentanz::Configuration}[https://github.com/carpodaster/regentanz/blob/master/lib/regentanz/configuration.rb]
42
45
  for a full list of configurable options.
43
46
 
47
+ === TODO
48
+ * Implement OpenWeatherMap as new backend
49
+ * Finalise callback hooks
50
+ * Make tests pass on Ruby 1.9
51
+
44
52
  === Credits
45
53
  *Regentanz* is based upon and extracted from a standalone Ruby class made for
46
- {berlin.kauperts.de}[http://berlin.kauperts.de] by {kaupert media gmbh}[http://kaupertmedia.de].
54
+ {berlin.kauperts.de}[http://berlin.kauperts.de] by {kaupert media gmbh}[http://kaupertmedia.de].
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'bundler'
3
3
  Bundler::GemHelper.install_tasks
4
4
  require 'rake/testtask'
5
- require 'rake/rdoctask'
5
+ require 'rdoc/task'
6
6
 
7
7
  desc 'Default: run unit tests.'
8
8
  task :default => :test
@@ -1,9 +1,10 @@
1
+ require 'cgi'
2
+ require 'net/http'
3
+ require 'rexml/document'
4
+ require 'ostruct'
5
+
1
6
  module Regentanz
2
7
  class GoogleWeather
3
- require 'net/http'
4
- require 'rexml/document'
5
- require 'ostruct'
6
-
7
8
  include Astronomy
8
9
  include Callbacks
9
10
 
@@ -135,15 +136,14 @@ module Regentanz
135
136
  def retry_after_incorrect_api_reply
136
137
  if !waiting_for_retry? and @cache
137
138
  # We are run for the first time, create the marker file
138
- # TODO remove dependency to SupportMailer class
139
139
  api_failure_detected # callback
140
- SupportMailer.deliver_weather_retry_marker_notification!(self, :set)
140
+ # TODO execute custom callback
141
141
  @cache.set_retry_state!
142
142
  elsif @cache and @cache.unset_retry_state!
143
143
  # Marker file is old enough, delete the (invalid) cache file and remove the marker_file
144
144
  @cache.expire!(@cache_id)
145
145
  api_failure_resumed # callback
146
- SupportMailer.deliver_weather_retry_marker_notification!(self, :unset)
146
+ # TODO execute custom callback
147
147
  end
148
148
  end
149
149
 
@@ -1,4 +1,4 @@
1
1
  module Regentanz
2
- VERSION = "0.2.0"
2
+ VERSION = "0.3.3"
3
3
  end
4
4
 
data/lib/regentanz.rb CHANGED
@@ -1,6 +1,5 @@
1
1
  require 'active_support'
2
2
  require 'active_support/core_ext'
3
- require 'action_mailer'
4
3
  require 'regentanz/version'
5
4
  require 'regentanz/cache'
6
5
  require 'regentanz/configuration'
data/regentanz.gemspec CHANGED
@@ -19,13 +19,12 @@ Gem::Specification.new do |s|
19
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
20
20
  s.require_paths = ["lib"]
21
21
 
22
- s.add_dependency 'actionmailer', '~> 3.0.10'
23
- s.add_dependency 'activesupport', '~> 3.0.10'
22
+ s.add_dependency 'activesupport', '~> 3.0'
24
23
 
25
24
  s.add_development_dependency 'rake'
26
25
  s.add_development_dependency 'mocha'
27
26
  s.add_development_dependency 'bundler'
28
- s.add_development_dependency 'redgreen'
29
- s.add_development_dependency 'factory_girl'
27
+ s.add_development_dependency 'factory_girl', '~> 2.0'
28
+ s.add_development_dependency 'rdoc', '~> 2.4'
30
29
 
31
30
  end
data/test/factories.rb CHANGED
@@ -1,8 +1,6 @@
1
- module Regentanz
2
- module Test
3
- Factory.define :google_weather, :class => Regentanz::GoogleWeather, :default_strategy => :build do |f|
4
- f.location "Testhausen"
5
- f.cache_id "test"
6
- end
1
+ FactoryGirl.define do
2
+ factory :google_weather, :class => Regentanz::GoogleWeather, :default_strategy => :build do |f|
3
+ f.location "Testhausen"
4
+ f.cache_id "test"
7
5
  end
8
6
  end
data/test/test_helper.rb CHANGED
@@ -1,18 +1,14 @@
1
- require "rubygems"
1
+ require 'rubygems'
2
2
  require "bundler/setup"
3
3
 
4
4
  require "test/unit"
5
5
  require "active_support/test_case"
6
- require 'action_mailer/test_helper'
7
6
  Bundler.require(:default, :development)
8
7
  require 'test/factories'
9
8
 
10
- # FIXME move SupportMailer into callbacks
11
- require File.join(File.dirname(__FILE__), 'support', 'support_mailer')
12
-
13
9
  # Configure for test mode
14
10
  require 'regentanz/test_helper'
15
11
  setup_regentanz_test_configuration! do |config|
16
12
  config.cache_dir = File.expand_path(File.join(File.dirname(__FILE__), '', 'support', 'tmp'))
17
13
  config.retry_marker = File.expand_path(File.join(File.dirname(__FILE__), 'support', 'tmp', 'test_api_retry.txt'))
18
- end
14
+ end
@@ -5,8 +5,6 @@ class GoogleWeatherTest < ActiveSupport::TestCase
5
5
  TEST_CACHE_FILE_NAME = File.join(Regentanz.configuration.cache_dir, "regentanz_test.xml")
6
6
 
7
7
  def setup
8
- # FIXME Remove ActionMailer
9
- ActionMailer::Base.deliveries.clear
10
8
  setup_regentanz_test_configuration!
11
9
  end
12
10
 
@@ -35,7 +33,7 @@ class GoogleWeatherTest < ActiveSupport::TestCase
35
33
  assert_kind_of Regentanz.configuration.cache_backend, obj.cache
36
34
  end
37
35
 
38
- test "should enter retry state and send email if invalid xml file has been found" do
36
+ test "should enter retry state if invalid xml file has been found" do
39
37
  stub_valid_xml_api_response!
40
38
  Regentanz::GoogleWeather.any_instance.expects(:api_failure_detected) # callback
41
39
 
@@ -43,10 +41,8 @@ class GoogleWeatherTest < ActiveSupport::TestCase
43
41
  assert !weather.waiting_for_retry?
44
42
  create_invalid_xml_response(TEST_CACHE_FILE_NAME)
45
43
 
46
- assert_difference "ActionMailer::Base.deliveries.size" do
47
- weather.get_weather!
48
- assert weather.waiting_for_retry?
49
- end
44
+ weather.get_weather!
45
+ assert weather.waiting_for_retry?
50
46
  end
51
47
 
52
48
  test "should leave retry state remove invalid cache file when retry_ttl waittime is over" do
@@ -58,10 +54,8 @@ class GoogleWeatherTest < ActiveSupport::TestCase
58
54
  create_invalid_xml_response(TEST_CACHE_FILE_NAME)
59
55
  weather = Factory(:google_weather)
60
56
 
61
- assert_difference "ActionMailer::Base.deliveries.size" do
62
- weather.get_weather!
63
- assert !weather.waiting_for_retry?
64
- end
57
+ weather.get_weather!
58
+ assert !weather.waiting_for_retry?
65
59
  end
66
60
 
67
61
  test "should have lang option" do
metadata CHANGED
@@ -1,136 +1,121 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: regentanz
3
- version: !ruby/object:Gem::Version
4
- hash: 23
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- - 0
10
- version: 0.2.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Carsten Zimmermann
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-30 00:00:00 +01:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
22
- name: actionmailer
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2013-06-09 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: activesupport
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
18
+ requirements:
27
19
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 19
30
- segments:
31
- - 3
32
- - 0
33
- - 10
34
- version: 3.0.10
20
+ - !ruby/object:Gem::Version
21
+ version: '3.0'
35
22
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: activesupport
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
41
25
  none: false
42
- requirements:
26
+ requirements:
43
27
  - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 19
46
- segments:
47
- - 3
48
- - 0
49
- - 10
50
- version: 3.0.10
51
- type: :runtime
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
30
+ - !ruby/object:Gem::Dependency
54
31
  name: rake
55
- prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
57
33
  none: false
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- hash: 3
62
- segments:
63
- - 0
64
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
65
38
  type: :development
66
- version_requirements: *id003
67
- - !ruby/object:Gem::Dependency
68
- name: mocha
69
39
  prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
71
41
  none: false
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- hash: 3
76
- segments:
77
- - 0
78
- version: "0"
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: mocha
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
79
54
  type: :development
80
- version_requirements: *id004
81
- - !ruby/object:Gem::Dependency
82
- name: bundler
83
55
  prerelease: false
84
- requirement: &id005 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
64
+ requirement: !ruby/object:Gem::Requirement
85
65
  none: false
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- hash: 3
90
- segments:
91
- - 0
92
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
93
70
  type: :development
94
- version_requirements: *id005
95
- - !ruby/object:Gem::Dependency
96
- name: redgreen
97
71
  prerelease: false
98
- requirement: &id006 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
99
73
  none: false
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- hash: 3
104
- segments:
105
- - 0
106
- version: "0"
107
- type: :development
108
- version_requirements: *id006
109
- - !ruby/object:Gem::Dependency
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
110
79
  name: factory_girl
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '2.0'
86
+ type: :development
111
87
  prerelease: false
112
- requirement: &id007 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '2.0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: rdoc
96
+ requirement: !ruby/object:Gem::Requirement
113
97
  none: false
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- hash: 3
118
- segments:
119
- - 0
120
- version: "0"
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: '2.4'
121
102
  type: :development
122
- version_requirements: *id007
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '2.4'
123
110
  description: Library to access the Google Weather API
124
- email:
111
+ email:
125
112
  - cz@aegisnet.de
126
113
  executables: []
127
-
128
114
  extensions: []
129
-
130
115
  extra_rdoc_files: []
131
-
132
- files:
116
+ files:
133
117
  - .gitignore
118
+ - .rvmrc
134
119
  - CHANGELOG.rdoc
135
120
  - Gemfile
136
121
  - LICENSE
@@ -155,7 +140,6 @@ files:
155
140
  - lib/regentanz/version.rb
156
141
  - regentanz.gemspec
157
142
  - test/factories.rb
158
- - test/support/support_mailer.rb
159
143
  - test/support/tmp/.gitignore
160
144
  - test/support/valid_response.xml.erb
161
145
  - test/test_helper.rb
@@ -168,43 +152,38 @@ files:
168
152
  - test/unit/forecast_condition_test.rb
169
153
  - test/unit/google_weather_test.rb
170
154
  - test/unit/parser/google_weather_parser_test.rb
171
- has_rdoc: true
172
- homepage: ""
155
+ homepage: ''
173
156
  licenses: []
174
-
175
157
  post_install_message:
176
158
  rdoc_options: []
177
-
178
- require_paths:
159
+ require_paths:
179
160
  - lib
180
- required_ruby_version: !ruby/object:Gem::Requirement
161
+ required_ruby_version: !ruby/object:Gem::Requirement
181
162
  none: false
182
- requirements:
183
- - - ">="
184
- - !ruby/object:Gem::Version
185
- hash: 3
186
- segments:
163
+ requirements:
164
+ - - ! '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ segments:
187
168
  - 0
188
- version: "0"
189
- required_rubygems_version: !ruby/object:Gem::Requirement
169
+ hash: -3677000706019098419
170
+ required_rubygems_version: !ruby/object:Gem::Requirement
190
171
  none: false
191
- requirements:
192
- - - ">="
193
- - !ruby/object:Gem::Version
194
- hash: 3
195
- segments:
172
+ requirements:
173
+ - - ! '>='
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ segments:
196
177
  - 0
197
- version: "0"
178
+ hash: -3677000706019098419
198
179
  requirements: []
199
-
200
180
  rubyforge_project: regentanz
201
- rubygems_version: 1.4.2
181
+ rubygems_version: 1.8.25
202
182
  signing_key:
203
183
  specification_version: 3
204
184
  summary: Library to access the Google Weather API
205
- test_files:
185
+ test_files:
206
186
  - test/factories.rb
207
- - test/support/support_mailer.rb
208
187
  - test/support/tmp/.gitignore
209
188
  - test/support/valid_response.xml.erb
210
189
  - test/test_helper.rb
@@ -1,7 +0,0 @@
1
- class SupportMailer
2
-
3
- def self.deliver_weather_retry_marker_notification!(weather_obj, mode)
4
- ActionMailer::Base.deliveries << "fake mail"
5
- end
6
-
7
- end