open-weather 0.11.0 → 0.12.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ad59e52bf16b188c02fa811012230dc6745c74b
4
- data.tar.gz: 225b8e3c265dd023669705c1e496807562a47ded
3
+ metadata.gz: 00ce51a41f4467b136b9b6fe7109e166467c968f
4
+ data.tar.gz: 794af8171b091546893941f14bf163044b78e031
5
5
  SHA512:
6
- metadata.gz: 3c3452fe71b08b2a3d5a910c435d51e70742da0e97f5fafaf02a71fea498ad4b24b528f3a83075830c18c32dab52edb9433d229cc75ebe54106f0cbc00fa8e7b
7
- data.tar.gz: e8b09324d7fbbffab0f5683a3693507cea4b47ef0be4c4cad06deec5ea1799931a86c7e90357cfae20412baa36d3c5b8fc098afda3c267b97c31a3dc5794fd0f
6
+ metadata.gz: ba9de01c6fb14b90d7c2e334d59a9e4654cef76f4ff06edf9b5d1c06ab48e365a188860c305b26e41fb50970d2ca90946cd10b417a7160ac0c61dce0cc97cdcb
7
+ data.tar.gz: 02d3624d4fcfb4ae2ef7ae44b694f5291c945a342a3d53294efa66aa42f00786a5087c7570fbd7d288ef8aa87ee44892037d8c32f9c2117b556ca86f1ffdd84c
data/.gitignore CHANGED
@@ -5,4 +5,5 @@
5
5
  *#
6
6
  *.DS_Store
7
7
  log/*
8
- tmp/*
8
+ tmp/*
9
+ Gemfile.lock
@@ -0,0 +1,5 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.1.5
4
+ script:
5
+ - bundle exec rspec
@@ -0,0 +1,17 @@
1
+ ### CONTRIBUTORS
2
+
3
+ [Harisankar P S](https://github.com/coderhs)
4
+
5
+ [Deepak Kumar](https://github.com/42races)
6
+
7
+ [Daniel Nitsikopoulos](https://github.com/dNitza)
8
+
9
+ [Yone Lacort Collado](https://github.com/yonelacort)
10
+
11
+ [iamdeuterium](https://github.com/iamdeuterium)
12
+
13
+ [ssendev](https://github.com/ssendev)
14
+
15
+ [Nithin Bekal](https://github.com/nithinbekal)
16
+
17
+ [Jesse Emond](https://github.com/JesseEmond)
data/Gemfile CHANGED
@@ -1,5 +1,4 @@
1
1
  source 'http://rubygems.org'
2
2
 
3
- gem 'rspec'
4
- gem 'vcr'
5
- gem 'webmock'
3
+ # gem's dependencies should be in open_weather.gemspec
4
+ gemspec
data/README.md CHANGED
@@ -1,8 +1,10 @@
1
1
  ## A ruby wrapper for Open Weather Map API.
2
2
 
3
+ [![Build Status](https://travis-ci.org/coderhs/ruby_open_weather_map.svg?branch=master)](https://travis-ci.org/coderhs/ruby_open_weather_map)
4
+
3
5
  ## Installation
4
6
 
5
- Latest version `0.11.0`
7
+ Latest version `0.12.0`
6
8
 
7
9
  Add the following to your **Gemfile**
8
10
 
@@ -29,6 +31,15 @@ OpenWeather::Current.city_id("1273874")
29
31
  # get current weather by geocode. (lat, lon)
30
32
  OpenWeather::Current.geocode(9.94, 76.26)
31
33
 
34
+ # get current weather for a list of city ids
35
+ OpenWeather::Current.cities([524901, 703448, 2643743])
36
+
37
+ # get current weather for a bounding box
38
+ OpenWeather::Current.rectangle_zone(12, 32, 15, 37, 10)
39
+
40
+ # get current weather for cities around a point
41
+ OpenWeather::Current.circle_zone(55.5, 37.5, 10)
42
+
32
43
  # get the current weather in degrees celsius
33
44
  OpenWeather::Current.city("Cochin, IN", units: 'metric')
34
45
  ```
@@ -1,11 +1,11 @@
1
1
  module OpenWeather
2
- $LOAD_PATH<< "../lib"
2
+ $LOAD_PATH<< '../lib'
3
3
 
4
- autoload :Base, "open_weather/base"
5
- autoload :Current, "open_weather/current"
6
- autoload :Forecast, "open_weather/forecast"
7
- autoload :ForecastDaily, "open_weather/forecast_daily"
8
- autoload :VERSION, "open_weather/version"
4
+ autoload :Base, 'open_weather/base'
5
+ autoload :Current, 'open_weather/current'
6
+ autoload :Forecast, 'open_weather/forecast'
7
+ autoload :ForecastDaily, 'open_weather/forecast_daily'
8
+ autoload :VERSION, 'open_weather/version'
9
9
 
10
- require "open_weather/api.rb"
10
+ require 'open_weather/api.rb'
11
11
  end
@@ -1,25 +1,63 @@
1
1
 
2
2
  module OpenWeather
3
3
  module ClassMethods
4
- #City format : Eg, Cochin,IN
5
- #Useage: OpenWeather::Current.city('Cochin,In')
4
+ # City format : Eg, Cochin,IN
5
+ # Usage: OpenWeather::Current.city('Cochin,In')
6
6
  def city(city, options = {})
7
- new(options.merge(city: city)).retrive
7
+ new(options.merge(city: city)).retrieve
8
8
  end
9
9
 
10
- #City Id, an integer value. Eg, 2172797
11
- #Useage: OpenWeather::Current.city_id(2172797)
10
+ # City Id, an integer value. Eg, 2172797
11
+ # Usage: OpenWeather::Current.city_id(2172797)
12
12
  def city_id(id, options = {})
13
- new(options.merge(id: id)).retrive
13
+ new(options.merge(id: id)).retrieve
14
14
  end
15
15
 
16
- #City Geographics Cordingates : Eg, lat 35 lon 139
16
+ # City Geographics Cordingates : Eg, lat 35 lon 139
17
17
  def geocode(lat, lon, options = {})
18
- new(options.merge(lat: lat, lon: lon)).retrive
18
+ new(options.merge(lat: lat, lon: lon)).retrieve
19
+ end
20
+ end
21
+
22
+ module SeveralCitiesClassMethods
23
+ # City Ids, an array of integer values. Eg, [2172797, 524901]
24
+ # Usage: OpenWeather::Current.cities([2172797, 524901])
25
+ def cities(ids, options = {})
26
+ url = 'http://api.openweathermap.org/data/2.5/group'
27
+ ids = encode_array ids
28
+ new(options.merge(id: ids)).retrieve url
29
+ end
30
+
31
+ # Bounding box (lat and lon of top left and bottom right points, map zoom)
32
+ # Usage: OpenWeather::Current.rectangle_zone(12, 32, 15, 37, 10)
33
+ def rectangle_zone(top_left_lat, top_left_lon,
34
+ bottom_right_lat, bottom_right_lon,
35
+ map_zoom, options = {})
36
+ url = 'http://api.openweathermap.org/data/2.5/box/city'
37
+ bbox = encode_array [top_left_lat, top_left_lon, bottom_right_lat,
38
+ bottom_right_lon, map_zoom]
39
+ new(options.merge(bbox: bbox)).retrieve url
40
+ end
41
+
42
+ # Circle zone (lat, lon and count of cities to return)
43
+ # Usage: OpenWeather::Current.circle_zone(55.5, 37.5, 10)
44
+ def circle_zone(lat, lon, count, options = {})
45
+ url = 'http://api.openweathermap.org/data/2.5/find'
46
+ new(options.merge(lat: lat, lon: lon, cnt: count)).retrieve url
47
+ end
48
+
49
+ private
50
+ # Encodes an array in the format expected by the API (comma-separated list)
51
+ def encode_array(arr)
52
+ arr.join ','
19
53
  end
20
54
  end
21
55
 
22
56
  class Base
23
57
  extend ClassMethods
24
58
  end
59
+
60
+ class Current
61
+ extend SeveralCitiesClassMethods
62
+ end
25
63
  end
@@ -6,15 +6,15 @@ module OpenWeather
6
6
 
7
7
  attr_reader :url, :options, :weather_info, :status, :message
8
8
 
9
- def initialize url, options
10
- @status = false
11
- @url = url
9
+ def initialize(url, options)
10
+ @status = false
11
+ @url = url
12
12
  @options = extract_options!(options)
13
13
  end
14
14
 
15
- def retrive
16
- @response = send_request(self) unless @options.empty?
17
- parse_response if @response
15
+ def retrieve(url=nil)
16
+ response = send_request url unless @options.empty?
17
+ parse_response(response)
18
18
  end
19
19
 
20
20
  def success?
@@ -24,7 +24,9 @@ module OpenWeather
24
24
  private
25
25
 
26
26
  def extract_options!(options)
27
- valid_options = [:lat, :lon, :city, :country, :id, :units, :cnt, :APPID, :lang]
27
+ valid_options = [ :id, :lat, :lon, :cnt, :city, :lang, :units, :APPID,
28
+ :country, :bbox]
29
+
28
30
  options.keys.each { |k| options.delete(k) unless valid_options.include?(k) }
29
31
 
30
32
  if options[:city] || options[:country]
@@ -36,16 +38,18 @@ module OpenWeather
36
38
  options
37
39
  end
38
40
 
39
- def parse_response
40
- @weather_info = JSON.parse(@response)
41
- @status = @weather_info["cod"]
42
- @message = @weather_info["message"] unless @status
41
+ def parse_response(response)
42
+ return if response.nil?
43
+ @weather_info = JSON.parse(response)
44
+ @status = @weather_info['cod']
45
+ @message = @weather_info['message'] unless @status
43
46
  @weather_info
44
47
  end
45
48
 
46
- def send_request(request)
47
- uri = URI(request.url)
48
- uri.query = URI.encode_www_form(request.options)
49
+ def send_request(url=nil)
50
+ url = url || @url
51
+ uri = URI(url)
52
+ uri.query = URI.encode_www_form(options)
49
53
  Net::HTTP.get(uri)
50
54
  end
51
55
  end
@@ -1,7 +1,7 @@
1
1
  module OpenWeather
2
2
  class Current < Base
3
3
  def initialize(options = {})
4
- super("http://api.openweathermap.org/data/2.5/weather", options)
4
+ super('http://api.openweathermap.org/data/2.5/weather', options)
5
5
  end
6
6
  end
7
7
  end
@@ -1,3 +1,3 @@
1
1
  module OpenWeather
2
- VERSION = "0.11.0"
2
+ VERSION = '0.12.0'
3
3
  end
@@ -1,20 +1,21 @@
1
- $:.push File.expand_path("../lib", __FILE__)
1
+ $:.push File.expand_path('../lib', __FILE__)
2
2
  require 'open_weather/version'
3
3
 
4
4
  Gem::Specification.new do |gem|
5
- gem.name = "open-weather"
5
+ gem.name = 'open-weather'
6
6
  gem.version = OpenWeather::VERSION
7
7
  gem.authors = ["HsPS mailme@hsps.in", "Deepak deepakkumarnd@gmail.com"]
8
+ gem.licenses = ['MIT']
8
9
  gem.email = ['mailme@hsps.in']
9
- gem.homepage = "https://github.com/coderhs/ruby_open_weather_map"
10
+ gem.homepage = 'https://github.com/coderhs/ruby_open_weather_map'
10
11
  gem.summary = %q{ A ruby wrapper for Open Weather Map API. }
11
12
  gem.description = %q{ A ruby wrapper for Open Weather Map API. }
12
13
  gem.files = `git ls-files`.split("\n")
13
14
  gem.test_files = gem.files.grep(/^(spec|test|features)/)
14
15
  gem.executables = gem.files.grep(/^bin/).map{ |f| File.basename(f) }
15
16
  gem.require_paths = ["lib"]
16
- gem.add_development_dependency "rspec"
17
- gem.add_development_dependency "vcr"
18
- gem.add_development_dependency "webmock"
19
- gem.add_runtime_dependency 'json'
17
+ gem.add_development_dependency 'rspec', '~> 2.13', '>= 2.13.0'
18
+ gem.add_development_dependency 'vcr', '~> 2.9', '>= 2.9.2'
19
+ gem.add_development_dependency 'webmock', '~> 1.18', '>= 1.18.0'
20
+ gem.add_runtime_dependency 'json', '~> 1'
20
21
  end
@@ -0,0 +1,47 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.openweathermap.org/data/2.5/find?cnt=-10&lat=55.5&lon=37.5
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Host:
17
+ - api.openweathermap.org
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Fri, 04 Sep 2015 15:03:12 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ X-Source:
34
+ - redis
35
+ Access-Control-Allow-Origin:
36
+ - "*"
37
+ Access-Control-Allow-Credentials:
38
+ - 'true'
39
+ Access-Control-Allow-Methods:
40
+ - GET, POST
41
+ body:
42
+ encoding: UTF-8
43
+ string: |
44
+ {"message":"exception: limit must be >=0","cod":"500"}
45
+ http_version:
46
+ recorded_at: Fri, 04 Sep 2015 15:03:11 GMT
47
+ recorded_with: VCR 2.9.3
@@ -0,0 +1,122 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.openweathermap.org/data/2.5/find?cnt=10&lat=55.5&lon=37.5
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept-Encoding:
11
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
12
+ Accept:
13
+ - "*/*"
14
+ User-Agent:
15
+ - Ruby
16
+ Host:
17
+ - api.openweathermap.org
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Server:
24
+ - nginx
25
+ Date:
26
+ - Fri, 04 Sep 2015 15:03:12 GMT
27
+ Content-Type:
28
+ - application/json; charset=utf-8
29
+ Transfer-Encoding:
30
+ - chunked
31
+ Connection:
32
+ - keep-alive
33
+ X-Source:
34
+ - redis
35
+ Access-Control-Allow-Origin:
36
+ - "*"
37
+ Access-Control-Allow-Credentials:
38
+ - 'true'
39
+ Access-Control-Allow-Methods:
40
+ - GET, POST
41
+ body:
42
+ encoding: ASCII-8BIT
43
+ string: !binary |-
44
+ eyJtZXNzYWdlIjoiYWNjdXJhdGUiLCJjb2QiOiIyMDAiLCJjb3VudCI6MTAs
45
+ Imxpc3QiOlt7ImlkIjo0OTUyNjAsIm5hbWUiOiJTaGNoZXJiaW5rYSIsImNv
46
+ b3JkIjp7ImxvbiI6MzcuNTU5NzE5LCJsYXQiOjU1LjQ5OTcyMn0sIm1haW4i
47
+ OnsidGVtcCI6Mjg4LjY4LCJwcmVzc3VyZSI6MTAxMywiaHVtaWRpdHkiOjgy
48
+ LCJ0ZW1wX21pbiI6Mjg0LjI2LCJ0ZW1wX21heCI6MjkxLjc1fSwiZHQiOjE0
49
+ NDEzNzU2MzUsIndpbmQiOnsic3BlZWQiOjMsImRlZyI6MjkwfSwic3lzIjp7
50
+ ImNvdW50cnkiOiIifSwiY2xvdWRzIjp7ImFsbCI6NzV9LCJ3ZWF0aGVyIjpb
51
+ eyJpZCI6ODAzLCJtYWluIjoiQ2xvdWRzIiwiZGVzY3JpcHRpb24iOiJicm9r
52
+ ZW4gY2xvdWRzIiwiaWNvbiI6IjA0ZCJ9XX0seyJpZCI6NTY0NTE3LCJuYW1l
53
+ IjoiRHVicm92aXRzeSIsImNvb3JkIjp7ImxvbiI6MzcuNDg2Njk4LCJsYXQi
54
+ OjU1LjQzOTY5fSwibWFpbiI6eyJ0ZW1wIjoyODguNjgsInByZXNzdXJlIjox
55
+ MDEzLCJodW1pZGl0eSI6ODIsInRlbXBfbWluIjoyODQuMjYsInRlbXBfbWF4
56
+ IjoyOTEuNzV9LCJkdCI6MTQ0MTM3NTYzNSwid2luZCI6eyJzcGVlZCI6Mywi
57
+ ZGVnIjoyOTB9LCJzeXMiOnsiY291bnRyeSI6IiJ9LCJjbG91ZHMiOnsiYWxs
58
+ Ijo3NX0sIndlYXRoZXIiOlt7ImlkIjo4MDMsIm1haW4iOiJDbG91ZHMiLCJk
59
+ ZXNjcmlwdGlvbiI6ImJyb2tlbiBjbG91ZHMiLCJpY29uIjoiMDRkIn1dfSx7
60
+ ImlkIjo1NzA1NzgsIm5hbWUiOiJCdXRvdm8iLCJjb29yZCI6eyJsb24iOjM3
61
+ LjU3OTcyLCJsYXQiOjU1LjU0ODMyOH0sIm1haW4iOnsidGVtcCI6Mjg4Ljcy
62
+ LCJwcmVzc3VyZSI6MTAxMywiaHVtaWRpdHkiOjgyLCJ0ZW1wX21pbiI6Mjg3
63
+ LjA0LCJ0ZW1wX21heCI6MjkwLjE1fSwiZHQiOjE0NDEzNzU2MzUsIndpbmQi
64
+ Onsic3BlZWQiOjMsImRlZyI6MjkwfSwic3lzIjp7ImNvdW50cnkiOiIifSwi
65
+ Y2xvdWRzIjp7ImFsbCI6NzV9LCJ3ZWF0aGVyIjpbeyJpZCI6ODAzLCJtYWlu
66
+ IjoiQ2xvdWRzIiwiZGVzY3JpcHRpb24iOiJicm9rZW4gY2xvdWRzIiwiaWNv
67
+ biI6IjA0ZCJ9XX0seyJpZCI6NTQ1NzgyLCJuYW1lIjoiS29tbXVuYXJrYSIs
68
+ ImNvb3JkIjp7ImxvbiI6MzcuNDg5MzE5LCJsYXQiOjU1LjU2OTUxOX0sIm1h
69
+ aW4iOnsidGVtcCI6Mjg4LjY3LCJwcmVzc3VyZSI6MTAxMywiaHVtaWRpdHki
70
+ OjgyLCJ0ZW1wX21pbiI6Mjg0LjI2LCJ0ZW1wX21heCI6MjkxLjc1fSwiZHQi
71
+ OjE0NDEzNzU2MzUsIndpbmQiOnsic3BlZWQiOjMsImRlZyI6MjkwfSwic3lz
72
+ Ijp7ImNvdW50cnkiOiIifSwiY2xvdWRzIjp7ImFsbCI6NzV9LCJ3ZWF0aGVy
73
+ IjpbeyJpZCI6ODAzLCJtYWluIjoiQ2xvdWRzIiwiZGVzY3JpcHRpb24iOiJi
74
+ cm9rZW4gY2xvdWRzIiwiaWNvbiI6IjA0ZCJ9XX0seyJpZCI6NjQxNzQ5MCwi
75
+ bmFtZSI6Ikxlc3BhcmtraG96IiwiY29vcmQiOnsibG9uIjozNy42MDEzOTEs
76
+ ImxhdCI6NTUuNTQzMDZ9LCJtYWluIjp7InRlbXAiOjI4OC43MiwicHJlc3N1
77
+ cmUiOjEwMTMsImh1bWlkaXR5Ijo4MiwidGVtcF9taW4iOjI4Ny4wNCwidGVt
78
+ cF9tYXgiOjI5MC4xNX0sImR0IjoxNDQxMzc1NjM1LCJ3aW5kIjp7InNwZWVk
79
+ IjozLCJkZWciOjI5MH0sInN5cyI6eyJjb3VudHJ5IjoiIn0sImNsb3VkcyI6
80
+ eyJhbGwiOjc1fSwid2VhdGhlciI6W3siaWQiOjgwMywibWFpbiI6IkNsb3Vk
81
+ cyIsImRlc2NyaXB0aW9uIjoiYnJva2VuIGNsb3VkcyIsImljb24iOiIwNGQi
82
+ fV19LHsiaWQiOjUyNjczNiwibmFtZSI6IlNlZOKAmW1veSBNaWtyb3JheW9u
83
+ IiwiY29vcmQiOnsibG9uIjozNy41Nzk3MiwibGF0Ijo1NS41NjIyMjJ9LCJt
84
+ YWluIjp7InRlbXAiOjI4OC42OCwicHJlc3N1cmUiOjEwMTMsImh1bWlkaXR5
85
+ Ijo4MiwidGVtcF9taW4iOjI4Ny4wNCwidGVtcF9tYXgiOjI5MC4xNX0sImR0
86
+ IjoxNDQxMzc1MDM2LCJ3aW5kIjp7InNwZWVkIjozLCJkZWciOjI5MH0sInN5
87
+ cyI6eyJjb3VudHJ5IjoiIn0sImNsb3VkcyI6eyJhbGwiOjc1fSwid2VhdGhl
88
+ ciI6W3siaWQiOjgwMywibWFpbiI6IkNsb3VkcyIsImRlc2NyaXB0aW9uIjoi
89
+ YnJva2VuIGNsb3VkcyIsImljb24iOiIwNGQifV19LHsiaWQiOjQ3MzA1MSwi
90
+ bmFtZSI6IlZsYXPigJl5ZXZvIiwiY29vcmQiOnsibG9uIjozNy4zNzk0NDQs
91
+ ImxhdCI6NTUuNDYwMjc4fSwibWFpbiI6eyJ0ZW1wIjoyODkuMjQsInByZXNz
92
+ dXJlIjoxMDEzLCJodW1pZGl0eSI6ODIsInRlbXBfbWluIjoyODcuMDQsInRl
93
+ bXBfbWF4IjoyOTEuNzV9LCJkdCI6MTQ0MTM3NTU2NSwid2luZCI6eyJzcGVl
94
+ ZCI6MywiZGVnIjoyOTB9LCJzeXMiOnsiY291bnRyeSI6IiJ9LCJjbG91ZHMi
95
+ OnsiYWxsIjo3NX0sIndlYXRoZXIiOlt7ImlkIjo4MDMsIm1haW4iOiJDbG91
96
+ ZHMiLCJkZXNjcmlwdGlvbiI6ImJyb2tlbiBjbG91ZHMiLCJpY29uIjoiMDRk
97
+ In1dfSx7ImlkIjo1Nzg2ODAsIm5hbWUiOiJCYWNodXJpbm8iLCJjb29yZCI6
98
+ eyJsb24iOjM3LjUyLCJsYXQiOjU1LjU4MDAwMn0sIm1haW4iOnsidGVtcCI6
99
+ Mjg4LjcsInByZXNzdXJlIjoxMDEzLCJodW1pZGl0eSI6ODIsInRlbXBfbWlu
100
+ IjoyODQuMjYsInRlbXBfbWF4IjoyOTIuMzV9LCJkdCI6MTQ0MTM3NTI2Nywi
101
+ d2luZCI6eyJzcGVlZCI6MywiZGVnIjoyOTB9LCJzeXMiOnsiY291bnRyeSI6
102
+ IiJ9LCJjbG91ZHMiOnsiYWxsIjo3NX0sIndlYXRoZXIiOlt7ImlkIjo4MDMs
103
+ Im1haW4iOiJDbG91ZHMiLCJkZXNjcmlwdGlvbiI6ImJyb2tlbiBjbG91ZHMi
104
+ LCJpY29uIjoiMDRkIn1dfSx7ImlkIjo1NTQ2MjksIm5hbWUiOiJTaGVzdG95
105
+ IE1pa3JvcmF5b24iLCJjb29yZCI6eyJsb24iOjM3LjU4MzMyOCwibGF0Ijo1
106
+ NS41NjY2Njl9LCJtYWluIjp7InRlbXAiOjI4OC43MiwicHJlc3N1cmUiOjEw
107
+ MTMsImh1bWlkaXR5Ijo4MiwidGVtcF9taW4iOjI4Ny4wNCwidGVtcF9tYXgi
108
+ OjI5MC4xNX0sImR0IjoxNDQxMzc1NjM1LCJ3aW5kIjp7InNwZWVkIjozLCJk
109
+ ZWciOjI5MH0sInN5cyI6eyJjb3VudHJ5IjoiIn0sImNsb3VkcyI6eyJhbGwi
110
+ Ojc1fSwid2VhdGhlciI6W3siaWQiOjgwMywibWFpbiI6IkNsb3VkcyIsImRl
111
+ c2NyaXB0aW9uIjoiYnJva2VuIGNsb3VkcyIsImljb24iOiIwNGQifV19LHsi
112
+ aWQiOjUwODEwMSwibmFtZSI6IlBvZG9sc2siLCJjb29yZCI6eyJsb24iOjM3
113
+ LjU1NDcyMiwibGF0Ijo1NS40MjQxNzl9LCJtYWluIjp7InRlbXAiOjI4OC42
114
+ NywicHJlc3N1cmUiOjEwMTMsImh1bWlkaXR5Ijo4MiwidGVtcF9taW4iOjI4
115
+ Ny4wNCwidGVtcF9tYXgiOjI5MC4xNX0sImR0IjoxNDQxMzc1MTI1LCJ3aW5k
116
+ Ijp7InNwZWVkIjozLCJkZWciOjI5MH0sInN5cyI6eyJjb3VudHJ5IjoiIn0s
117
+ ImNsb3VkcyI6eyJhbGwiOjc1fSwid2VhdGhlciI6W3siaWQiOjgwMywibWFp
118
+ biI6IkNsb3VkcyIsImRlc2NyaXB0aW9uIjoiYnJva2VuIGNsb3VkcyIsImlj
119
+ b24iOiIwNGQifV19XX0K
120
+ http_version:
121
+ recorded_at: Fri, 04 Sep 2015 15:03:11 GMT
122
+ recorded_with: VCR 2.9.3