worldtimeengine 0.0.4 → 0.0.5

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 CHANGED
@@ -24,6 +24,7 @@ gem 'worldtimeengine'
24
24
 
25
25
  WorldTimeEngine.configure do |config|
26
26
  config.api_key = YOUR_API_KEY
27
+ config.timeout = 2 # in seconds
27
28
  end
28
29
 
29
30
 
@@ -27,13 +27,14 @@ module WorldTimeEngine
27
27
  def api(ip)
28
28
  endpoint = WorldTimeEngine.instance_variable_get(:@endpoint)
29
29
  api_key = WorldTimeEngine.instance_variable_get(:@api_key)
30
+ timeout = WorldTimeEngine.instance_variable_get(:@timeout)
30
31
 
31
32
  raise ArgumentError.new(":api_key wasn't set in configuration block") if api_key.nil?
32
33
 
33
- hash = HTTParty.get("#{endpoint}/api/ip/#{api_key}/#{ip}", :format => :xml).to_hash
34
+ hash = HTTParty.get("#{endpoint}/api/ip/#{api_key}/#{ip}", :format => :xml, :timeout => timeout.to_i).to_hash
34
35
 
35
36
  if hash.keys.include?('error')
36
- raise "Invalid or Expired API Key used; Error code: 10001"
37
+ raise "[WorldTimeEngine] Invalid or Expired API Key used; Error code: 10001"
37
38
  end
38
39
 
39
40
  timezone_hash = hash['timezone']
@@ -1,6 +1,7 @@
1
1
  module WorldTimeEngine
2
2
  module Configurable
3
3
  attr_writer :api_key
4
+ attr_writer :timeout
4
5
  attr_accessor :endpoint
5
6
 
6
7
  class << self
@@ -8,6 +9,7 @@ module WorldTimeEngine
8
9
  def keys
9
10
  @keys ||= [
10
11
  :api_key,
12
+ :timeout,
11
13
  :endpoint
12
14
  ]
13
15
  end
@@ -28,6 +30,7 @@ module WorldTimeEngine
28
30
  def reset!
29
31
  @api_key = nil
30
32
  @endpoint = 'http://worldtimeengine.com'
33
+ @timeout = 10 # seconds
31
34
  self
32
35
  end
33
36
  alias setup reset!
@@ -36,7 +39,7 @@ module WorldTimeEngine
36
39
 
37
40
  # @return [Hash]
38
41
  def credentials
39
- { :api_key => @api_key }
42
+ { :api_key => @api_key, :timeout => @timeout }
40
43
  end
41
44
 
42
45
  # @return [Hash]
@@ -35,7 +35,7 @@ describe WorldTimeEngine do
35
35
  it "returns raises an exception" do
36
36
  lambda {
37
37
  WorldTimeEngine.api('212.154.168.243')
38
- }.should raise_error(RuntimeError, 'Invalid or Expired API Key used; Error code: 10001')
38
+ }.should raise_error(RuntimeError, '[WorldTimeEngine] Invalid or Expired API Key used; Error code: 10001')
39
39
  end
40
40
  end
41
41
 
@@ -125,11 +125,25 @@ describe WorldTimeEngine do
125
125
  end
126
126
 
127
127
  describe ".configure" do
128
- it "sets the api_key" do
129
- WorldTimeEngine.configure do |config|
130
- config.api_key = 'abc'
128
+ describe "api_key" do
129
+ it "sets an api_key" do
130
+ WorldTimeEngine.configure do |config|
131
+ config.api_key = 'abc'
132
+ end
133
+ WorldTimeEngine.instance_variable_get(:@api_key).should eq 'abc'
134
+ end
135
+ end
136
+
137
+ describe "timeout" do
138
+ it "detaults to 10 secs default timeout" do
139
+ WorldTimeEngine.instance_variable_get(:@timeout).should eq 10
140
+ end
141
+ it "sets a timeout" do
142
+ WorldTimeEngine.configure do |config|
143
+ config.timeout = 20
144
+ end
145
+ WorldTimeEngine.instance_variable_get(:@timeout).should eq 20
131
146
  end
132
- WorldTimeEngine.instance_variable_get(:@api_key).should eq 'abc'
133
147
  end
134
148
  end
135
149
 
@@ -19,6 +19,5 @@ Gem::Specification.new do |gem|
19
19
  gem.required_rubygems_version = Gem::Requirement.new('>= 1.3.6')
20
20
  gem.summary = %q{WorldTimeEngine API wrapper}
21
21
  gem.test_files = Dir.glob("spec/**/*")
22
- gem.version = '0.0.4'
22
+ gem.version = '0.0.5'
23
23
  end
24
-
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: worldtimeengine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-29 00:00:00.000000000 Z
12
+ date: 2013-01-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: hashie
@@ -143,7 +143,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
143
  version: '0'
144
144
  segments:
145
145
  - 0
146
- hash: -999268238348806578
146
+ hash: 2897061304423457029
147
147
  required_rubygems_version: !ruby/object:Gem::Requirement
148
148
  none: false
149
149
  requirements: