blink_api 0.0.1

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6497e979696c761be235d661f090df52577d9760
4
+ data.tar.gz: ff315f0652f3b7a7d2034ced5b21fcb3cdaaefd8
5
+ SHA512:
6
+ metadata.gz: 27d212d07839d9bae4a510f2e37fea0face27c0aafaef3e136fff999acd23a8ddb8615e0b7551a051cd295bf03248d4fbf072b8e76442f6e86b9ef706c91a985
7
+ data.tar.gz: a7a157c3cb32211069ff8ef393ef95c5a2b5703d28e6046dbbaf5fa97a26c53deb545b58dff0aec922b818b28768da88741a48ad936809095e6241c35653e257
data/.gitignore ADDED
@@ -0,0 +1,19 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ Gemfile.lock
7
+ InstalledFiles
8
+ _yardoc
9
+ coverage
10
+ doc/
11
+ lib/bundler/man
12
+ pkg
13
+ rdoc
14
+ spec/reports
15
+ test/tmp
16
+ test/version_tmp
17
+ tmp
18
+ .rbenv-gemsets
19
+ .ruby-version
data/.travis.yml ADDED
@@ -0,0 +1,6 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - 2.1.0
6
+ - 2.1.1
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in blink_api.gemspec
4
+ gemspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Kyle Conarro
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,99 @@
1
+ # Blink API Client [![Build Status](https://travis-ci.org/kconarro14/blink_api.svg?branch=master)](https://travis-ci.org/kconarro14/blink_api) [![Code Climate](https://codeclimate.com/github/kconarro14/blink_api.png)](https://codeclimate.com/github/kconarro14/blink_api) [![Dependency Status](https://gemnasium.com/kconarro14/blink_api.svg)](https://gemnasium.com/kconarro14/blink_api)
2
+
3
+ A Ruby wrapper for the [Blink Network API](http://www.blinknetwork.com/developer.html)
4
+
5
+ ## Usage
6
+
7
+ Create a client with your API key
8
+
9
+ ```ruby
10
+ client = BlinkApi::Client.create(:api_key => 'mykey') # uses ENV['BLINK_API_KEY'] by default
11
+ ```
12
+
13
+ Find locations using the __Locations__ endpoint:
14
+
15
+ ```ruby
16
+ lat = 35
17
+ long = -85
18
+ lat_range = 5
19
+ long_range = 5
20
+
21
+ client.locations.find(lat, long, lat_range, long_range)
22
+ => [{"id"=>91316,
23
+ "latitude"=>35.903453,
24
+ "longitude"=>-84.116367,
25
+ "name"=>"Calhoun's Pelissippi",
26
+ "address1"=>"10020 Kingston Pike",
27
+ "address2"=>"",
28
+ "city"=>"Knoxville",
29
+ "state"=>"TN",
30
+ "zip"=>"37923",
31
+ "country"=>"US",
32
+ # ...
33
+ }]
34
+ ```
35
+
36
+ Search for stations by name using the __Search__ endpoint:
37
+
38
+ ```ruby
39
+ lat = 35
40
+ long = -85
41
+
42
+ client.search.query('City of Shelbyville', lat, long)
43
+ => [{"id"=>61186,
44
+ "latitude"=>35.483724,
45
+ "longitude"=>-86.461214,
46
+ "name"=>"City of Shelbyville",
47
+ "address1"=>"201 N Spring Street",
48
+ "address2"=>"",
49
+ "city"=>"Shelbyville",
50
+ "state"=>"TN",
51
+ "zip"=>"37160",
52
+ "country"=>"US",
53
+ # ...
54
+ }]
55
+ ```
56
+
57
+ Check the status of a specific location using the __Status__ endpoint:
58
+
59
+ ```ruby
60
+ location_id = 91316
61
+
62
+ client.status.for_location(location_id)
63
+ => {"id"=>91316,
64
+ "latitude"=>35.903453,
65
+ "longitude"=>-84.116367,
66
+ "name"=>"Calhoun's Pelissippi",
67
+ "address1"=>"10020 Kingston Pike",
68
+ "address2"=>"",
69
+ "city"=>"Knoxville",
70
+ "state"=>"TN",
71
+ "zip"=>"37923",
72
+ "country"=>"US",
73
+ # ...
74
+ }
75
+ ```
76
+
77
+ *For more details about the API endpoints, download Blink's [API docs](http://www.blinknetwork.com/file/17254/BLINK+API+MAP+20140128.1+.pdf).*
78
+
79
+ ## Installation
80
+
81
+ Add this line to your application's Gemfile:
82
+
83
+ gem 'blink_api'
84
+
85
+ And then execute:
86
+
87
+ $ bundle
88
+
89
+ Or install it yourself as:
90
+
91
+ $ gem install blink_api
92
+
93
+ ## Contributing
94
+
95
+ 1. Fork it ( http://github.com/<my-github-username>/blink_api/fork )
96
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
97
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
98
+ 4. Push to the branch (`git push origin my-new-feature`)
99
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task :default => :spec
data/blink_api.gemspec ADDED
@@ -0,0 +1,28 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'blink_api/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "blink_api"
8
+ spec.version = BlinkApi::VERSION
9
+ spec.authors = ["Kyle Conarro"]
10
+ spec.email = ["kyle.conarro@gmail.com"]
11
+ spec.summary = %q{Ruby wrapper for the Blink Network charging station API}
12
+ spec.description = %q{Ruby wrapper for the Blink Network charging station API}
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.5"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec"
24
+ spec.add_development_dependency "vcr"
25
+ spec.add_development_dependency "webmock"
26
+
27
+ spec.add_runtime_dependency 'saddle'
28
+ end
@@ -0,0 +1,29 @@
1
+ module BlinkApi
2
+ class Client < Saddle::Client
3
+
4
+ def self.api_key
5
+ BlinkApi.configuration.api_key
6
+ end
7
+
8
+ def self.host
9
+ 'api.blinknetwork.com'
10
+ end
11
+
12
+ def self.path_prefix
13
+ 'map/v1'
14
+ end
15
+
16
+ def self.use_ssl
17
+ true
18
+ end
19
+
20
+ def self.default_options
21
+ super.merge(:api_key => api_key)
22
+ end
23
+
24
+ def self.additional_middlewares
25
+ [:klass => FaradayMiddleware::Request::ApiKey, :args => []]
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,10 @@
1
+ module BlinkApi
2
+ class Configuration
3
+ attr_accessor :api_key
4
+
5
+ def initialize
6
+ @api_key = ENV['BLINK_API_KEY']
7
+ end
8
+ end
9
+
10
+ end
@@ -0,0 +1,14 @@
1
+ require 'saddle/endpoint'
2
+
3
+
4
+ module BlinkApi
5
+ module Endpoints
6
+
7
+ class Locations < Saddle::TraversalEndpoint
8
+ def find lat, long, lat_range, long_range, options={}
9
+ get nil, {:lat => lat, :lng => long, :latd => lat_range, :lngd => long_range}.merge(options)
10
+ end
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'saddle/endpoint'
2
+
3
+
4
+ module BlinkApi
5
+ module Endpoints
6
+
7
+ class Search < Saddle::TraversalEndpoint
8
+ def query query, lat, long, options={}
9
+ get nil, {:q => query, :lat => lat, :lng => long}.merge(options)
10
+ end
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'saddle/endpoint'
2
+
3
+
4
+ module BlinkApi
5
+ module Endpoints
6
+
7
+ class Status < Saddle::TraversalEndpoint
8
+ def for_location location_id
9
+ get nil, :id => location_id
10
+ end
11
+ end
12
+
13
+ end
14
+ end
@@ -0,0 +1,3 @@
1
+ module BlinkApi
2
+ VERSION = "0.0.1"
3
+ end
data/lib/blink_api.rb ADDED
@@ -0,0 +1,24 @@
1
+ require 'saddle'
2
+ require 'faraday_middleware/request/api_key'
3
+
4
+ require "blink_api/version"
5
+ require "blink_api/client"
6
+ require "blink_api/configuration"
7
+
8
+ require "blink_api/endpoints/locations"
9
+ require "blink_api/endpoints/search"
10
+ require "blink_api/endpoints/status"
11
+
12
+ module BlinkApi
13
+ extend self
14
+
15
+ attr_accessor :configuration
16
+
17
+ def configuration
18
+ @configuration ||= Configuration.new
19
+ end
20
+
21
+ def configure
22
+ yield(configuration)
23
+ end
24
+ end
@@ -0,0 +1,21 @@
1
+ require 'faraday'
2
+
3
+ module FaradayMiddleware
4
+ module Request
5
+
6
+ # Public: Adds the api key as a url param if present
7
+
8
+ class ApiKey < Faraday::Middleware
9
+ def call(env)
10
+ api_key = env[:request][:client_options][:api_key]
11
+
12
+ if api_key
13
+ env[:url].query = env[:url].query ? "#{env[:url].query}&key=#{api_key}" : "key=#{api_key}"
14
+ end
15
+
16
+ @app.call env
17
+ end
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe BlinkApi::Client do
4
+
5
+ describe '.host' do
6
+ it "returns the blink api host" do
7
+ expect(BlinkApi::Client.host).to eql('api.blinknetwork.com')
8
+ end
9
+ end
10
+
11
+ describe '.path_prefix' do
12
+ it "returns the blink api prefix" do
13
+ expect(BlinkApi::Client.path_prefix).to eql('map/v1')
14
+ end
15
+ end
16
+
17
+ describe '.use_ssl' do
18
+ it "uses ssl" do
19
+ expect(BlinkApi::Client.use_ssl).to be_true
20
+ end
21
+ end
22
+
23
+ describe '.api_key' do
24
+ after { BlinkApi.configuration = BlinkApi::Configuration.new } # to reset api key
25
+
26
+ it "returns the " do
27
+ BlinkApi.configuration.api_key = 'mykey'
28
+ expect(BlinkApi::Client.api_key).to eql('mykey')
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe BlinkApi::Endpoints::Locations do
4
+
5
+ let(:client) { BlinkApi::Client.create }
6
+ let(:params) { {:lat => 33.83656, :long => -84.38846, :latd => 1, :lngd => 1} }
7
+
8
+ describe '#find' do
9
+ it 'gets a list of locations' do
10
+ VCR.use_cassette('endpoints/locations') do
11
+ response = client.locations.find(params[:lat], params[:long], params[:latd], params[:lngd])
12
+ expect(response).to be_an_instance_of(Array)
13
+ expect(response.first).to be_an_instance_of(Hash)
14
+ end
15
+ end
16
+
17
+ it 'fails without required params' do
18
+ expect { client.locations.find(params[:lat], params[:long]) }.to raise_error(ArgumentError)
19
+ end
20
+ end
21
+
22
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ describe BlinkApi::Endpoints::Search do
4
+
5
+ let(:client) { BlinkApi::Client.create }
6
+ let(:params) { {:lat => 33.83656, :long => -84.38846, :latd => 1, :lngd => 1} }
7
+
8
+ describe '#query' do
9
+ it 'gets a list of locations' do
10
+ VCR.use_cassette('endpoints/search') do
11
+ response = client.search.query('Atlanta Tech Village', params[:lat], params[:long], params)
12
+ expect(response).to be_an_instance_of(Array)
13
+ expect(response.first).to be_an_instance_of(Hash)
14
+ end
15
+ end
16
+
17
+ it 'fails without required params' do
18
+ expect { client.search.query('test', params[:lat]) }.to raise_error(ArgumentError)
19
+ end
20
+ end
21
+
22
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ describe BlinkApi::Endpoints::Status do
4
+
5
+ let(:client) { BlinkApi::Client.create }
6
+
7
+ describe '#for_location' do
8
+ it 'gets the status of a location' do
9
+ VCR.use_cassette('endpoints/status') do
10
+ response = client.status.for_location(132742)
11
+ expect(response).to be_an_instance_of(Hash)
12
+ end
13
+ end
14
+
15
+ it 'fails without required params' do
16
+ expect { client.status.for_location }.to raise_error(ArgumentError)
17
+ end
18
+ end
19
+
20
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe BlinkApi do
4
+
5
+ after do
6
+ BlinkApi.configuration = BlinkApi::Configuration.new # to reset api key
7
+ end
8
+
9
+ describe '#configure' do
10
+ it "configures the api key" do
11
+ BlinkApi.configure do |config|
12
+ config.api_key = 'mykey'
13
+ end
14
+ expect(BlinkApi::Client.api_key).to eql('mykey')
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,16 @@
1
+ require 'blink_api'
2
+ require 'webmock/rspec'
3
+ require 'vcr'
4
+
5
+ VCR.configure do |c|
6
+ c.allow_http_connections_when_no_cassette = true
7
+ # the directory where your cassettes will be saved
8
+ c.cassette_library_dir = 'spec/support/vcr'
9
+ # your HTTP request service. You can also use fakeweb, webmock, and more
10
+ c.hook_into :webmock
11
+ end
12
+
13
+ RSpec.configure do |config|
14
+ config.color_enabled = true # Use color in STDOUT
15
+ config.order = 'random'
16
+ end
@@ -0,0 +1,94 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.blinknetwork.com/map/v1/locations?lat=33.83656&latd=1&lng=-84.38846&lngd=1
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - BlinkApi::Client 0.0.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Fri, 04 Apr 2014 01:00:47 GMT
23
+ Server:
24
+ - Apache
25
+ Cache-Control:
26
+ - max-age=300, must-revalidate
27
+ Appserver:
28
+ - www3
29
+ Content-Type:
30
+ - application/json;charset=UTF-8
31
+ Transfer-Encoding:
32
+ - chunked
33
+ body:
34
+ encoding: UTF-8
35
+ string: '[{"id":111197,"encid":"MTExMTk3","latitude":33.841204,"longitude":-84.384574,"name":"Dorsey
36
+ Alston Realtors","address1":"100 W. Paces Ferry Road","address2":"","city":"Atlanta","state":"GA","zip":"30305","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":1,"offline":1,"units":{"2":{"25730":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"21158":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"}}},"levels":["2"],"models":["PE-30KICE40","PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":1,"portsOffline":1},{"id":97120,"encid":"OTcxMjA_3","latitude":34.10111,"longitude":-84.518066,"name":"Town
37
+ of Woodstock - Woodstock West","address1":"12453 Highway 92","address2":"","city":"Woodstock","state":"GA","zip":"30188","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":"street
38
+ parking; basic vicinity of the \nWoodstock West by Walton Apartments \nLeasing
39
+ Office\n","restricted":false,"chargers":3,"inuse":0,"avail":3,"offline":0,"units":{"2":{"25436":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"31648":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"25435":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE48","PE-30KICE60"],"portCount":3,"portsInUse":0,"portsAvail":3,"portsOffline":0},{"id":97121,"encid":"OTcxMjE_3","latitude":34.100486,"longitude":-84.519279,"name":"Town
40
+ of Woodstock - Main Street","address1":"12453 Highway 92","address2":"","city":"Woodstock","state":"GA","zip":"30188","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":"street
41
+ parking - 251 East Main Street \nWoodstock, GA 30188, near Freight \nKitchen
42
+ and Tap and an Acru ATM\n","restricted":false,"chargers":3,"inuse":0,"avail":1,"offline":2,"units":{"2":{"36657":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"22425":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"},"25433":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"}}},"levels":["2"],"models":["PE-30KICE40","PE-30KICE48","PE-30KICE60"],"portCount":3,"portsInUse":0,"portsAvail":1,"portsOffline":2},{"id":104693,"encid":"MTA0Njkz","latitude":34.067523,"longitude":-84.175344,"name":"Emory
43
+ Johns Creek Hospital","address1":"6325 Hospital Pkwy","address2":"","city":"Johns
44
+ Creek","state":"GA","zip":"30097","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":6,"inuse":0,"avail":6,"offline":0,"units":{"2":{"37244":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"26097":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"37240":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"16715":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"16716":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"16717":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE48","PE-30KICE60"],"portCount":6,"portsInUse":0,"portsAvail":6,"portsOffline":0},{"id":104690,"encid":"MTA0Njkw","latitude":33.941832,"longitude":-84.5292719,"name":"Marietta
45
+ Transfer Center Park \u0026 Ride","address1":"800 South Marietta Parkway","address2":"","city":"Marietta","state":"GA","zip":"30060","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":4,"inuse":0,"avail":4,"offline":0,"units":{"2":{"28169":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"31307":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"31277":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"44911":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE48","PE-30KICE60"],"portCount":4,"portsInUse":0,"portsAvail":4,"portsOffline":0},{"id":104689,"encid":"MTA0Njg5","latitude":34.029232,"longitude":-84.5699219,"name":"Busbee
46
+ Park and Ride","address1":"3221 Busbee Drive NW","address2":"","city":"Kennesaw","state":"GA","zip":"30144","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":4,"inuse":0,"avail":3,"offline":1,"units":{"2":{"31280":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"31281":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"35940":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"31282":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"}}},"levels":["2"],"models":["PE-30KICE48","PE-30KICE60"],"portCount":4,"portsInUse":0,"portsAvail":3,"portsOffline":1},{"id":84067,"encid":"ODQwNjc_3","latitude":33.7708024,"longitude":-84.3525419,"name":"Manuel\u0027s
47
+ Tavern Location 1","address1":"602 N Highland Avenue Northeast","address2":"","city":"Atlanta","state":"GA","zip":"30307","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":4,"inuse":0,"avail":3,"offline":1,"units":{"2":{"36208":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"45023":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"45008":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"},"45025":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE48","PE-30KICE60"],"portCount":4,"portsInUse":0,"portsAvail":3,"portsOffline":1},{"id":98168,"encid":"OTgxNjg_3","latitude":33.979337,"longitude":-84.426109,"name":"Kohl\u0027s
48
+ Store #444 Merchant\u0027s Walk","address1":"1289 Johnson Ferry Rd","address2":"","city":"Marrietta","state":"GA","zip":"30068","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":0.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"31594":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"31593":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE48"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":98167,"encid":"OTgxNjc_3","latitude":33.42112,"longitude":-84.191,"name":"Kohl\u0027s
49
+ Store #1123 McDonough","address1":"1570 Hwy 20","address2":"","city":"McDonough","state":"GA","zip":"30253","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":0.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"19433":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"36659":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE48","PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":98166,"encid":"OTgxNjY_3","latitude":34.1014799,"longitude":-84.270471,"name":"Kohl\u0027s
50
+ Store #1264 Milton","address1":"13097 Hwy 9 N","address2":"","city":"Milton","state":"GA","zip":"30004","country":"US","type":"COMMERCIAL","hours":{"1":["06002359"],"2":["06002359"],"3":["06002359"],"4":["06002359"],"5":["06002359"],"6":["06002359"],"7":["06002359"]},"l2Rate":0.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":1,"inuse":0,"avail":1,"offline":0,"units":{"2":{"21034":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40"],"portCount":1,"portsInUse":0,"portsAvail":1,"portsOffline":0},{"id":102478,"encid":"MTAyNDc4","latitude":33.791385,"longitude":-84.287719,"name":"Suburban
51
+ Plaza Shopping Center","address1":"2559 North Decatu Rd","address2":"","city":"Decator","state":"GA","zip":"30033","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"37251":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"37743":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40","PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":102479,"encid":"MTAyNDc5","latitude":33.758312,"longitude":-84.4178769,"name":"Lili
52
+ Properties","address1":"936 Mayson Turner Road","address2":"","city":"Atlanta","state":"GA","zip":"30314","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":1,"offline":1,"units":{"2":{"31284":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"31279":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":1,"portsOffline":1},{"id":113883,"encid":"MTEzODgz","latitude":34.2455859,"longitude":-84.471847,"name":"Piolax","address1":"139
53
+ Etowah Industrial Court","address2":"","city":"Canton","state":"GA","zip":"30114","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":4,"inuse":0,"avail":3,"offline":1,"units":{"2":{"113882":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"113880":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"},"113881":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"113879":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40","PE-30KICE60"],"portCount":4,"portsInUse":0,"portsAvail":3,"portsOffline":1},{"id":79273,"encid":"NzkyNzM_3","latitude":33.813602,"longitude":-84.4683901,"name":"Energy
54
+ \u0026 Environment LLC","address1":"2121-B Hollywood Rd NW","address2":"","city":"Atlanta","state":"GA","zip":"30318","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":1,"inuse":0,"avail":1,"offline":0,"units":{"2":{"25767":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":1,"portsInUse":0,"portsAvail":1,"portsOffline":0},{"id":95061,"encid":"OTUwNjE_3","latitude":33.773804,"longitude":-84.283141,"name":"Georgia
55
+ Sierra Club","address1":"743 E. College Ave","address2":"Suite B","city":"Decatur","state":"GA","zip":"30030","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":1,"inuse":0,"avail":1,"offline":0,"units":{"2":{"25926":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":1,"portsInUse":0,"portsAvail":1,"portsOffline":0},{"id":83545,"encid":"ODM1NDU_3","latitude":33.879396,"longitude":-84.47118,"name":"SEARS
56
+ - Store #1385 (Cumberland Mall)","address1":"1500 Cumberland Mall SE","address2":"","city":"Atlanta","state":"GA","zip":"30339","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"45085":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"25358":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE48","PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":74937,"encid":"NzQ5Mzc_3","latitude":33.845744,"longitude":-84.360335,"name":"The
57
+ Lenox Building","address1":"3399 Peachtree Rd NE","address2":"","city":"Atlanta","state":"GA","zip":"30326","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"25746":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"25700":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":125892,"encid":"MTI1ODky","latitude":33.788768,"longitude":-84.405158,"name":"IKEA
58
+ - Atlanta","address1":"441 16th Street NW","address2":"","city":"Atlanta","state":"GA","zip":"30363","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":1,"inuse":0,"avail":1,"offline":0,"units":{"2":{"33817":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE48"],"portCount":1,"portsInUse":0,"portsAvail":1,"portsOffline":0},{"id":132742,"encid":"MTMyNzQy","latitude":33.848655,"longitude":-84.373367,"name":"Atlanta
59
+ Tech Village","address1":"3423 Piedmont Rd","address2":"","city":"Atlanta","state":"GA","zip":"30305","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"132737":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"132734":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":110458,"encid":"MTEwNDU4","latitude":34.010307,"longitude":-84.753349,"name":"Kroger
60
+ Store #634 - Dallas - Dallas Acworth Hwy","address1":"8876 Dallas Acworth
61
+ Hwy","address2":"","city":"Dallas","state":"GA","zip":"30132","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"22433":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"20033":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":110459,"encid":"MTEwNDU5","latitude":33.999492,"longitude":-83.906561,"name":"Kroger
62
+ Store #635 - Dacula - Dacula Rd","address1":"505 Dacula Rd","address2":"","city":"Dacula","state":"GA","zip":"30019","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"25911":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"25909":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":110457,"encid":"MTEwNDU3","latitude":34.095358,"longitude":-84.27591799,"name":"Kroger
63
+ Store #495 - ALPHARETTA - STATE HIGHWAY 9","address1":"12870 STATE HIGHWAY
64
+ 9","address2":"","city":"ALPHARETTA","state":"GA","zip":"30004","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":true,"chargers":1,"inuse":0,"avail":1,"offline":0,"units":{"2":{"22430":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40"],"portCount":1,"portsInUse":0,"portsAvail":1,"portsOffline":0},{"id":110460,"encid":"MTEwNDYw","latitude":33.377098,"longitude":-84.754311,"name":"Kroger
65
+ Store #647 - Newnan - Newnan Crossing Blvd E","address1":"1751 Newnan Crossing
66
+ Blvd E","address2":"","city":"Newnan","state":"GA","zip":"30265","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"21378":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"21126":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":110419,"encid":"MTEwNDE5","latitude":33.566492,"longitude":-84.537203,"name":"Kroger
67
+ Store #247 - Union City - Jonesboro Rd","address1":"4550 Jonesboro Rd","address2":"","city":"Union
68
+ City","state":"GA","zip":"30291","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"21139":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"21377":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":81550,"encid":"ODE1NTA_3","latitude":33.912815,"longitude":-84.423484,"name":"ING
69
+ - Atlanta","address1":"5780 Powers Ferry Road NW","address2":"","city":"Atlanta","state":"GA","zip":"30327-4390","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":0.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"45259":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"45257":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":95880,"encid":"OTU4ODA_3","latitude":33.990618999,"longitude":-84.530265,"name":"ACE
70
+ Electrical","address1":"1631 Canton Road","address2":"","city":"Marietta","state":"GA","zip":"30066","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"22870":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"22868":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":113108,"encid":"MTEzMTA4","latitude":33.7522337,"longitude":-84.3869756,"name":"Georgia
71
+ State University - Collins Street Entrance","address1":"121 Collins Street","address2":"","city":"Atlanta","state":"GA","zip":"30303","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"17552":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"97890":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":113109,"encid":"MTEzMTA5","latitude":33.7537779,"longitude":-84.383984,"name":"Georgia
72
+ State University - Auditorium Place Entrance","address1":"33 Auditorium Place
73
+ SE","address2":"","city":"Atlanta","state":"GA","zip":"30305","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"17549":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"25684":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":110913,"encid":"MTEwOTEz","latitude":33.847848,"longitude":-84.363602,"name":"Lenox
74
+ Square Mall","address1":"3393 Peachtree Road NE","address2":"","city":"Atlanta","state":"GA","zip":"30326","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":"Chargers
75
+ on Level 1 of East Paces Ferry \nparking deck (next to Bloomingdale\u0027s
76
+ at \nfood court mall entrance).\n","restricted":false,"chargers":4,"inuse":0,"avail":4,"offline":0,"units":{"2":{"44064":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"13032":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"45179":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"15578":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE48","PE-30KICE60"],"portCount":4,"portsInUse":0,"portsAvail":4,"portsOffline":0},{"id":141144,"encid":"MTQxMTQ0","latitude":33.76488,"longitude":-84.3868,"name":"Georgia
77
+ Power - Southern Company Building","address1":"30 Ivan Allen Jr. Blvd","address2":"","city":"Atlanta","state":"GA","zip":"30308","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":"7am-7pm
78
+ Monday - Friday - Located on \n6th floor of parking garage\n","restricted":true,"chargers":6,"inuse":0,"avail":4,"offline":2,"units":{"2":{"109405":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":true,"state":"AVAIL"},"109406":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":true,"state":"AVAIL"},"109407":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["OFFLINE"],"restricted":true,"state":"OFFLINE"},"109410":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":true,"state":"AVAIL"},"109409":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["OFFLINE"],"restricted":true,"state":"OFFLINE"},"109408":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":true,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40"],"portCount":6,"portsInUse":0,"portsAvail":4,"portsOffline":2},{"id":141143,"encid":"MTQxMTQz","latitude":33.762378,"longitude":-84.379823,"name":"Georgia
79
+ Power - Employee Parking Deck","address1":"241 Ralph McGill Blvd","address2":"","city":"Atlanta","state":"GA","zip":"30308","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":"Daily
80
+ 7am-7pm\n","restricted":true,"chargers":6,"inuse":0,"avail":3,"offline":3,"units":{"2":{"25463":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":true,"state":"AVAIL"},"23017":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":true,"state":"AVAIL"},"25459":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":true,"state":"OFFLINE"},"23007":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":true,"state":"OFFLINE"},"23011":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":true,"state":"AVAIL"},"25464":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":true,"state":"OFFLINE"}}},"levels":["2"],"models":["PE-30KICE40","PE-30KICE60"],"portCount":6,"portsInUse":0,"portsAvail":3,"portsOffline":3},{"id":94062,"encid":"OTQwNjI_3","latitude":33.852314,"longitude":-84.367588,"name":"Highwoods
81
+ Property","address1":"3560 Lenox Road","address2":"","city":"Atlanta","state":"GA","zip":"30326","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":4,"inuse":0,"avail":4,"offline":0,"units":{"2":{"94044":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"94045":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"94046":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"94043":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40","PE-30KICE60"],"portCount":4,"portsInUse":0,"portsAvail":4,"portsOffline":0},{"id":96481,"encid":"OTY0ODE_3","latitude":33.763221,"longitude":-84.2683859,"name":"Avondale
82
+ Estates","address1":"10 Sutton Place","address2":"","city":"Avondale Estates","state":"GA","zip":"30002","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":0,"offline":2,"units":{"2":{"25893":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"},"21276":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"}}},"levels":["2"],"models":["PE-30KICE40","PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":0,"portsOffline":2},{"id":61794,"encid":"NjE3OTQ_3","latitude":33.761432,"longitude":-84.3968,"name":"Ventanas","address1":"275
83
+ Baker Street","address2":"","city":"Atlanta","state":"GA","zip":"30313","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":1,"inuse":1,"avail":0,"offline":0,"units":{"2":{"38351":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["INUSE"],"restricted":false,"state":"INUSE"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":1,"portsInUse":1,"portsAvail":0,"portsOffline":0},{"id":96502,"encid":"OTY1MDI_3","latitude":33.409476,"longitude":-84.73973,"name":"Yokogawa
84
+ Corp. of America","address1":"2 Dart Road","address2":"","city":"Newman","state":"GA","zip":"30265","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"25660":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"25669":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0},{"id":119042,"encid":"MTE5MDQy","latitude":33.80437,"longitude":-84.336707,"name":"Kroger
85
+ Store #655 - Atlanta - Briarcliff Rd NE","address1":"1799 Briarcliff Rd NE","address2":"","city":"Atlanta","state":"GA","zip":"30306","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":0,"offline":2,"units":{"2":{"21117":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"},"21140":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"}}},"levels":["2"],"models":["PE-30KICE40"],"portCount":2,"portsInUse":0,"portsAvail":0,"portsOffline":2},{"id":79078,"encid":"NzkwNzg_3","latitude":33.85289,"longitude":-84.379628,"name":"1-4
86
+ LLC","address1":"3565 Piedmont Rd","address2":"","city":"Atlanta","state":"GA","zip":"30305","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":1,"offline":1,"units":{"2":{"38350":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"},"38348":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":1,"portsOffline":1},{"id":75767,"encid":"NzU3Njc_3","latitude":34.048086,"longitude":-84.282878,"name":"Hilton
87
+ Garden Inn North Point","address1":"10975 Georgia Ln","address2":"","city":"Alpharetta","state":"GA","zip":"30022","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":0,"offline":2,"units":{"2":{"27304":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"},"27303":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":0,"portsOffline":2},{"id":79073,"encid":"NzkwNzM_3","latitude":33.852522,"longitude":-84.380658,"name":"15
88
+ LLC","address1":"3575 Piedmont Road","address2":"Building 15","city":"Atlanta","state":"GA","zip":"30305","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":1,"offline":1,"units":{"2":{"45180":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"45161":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["OFFLINE"],"restricted":false,"state":"OFFLINE"}}},"levels":["2"],"models":["PE-30KICE60"],"portCount":2,"portsInUse":0,"portsAvail":1,"portsOffline":1},{"id":122887,"encid":"MTIyODg3","latitude":33.499865,"longitude":-84.220239,"name":"Georgia
89
+ Power - Patrick Henry Pkwy","address1":"2500 Patrick Henry Pkwy","address2":"","city":"McDonough","state":"GA","zip":"30253","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":true,"chargers":3,"inuse":0,"avail":3,"offline":0,"units":{"2":{"23742":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":true,"state":"AVAIL"},"20361":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":true,"state":"AVAIL"},"23737":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":true,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40","PE-30KICE60"],"portCount":3,"portsInUse":0,"portsAvail":3,"portsOffline":0},{"id":75768,"encid":"NzU3Njg_3","latitude":34.069217,"longitude":-84.168299,"name":"Hilton
90
+ Garden Inn Johns Creek","address1":"11695 Medlock Bridge Road","address2":"","city":"Johns
91
+ Creek","state":"GA","zip":"30097","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":1,"avail":1,"offline":0,"units":{"2":{"25332":{"isSuppressed":false,"model":"PE-30KICE48","portStatus":["INUSE"],"restricted":false,"state":"INUSE"},"27301":{"isSuppressed":false,"model":"PE-30KICE60","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE48","PE-30KICE60"],"portCount":2,"portsInUse":1,"portsAvail":1,"portsOffline":0}]'
92
+ http_version:
93
+ recorded_at: Fri, 04 Apr 2014 01:01:00 GMT
94
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,39 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.blinknetwork.com/map/v1/search?lat=33.83656&latd=1&lng=-84.38846&lngd=1&long=-84.38846&q=Atlanta%20Tech%20Village
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - BlinkApi::Client 0.0.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Fri, 04 Apr 2014 01:14:52 GMT
23
+ Server:
24
+ - Apache
25
+ Cache-Control:
26
+ - max-age=300, must-revalidate
27
+ Content-Length:
28
+ - '848'
29
+ Appserver:
30
+ - www2
31
+ Content-Type:
32
+ - application/json;charset=UTF-8
33
+ body:
34
+ encoding: UTF-8
35
+ string: '[{"id":132742,"encid":"MTMyNzQy","latitude":33.848655,"longitude":-84.373367,"name":"Atlanta
36
+ Tech Village","address1":"3423 Piedmont Rd","address2":"","city":"Atlanta","state":"GA","zip":"30305","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"132737":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"132734":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0}]'
37
+ http_version:
38
+ recorded_at: Fri, 04 Apr 2014 01:14:50 GMT
39
+ recorded_with: VCR 2.8.0
@@ -0,0 +1,39 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.blinknetwork.com/map/v1/status?id=132742
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - BlinkApi::Client 0.0.1
12
+ Accept-Encoding:
13
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
14
+ Accept:
15
+ - "*/*"
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Fri, 04 Apr 2014 01:13:29 GMT
23
+ Server:
24
+ - Apache
25
+ Cache-Control:
26
+ - max-age=300, must-revalidate
27
+ Content-Length:
28
+ - '846'
29
+ Appserver:
30
+ - www3
31
+ Content-Type:
32
+ - application/json;charset=UTF-8
33
+ body:
34
+ encoding: UTF-8
35
+ string: '{"id":132742,"encid":"MTMyNzQy","latitude":33.848655,"longitude":-84.373367,"name":"Atlanta
36
+ Tech Village","address1":"3423 Piedmont Rd","address2":"","city":"Atlanta","state":"GA","zip":"30305","country":"US","type":"COMMERCIAL","hours":{"1":["00002359"],"2":["00002359"],"3":["00002359"],"4":["00002359"],"5":["00002359"],"6":["00002359"],"7":["00002359"]},"l2Rate":2.0,"dcfcRate":null,"l2RateUnit":3600,"dcfcRateUnit":0,"description":null,"restricted":false,"chargers":2,"inuse":0,"avail":2,"offline":0,"units":{"2":{"132737":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"},"132734":{"isSuppressed":false,"model":"PE-30KICE40","portStatus":["AVAIL"],"restricted":false,"state":"AVAIL"}}},"levels":["2"],"models":["PE-30KICE40"],"portCount":2,"portsInUse":0,"portsAvail":2,"portsOffline":0}'
37
+ http_version:
38
+ recorded_at: Fri, 04 Apr 2014 01:13:27 GMT
39
+ recorded_with: VCR 2.8.0
metadata ADDED
@@ -0,0 +1,161 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: blink_api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Kyle Conarro
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-04-15 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.5'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: vcr
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: webmock
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: saddle
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ description: Ruby wrapper for the Blink Network charging station API
98
+ email:
99
+ - kyle.conarro@gmail.com
100
+ executables: []
101
+ extensions: []
102
+ extra_rdoc_files: []
103
+ files:
104
+ - ".gitignore"
105
+ - ".travis.yml"
106
+ - Gemfile
107
+ - LICENSE.txt
108
+ - README.md
109
+ - Rakefile
110
+ - blink_api.gemspec
111
+ - lib/blink_api.rb
112
+ - lib/blink_api/client.rb
113
+ - lib/blink_api/configuration.rb
114
+ - lib/blink_api/endpoints/locations.rb
115
+ - lib/blink_api/endpoints/search.rb
116
+ - lib/blink_api/endpoints/status.rb
117
+ - lib/blink_api/version.rb
118
+ - lib/faraday_middleware/request/api_key.rb
119
+ - spec/blink_api/client_spec.rb
120
+ - spec/blink_api/endpoints/locations_spec.rb
121
+ - spec/blink_api/endpoints/search_spec.rb
122
+ - spec/blink_api/endpoints/status_spec.rb
123
+ - spec/blink_api_spec.rb
124
+ - spec/spec_helper.rb
125
+ - spec/support/vcr/endpoints/locations.yml
126
+ - spec/support/vcr/endpoints/search.yml
127
+ - spec/support/vcr/endpoints/status.yml
128
+ homepage: ''
129
+ licenses:
130
+ - MIT
131
+ metadata: {}
132
+ post_install_message:
133
+ rdoc_options: []
134
+ require_paths:
135
+ - lib
136
+ required_ruby_version: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - ">="
139
+ - !ruby/object:Gem::Version
140
+ version: '0'
141
+ required_rubygems_version: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ requirements: []
147
+ rubyforge_project:
148
+ rubygems_version: 2.2.2
149
+ signing_key:
150
+ specification_version: 4
151
+ summary: Ruby wrapper for the Blink Network charging station API
152
+ test_files:
153
+ - spec/blink_api/client_spec.rb
154
+ - spec/blink_api/endpoints/locations_spec.rb
155
+ - spec/blink_api/endpoints/search_spec.rb
156
+ - spec/blink_api/endpoints/status_spec.rb
157
+ - spec/blink_api_spec.rb
158
+ - spec/spec_helper.rb
159
+ - spec/support/vcr/endpoints/locations.yml
160
+ - spec/support/vcr/endpoints/search.yml
161
+ - spec/support/vcr/endpoints/status.yml