google_timezone 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6a7922f88d3b6882b797df4a60ed586c5b84b3bb
4
+ data.tar.gz: e629e85380e69c9d6e1a6fbeb19be2f9b974cc3e
5
+ SHA512:
6
+ metadata.gz: bba8f7376e924527ae559ff0f9b28b8569be50ec271229e13225e87885a9085e4d8d3981ab169ceb46a5e1be2ea0f2ad46a84de8da33d4ef2d481dc84e9eee49
7
+ data.tar.gz: d46c902fade66c349023ea5df5993c93846b46292c9d79e6ec901168267355128098b408f0c157223b422cd4eade19e48fe3f8ece594f0e82e58ed72528bcc25
data/README.md CHANGED
@@ -18,9 +18,19 @@ Or install it yourself as:
18
18
 
19
19
  ## Usage
20
20
 
21
+ You can pass latitude and longitude to gem in several ways: with array or separated values.
22
+
23
+ GoogleTimezone.fetch([latitude, longitude])
24
+ GoogleTimezone.fetch(latitude, longitude)
25
+
26
+ Any other options which are described in google's documentation you can pass via options hash
27
+
28
+ GoogleTimezone.fetch(latitude, longitude, language: 'en', signature: 'key')
29
+
21
30
  It uses latitude and longitude to retrieve timezone info.
22
31
 
23
- GoogleTimezone.fetch(50.1196004, 8.679918299999999)
32
+ result = GoogleTimezone.fetch(50.1196004, 8.679918299999999)
33
+ result.time_zone_name => 'Europe/Berlin'
24
34
 
25
35
  It will get `GoogleTimezone::Result` object which maps major google api responce items named in snake case.
26
36
  More information [here](https://developers.google.com/maps/documentation/timezone/)
@@ -3,13 +3,13 @@ require 'google_timezone/base'
3
3
  require 'google_timezone/result'
4
4
 
5
5
  module GoogleTimezone
6
- def fetch(*args)
7
- Base.new(args).fetch
8
- end
6
+ class << self
7
+ def fetch(*args)
8
+ Base.new(args).fetch
9
+ end
9
10
 
10
- def fetch!(*args)
11
- Base.new(args).fetch!
11
+ def fetch!(*args)
12
+ Base.new(args).fetch!
13
+ end
12
14
  end
13
-
14
- module_function :fetch, :fetch!
15
15
  end
@@ -2,8 +2,11 @@ require 'json'
2
2
  require 'open-uri'
3
3
 
4
4
  module GoogleTimezone
5
+
6
+ class Error < StandardError; end
7
+
5
8
  class Base
6
- @allowed_params = [:language, :sensor, :timestamp, :client, :signature]
9
+ @allowed_params = [:language, :sensor, :timestamp, :client, :signature, :key]
7
10
 
8
11
  def initialize(*args)
9
12
  @lat, @lon = if args.first.is_a? Array
@@ -24,7 +27,7 @@ module GoogleTimezone
24
27
 
25
28
  def fetch!
26
29
  result = fetch
27
- raise_error(result.result) unless result.success?
30
+ raise(GoogleTimezone::Error.new(result.result)) unless result.success?
28
31
  result
29
32
  end
30
33
 
@@ -1,3 +1,3 @@
1
1
  module GoogleTimezone
2
- VERSION = "0.0.1"
2
+ VERSION = '0.0.3'
3
3
  end
@@ -2,14 +2,30 @@ require 'google_timezone'
2
2
 
3
3
  describe GoogleTimezone do
4
4
  describe 'initialize' do
5
+ before { GoogleTimezone::Base.any_instance.should_receive(:fetch).with(no_args).and_return(GoogleTimezone::Result.new(0)) }
6
+
5
7
  it 'correct with separate lat and lon' do
6
- g = GoogleTimezone::Base.new(0,0)
7
- g.should be_an_instance_of(GoogleTimezone::Base)
8
+ g = GoogleTimezone.fetch(0,0)
9
+ g.should be_an_instance_of(GoogleTimezone::Result)
8
10
  end
9
11
 
10
12
  it 'correct with array lat and lon' do
11
- g = GoogleTimezone::Base.new([0,0])
12
- g.should be_an_instance_of(GoogleTimezone::Base)
13
+ g = GoogleTimezone.fetch([0,0])
14
+ g.should be_an_instance_of(GoogleTimezone::Result)
15
+ end
16
+ end
17
+
18
+ describe '#fetch!' do
19
+ describe 'if result is not success' do
20
+ let(:result) { GoogleTimezone::Result.new({}) }
21
+
22
+ before { result.stub!(:success?) { false } }
23
+ before { result.stub!(:result) { 'error message' } }
24
+ before { GoogleTimezone::Base.any_instance.stub(:fetch) { result } }
25
+
26
+ it 'should raise error' do
27
+ expect { GoogleTimezone.fetch!(0,0) }.to raise_error(GoogleTimezone::Error)
28
+ end
13
29
  end
14
30
  end
15
31
  end
metadata CHANGED
@@ -1,46 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_timezone
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.3
6
5
  platform: ruby
7
6
  authors:
8
7
  - sck-v
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-05-15 00:00:00.000000000 Z
11
+ date: 2014-04-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: rspec
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: '0'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rspec-mocks
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - '>='
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - '>='
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  description: Get timezone info by known coordinates
@@ -65,29 +60,29 @@ files:
65
60
  - spec/google_timezone_spec.rb
66
61
  homepage: ''
67
62
  licenses: []
63
+ metadata: {}
68
64
  post_install_message:
69
65
  rdoc_options: []
70
66
  require_paths:
71
67
  - lib
72
68
  required_ruby_version: !ruby/object:Gem::Requirement
73
- none: false
74
69
  requirements:
75
- - - ! '>='
70
+ - - '>='
76
71
  - !ruby/object:Gem::Version
77
72
  version: '0'
78
73
  required_rubygems_version: !ruby/object:Gem::Requirement
79
- none: false
80
74
  requirements:
81
- - - ! '>='
75
+ - - '>='
82
76
  - !ruby/object:Gem::Version
83
77
  version: '0'
84
78
  requirements: []
85
79
  rubyforge_project:
86
- rubygems_version: 1.8.24
80
+ rubygems_version: 2.1.10
87
81
  signing_key:
88
- specification_version: 3
82
+ specification_version: 4
89
83
  summary: Small gem to get timezone info by known coordinates using google timezone
90
84
  api. https://developers.google.com/maps/documentation/timezone/
91
85
  test_files:
92
86
  - spec/google_timezone_result_spec.rb
93
87
  - spec/google_timezone_spec.rb
88
+ has_rdoc: