weatherzone 0.7.2 → 0.8.0

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/Manifest.txt CHANGED
@@ -36,13 +36,6 @@ lib/weatherzone/resources/snow_report.rb
36
36
  lib/weatherzone/resources/surf_report.rb
37
37
  lib/weatherzone/resources/warning.rb
38
38
  lib/weatherzone/resources/weather.rb
39
- lib/vendor/openuri_memcached/History.txt
40
- lib/vendor/openuri_memcached/License.txt
41
- lib/vendor/openuri_memcached/README.markdown
42
- lib/vendor/openuri_memcached/lib/openuri_memcached.rb
43
- lib/vendor/openuri_memcached/lib/openuri/common.rb
44
- lib/vendor/openuri_memcached/lib/openuri/memcached.rb
45
- lib/vendor/openuri_memcached/lib/openuri/rails-cache.rb
46
39
  lib/tzinfo/definitions/Australia/CDT.rb
47
40
  lib/tzinfo/definitions/Australia/CST.rb
48
41
  lib/tzinfo/definitions/Australia/EDT.rb
@@ -30,6 +30,7 @@ module Weatherzone
30
30
  @keygen = keygen
31
31
  @logger = options[:logger]
32
32
  @timeout_after = options[:timeout_after] || DEFAULT_TIMEOUT_AFTER
33
+ @http = Net::HTTP::Persistent.new
33
34
  end
34
35
 
35
36
  def self.settings
@@ -53,11 +54,11 @@ module Weatherzone
53
54
  end
54
55
 
55
56
  def request(params)
56
- url = wz_url_for(params)
57
- info("GET #{url}")
57
+ uri = URI.parse(wz_url_for(params))
58
+ info("GET #{uri}")
58
59
  timeout(self.timeout_after) do
59
- response = OpenURI::open(url)
60
- response.read
60
+ response = @http.request(uri)
61
+ response.body
61
62
  end
62
63
  rescue Timeout::Error, SocketError => e
63
64
  error("webservice connection failed #{e}")
data/lib/weatherzone.rb CHANGED
@@ -8,20 +8,7 @@ require 'timeout'
8
8
  require 'nokogiri'
9
9
  require 'sax-machine'
10
10
  require 'tzinfo'
11
-
12
- begin
13
- $LOAD_PATH << File.join(File.dirname(__FILE__), *%w[vendor openuri_memcached lib])
14
- if defined? Rails
15
- require 'openuri/rails-cache'
16
- else
17
- require 'openuri/memcached'
18
- # Cache for 10 minutes. The web service caches for the same period, so this ensures we've always got
19
- # the freshest data and the speediest response.
20
- OpenURI::Cache.expiry = 600
21
- end
22
- rescue LoadError
23
- require 'open-uri'
24
- end
11
+ require 'net/http/persistent'
25
12
 
26
13
  unless defined?(ActiveSupport)
27
14
  require 'ext/class'
@@ -35,5 +22,5 @@ require 'weatherzone/helpers/date_parser'
35
22
  require 'weatherzone/helpers/units'
36
23
 
37
24
  module Weatherzone
38
- VERSION = '0.7.2'
25
+ VERSION = '0.8.0'
39
26
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 7
8
- - 2
9
- version: 0.7.2
7
+ - 8
8
+ - 0
9
+ version: 0.8.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ben Askins
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-05-05 00:00:00 +10:00
17
+ date: 2010-05-10 00:00:00 +10:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -42,8 +42,6 @@ extra_rdoc_files:
42
42
  - History.txt
43
43
  - Manifest.txt
44
44
  - README.txt
45
- - lib/vendor/openuri_memcached/History.txt
46
- - lib/vendor/openuri_memcached/License.txt
47
45
  files:
48
46
  - History.txt
49
47
  - Manifest.txt
@@ -83,13 +81,6 @@ files:
83
81
  - lib/weatherzone/resources/surf_report.rb
84
82
  - lib/weatherzone/resources/warning.rb
85
83
  - lib/weatherzone/resources/weather.rb
86
- - lib/vendor/openuri_memcached/History.txt
87
- - lib/vendor/openuri_memcached/License.txt
88
- - lib/vendor/openuri_memcached/README.markdown
89
- - lib/vendor/openuri_memcached/lib/openuri_memcached.rb
90
- - lib/vendor/openuri_memcached/lib/openuri/common.rb
91
- - lib/vendor/openuri_memcached/lib/openuri/memcached.rb
92
- - lib/vendor/openuri_memcached/lib/openuri/rails-cache.rb
93
84
  - lib/tzinfo/definitions/Australia/CDT.rb
94
85
  - lib/tzinfo/definitions/Australia/CST.rb
95
86
  - lib/tzinfo/definitions/Australia/EDT.rb
@@ -1,18 +0,0 @@
1
- == 0.2.0 2009-01-23
2
- * Include support for Rails.cache
3
-
4
- == 0.1.0 2008-04-17
5
- * Included Evan Weaver's Memcached C wrapper for a healthy speed improvement
6
-
7
- == 0.0.3 2008-01-18
8
- * Caches are now stored by the uri as the key like they originally were
9
-
10
- == 0.0.2 2008-01-15
11
- * Some moron forgot to write the dependency list correctly for 0.0.1
12
-
13
-
14
- == 0.0.1 2008-01-14
15
-
16
- * Inital release:
17
- * Proof of concept come used library for a personal project
18
-
@@ -1,20 +0,0 @@
1
- Copyright (c) 2008-2009 Ben Schwarz
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,48 +0,0 @@
1
- # OpenURI with caching
2
-
3
- Carelessly make OpenURI requests without getting hate mail.
4
-
5
- ## Running with MemCached
6
-
7
- Require the library
8
-
9
- require 'openuri/memcached'
10
-
11
- Start memcached server
12
-
13
- ben@Spinners ~/ Ϟ memcached -d
14
-
15
- Set your memcached host/s (defaults to 127.0.0.1:11211)
16
-
17
- OpenURI::Cache.host = ['10.1.1.10:11211', '10.1.1.11:11211']
18
-
19
- The default expiry is 15 minutes, this can be changed using the `expiry` method
20
-
21
- # Ten long minutes
22
- OpenURI::Cache.expiry = 600
23
-
24
- ## Running using Rails cache
25
-
26
- You can also cache your OpenURI calls using Rails cache.
27
- require the library using `require openuri/rails-cache`
28
-
29
- ### Execution
30
- Use exactly the same as you would OpenURI, only.. enable it.
31
-
32
- OpenURI::Cache.enable!
33
- # As slow a wet week
34
- open("http://ab-c.com.au").read
35
-
36
- Quit your app (leave memcached running) and re-run the same request, It will come from cache.
37
-
38
- ### Requirements
39
-
40
- * Ruby
41
- * MemCached
42
- * memcache (gem)
43
- * You will need to ensure that you have [corresponding version](http://blog.evanweaver.com/files/doc/fauna/memcached/files/COMPATIBILITY.html) of libmemcached to the memcached gem installed for installation to go by breezy
44
-
45
- ### Contributors
46
-
47
- * [Ben Askins](http://github.com/benaskins)
48
- * [Rick Olson](http://github.com/technoweenie)
@@ -1,117 +0,0 @@
1
- require 'open-uri'
2
-
3
- module Kernel
4
- private
5
- alias openuri_original_open open
6
- def open(name, *rest, &block)
7
- if name.respond_to?(:open)
8
- name.open(*rest, &block)
9
- elsif name.respond_to?(:to_str) &&
10
- %r{\A[A-Za-z][A-Za-z0-9+\-\.]*://} =~ name &&
11
- (uri = URI.parse(name)).respond_to?(:open)
12
- OpenURI::open(name, *rest, &block)
13
- else
14
- open_uri_original_open(name, *rest, &block)
15
- end
16
- end
17
- module_function :open, :openuri_original_open
18
- end
19
-
20
- module OpenURI
21
- alias original_open open #:nodoc:
22
- def self.open(uri, *rest, &block)
23
- if Cache.enabled?
24
- response = Cache.get(Cache.key_for(uri))
25
- end
26
-
27
- unless response
28
- response = openuri_original_open(uri, *rest).read
29
- Cache.set(Cache.key_for(uri), response) if Cache.enabled?
30
- end
31
-
32
- response = StringIO.new(response)
33
-
34
- if block_given?
35
- begin
36
- yield response
37
- ensure
38
- response.close
39
- end
40
- else
41
- response
42
- end
43
- end
44
-
45
- class Cache
46
-
47
- class KeyHash
48
- def self.enable!
49
- @hash_keys = true
50
- end
51
-
52
- def self.disable!
53
- @hash_keys = false
54
- end
55
-
56
- def self.enabled?
57
- @hash_keys
58
- end
59
-
60
- def self.disabled?
61
- !@hash_keys
62
- end
63
-
64
- def self.generate(uri)
65
- Digest::MD5.hexdigest(uri)
66
- end
67
- end
68
-
69
- # Cache is not enabled by default
70
- @cache_enabled = false
71
-
72
- class << self
73
- attr_writer :expiry, :host
74
-
75
- # Is the cache enabled?
76
- def enabled?
77
- @cache_enabled
78
- end
79
-
80
- # Enable caching
81
- def enable!
82
- raise NotImplementedError
83
- end
84
-
85
- # Disable caching - all queries will be run directly
86
- # using the standard OpenURI `open` method.
87
- def disable!
88
- @cache_enabled = false
89
- end
90
-
91
- def disabled?
92
- !@cache_enabled
93
- end
94
-
95
- def get(key)
96
- raise NotImplementedError
97
- end
98
-
99
- def set(key, value)
100
- raise NotImplementedError
101
- end
102
-
103
- def key_for(uri)
104
- Cache::KeyHash.enabled? ? Cache::KeyHash.generate(uri.to_s) : uri.to_s
105
- end
106
-
107
- # How long your caches will be kept for (in seconds)
108
- def expiry
109
- @expiry ||= 60 * 10
110
- end
111
-
112
- def host
113
- @host ||= "127.0.0.1:11211"
114
- end
115
- end
116
- end
117
- end
@@ -1,36 +0,0 @@
1
- require 'openuri/common'
2
-
3
- begin
4
- require 'minigems'
5
- rescue LoadError
6
- require 'rubygems'
7
- end
8
-
9
- gem "memcached", ">= 0.10"
10
- require 'memcached'
11
-
12
- module OpenURI
13
- class Cache
14
- class << self
15
- # Enable caching
16
- def enable!
17
- @cache ||= Memcached.new(host, {
18
- :namespace => 'openuri',
19
- :no_block => true,
20
- :buffer_requests => true
21
- })
22
- @cache_enabled = true
23
- end
24
-
25
- def get(key)
26
- @cache.get(key)
27
- rescue Memcached::NotFound
28
- false
29
- end
30
-
31
- def set(key, value)
32
- @cache.set(key, value, expiry)
33
- end
34
- end
35
- end
36
- end
@@ -1,21 +0,0 @@
1
- require 'openuri/common'
2
-
3
- module OpenURI
4
- class Cache
5
- class << self
6
- # Enable caching
7
- def enable!
8
- @cache = Rails.cache
9
- @cache_enabled = true
10
- end
11
-
12
- def get(key)
13
- @cache.read(key)
14
- end
15
-
16
- def set(key, value)
17
- @cache.write(key, value, :expires_in => expiry)
18
- end
19
- end
20
- end
21
- end
@@ -1 +0,0 @@
1
- require 'openuri/memcached'