regentanz 0.2.0 → 0.3.3

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/.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