pvoutput-api 0.0.2

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: 1f3ba42b630f858030befe5c6df7d2f109ec11bf
4
+ data.tar.gz: 3e2bb121c03d456c14a68e33700d07fbe1429a68
5
+ SHA512:
6
+ metadata.gz: b4eb760a8e74b2c1b6be795c97ad9ef7518a3fd618fa70edb559defdc30870a297a9f90123ee527c031526973213f602285788991d254af3d417081c24c24e6b
7
+ data.tar.gz: 14c12c4394068cc2f55c3181af0e3596d873011d5a549bc9cf5ac04fffa0b62f4c9681e1b3460dfd030300f29f5e046075a5690fb7ad7af9e51159be94dcde77
@@ -0,0 +1,10 @@
1
+ /.bundle/
2
+ /.yardoc
3
+ /Gemfile.lock
4
+ /_yardoc/
5
+ /coverage/
6
+ /doc/
7
+ /pkg/
8
+ /spec/reports/
9
+ /tmp/
10
+ /*.gem
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.2.1
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in pvoutput-api.gemspec
4
+ gemspec
5
+
@@ -0,0 +1,72 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ ## Uncomment and set this to only include directories you want to watch
5
+ directories %w(lib test)
6
+
7
+ ## Uncomment to clear the screen before every task
8
+ clearing :on
9
+
10
+ ## Guard internally checks for changes in the Guardfile and exits.
11
+ ## If you want Guard to automatically start up again, run guard in a
12
+ ## shell loop, e.g.:
13
+ ##
14
+ ## $ while bundle exec guard; do echo "Restarting Guard..."; done
15
+ ##
16
+ ## Note: if you are using the `directories` clause above and you are not
17
+ ## watching the project directory ('.'), then you will want to move
18
+ ## the Guardfile to a watched dir and symlink it back, e.g.
19
+ #
20
+ # $ mkdir config
21
+ # $ mv Guardfile config/
22
+ # $ ln -s config/Guardfile .
23
+ #
24
+ # and, you'll have to watch "config/Guardfile" instead of "Guardfile"
25
+
26
+ guard :minitest do
27
+ # with Minitest::Unit
28
+ watch(%r{^test/(.*)\/?test_(.*)\.rb$})
29
+ watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { 'test' }
30
+ # watch(%r{^lib/(.*/)?([^/]+)\.rb$}) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
31
+ watch(%r{^test/test_helper\.rb$}) { 'test' }
32
+
33
+ # with Minitest::Spec
34
+ # watch(%r{^spec/(.*)_spec\.rb$})
35
+ # watch(%r{^lib/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
36
+ # watch(%r{^spec/spec_helper\.rb$}) { 'spec' }
37
+
38
+ # Rails 4
39
+ # watch(%r{^app/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
40
+ # watch(%r{^app/controllers/application_controller\.rb$}) { 'test/controllers' }
41
+ # watch(%r{^app/controllers/(.+)_controller\.rb$}) { |m| "test/integration/#{m[1]}_test.rb" }
42
+ # watch(%r{^app/views/(.+)_mailer/.+}) { |m| "test/mailers/#{m[1]}_mailer_test.rb" }
43
+ # watch(%r{^lib/(.+)\.rb$}) { |m| "test/lib/#{m[1]}_test.rb" }
44
+ # watch(%r{^test/.+_test\.rb$})
45
+ # watch(%r{^test/test_helper\.rb$}) { 'test' }
46
+
47
+ # Rails < 4
48
+ # watch(%r{^app/controllers/(.*)\.rb$}) { |m| "test/functional/#{m[1]}_test.rb" }
49
+ # watch(%r{^app/helpers/(.*)\.rb$}) { |m| "test/helpers/#{m[1]}_test.rb" }
50
+ # watch(%r{^app/models/(.*)\.rb$}) { |m| "test/unit/#{m[1]}_test.rb" }
51
+ end
52
+
53
+ # Notifications
54
+ # via tmux https://github.com/guard/guard/wiki/System-notifications#tmux
55
+ notification :tmux,
56
+ display_message: true,
57
+ timeout: 5, # in seconds
58
+ default_message_format: '%s >> %s',
59
+ # the first %s will show the title, the second the message
60
+ # Alternately you can also configure *success_message_format*,
61
+ # *pending_message_format*, *failed_message_format*
62
+ line_separator: ' > ', # since we are single line we need a separator
63
+ color_location: 'status-left-bg', # to customize which tmux element will change color
64
+
65
+ # Other options:
66
+ default_message_color: 'black',
67
+ success: 'colour150',
68
+ failure: 'colour174',
69
+ pending: 'colour179',
70
+
71
+ # Notify on all tmux clients
72
+ display_on_all_clients: false
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2015 Jon Bartlett
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
@@ -0,0 +1,102 @@
1
+ # pvoutput-api
2
+
3
+ A Ruby wrapper around PVOutput [API](http://pvoutput.org/help.html#api).
4
+
5
+ Update 30/06/2016: Since working on this over a year ago another similar project has sprung up (see [https://github.com/johnf/pvoutput](https://github.com/johnf/pvoutput)). There is currently no overlap in functionality so I decided to publish the Gem anyway. In the longterm these projects should probably merge.
6
+
7
+ See also related project [pvoutput-qif](https://github.com/jonbartlett/pvoutput-qif).
8
+
9
+ ## Installation
10
+
11
+ Add this line to your application's Gemfile:
12
+
13
+ ```ruby
14
+ gem 'pvoutput-api'
15
+ ```
16
+
17
+ And then execute:
18
+
19
+ $ bundle install
20
+
21
+ Or install it yourself as:
22
+
23
+ $ gem install pvoutput-api
24
+
25
+ ## Usage
26
+
27
+ ```
28
+ require 'pvoutput-api'
29
+
30
+ pvo_auth = PVOutput::Auth.new('8313', 'secret')
31
+ stat_data = PVOutput::Statistic.fetch("20150622", "20150622", pvo_auth)
32
+ puts stat_data.debit_amount
33
+ puts stat_data.energy_consumed
34
+ ```
35
+
36
+ ## Service Capability
37
+
38
+ At the time of writing, the PVOutput API consists of the following services.
39
+
40
+ | Service Name | URL | Implemented |
41
+ | ------------ | --- | ----------- |
42
+ | [Add Output](http://pvoutput.org/help.html#api-addoutput) | http://pvoutput.org/service/r2/addoutput.jsp | no |
43
+ | [Add Status](http://pvoutput.org/help.html#api-addstatus) | http://pvoutput.org/service/r2/addstatus.jsp | no |
44
+ | [Add Batch Output](http://pvoutput.org/help.html#api-addbatchoutput) | http://pvoutput.org/service/r2/addbatchoutput.jsp | no |
45
+ | [Add Batch Status](http://pvoutput.org/help.html#api-addbatchstatus) | http://pvoutput.org/service/r2/addbatchstatus.jsp | no |
46
+ | [Get Status](http://pvoutput.org/help.html#api-getstatus) | http://pvoutput.org/service/r2/getstatus.jsp | no |
47
+ | [Get Statistic](http://pvoutput.org/help.html#api-getstatistic) | http://pvoutput.org/service/r2/getstatistic.jsp | yes |
48
+ | [Get System](http://pvoutput.org/help.html#api-getsystem) | http://pvoutput.org/service/r2/getsystem.jsp | no |
49
+ | [Get Output](http://pvoutput.org/help.html#api-getoutput) | http://pvoutput.org/service/r2/getoutput.jsp | no |
50
+ | [Get Extended](http://pvoutput.org/help.html#api-getextended) | http://pvoutput.org/service/r2/getextended.jsp | no |
51
+ | [Get Favourite](http://pvoutput.org/help.html#api-getfavourite) | http://pvoutput.org/service/r2/getfavourite.jsp | no |
52
+ | [Get Missing](http://pvoutput.org/help.html#api-getmissing) | http://pvoutput.org/service/r2/getmissing.jsp | no |
53
+ | [Get Insolation](http://pvoutput.org/help.html#api-getinsolation) | http://pvoutput.org/service/r2/getinsolation.jsp | no |
54
+ | [Delete Status](http://pvoutput.org/help.html#api-deletestatus) | http://pvoutput.org/service/r2/deletestatus.jsp | no |
55
+ | [Search](http://pvoutput.org/help.html#api-search) | http://pvoutput.org/service/r2/search.jsp | no |
56
+ | [Get Team](http://pvoutput.org/help.html#api-getteam) | http://pvoutput.org/service/r2/getteam.jsp | no |
57
+ | [Join Team](http://pvoutput.org/help.html#api-jointeam) | http://pvoutput.org/service/r2/jointeam.jsp | no |
58
+ | [Leave Team](http://pvoutput.org/help.html#api-leaveteam) | http://pvoutput.org/service/r2/leaveteam.jsp | no |
59
+ | [Get Supply](http://pvoutput.org/help.html#api-getsupply) | http://pvoutput.org/service/r2/getsupply.jsp | no |
60
+ | [Register Notification](http://pvoutput.org/help.html#api-registernotification) | http://pvoutput.org/service/r2/registernotification.jsp | no |
61
+ | [Deregister Notification](http://pvoutput.org/help.html#api-registernotification) | http://pvoutput.org/service/r2/deregisternotification.jsp | no |
62
+
63
+ ## Rate Limits
64
+
65
+ The following rate limits applies per API key for all request types -
66
+
67
+ * 60 requests per hour.
68
+ * 300 requests per hour in donation mode.
69
+
70
+ It is recommended to make requests at least 10 seconds apart.
71
+
72
+ **via [PVOutput API Documentaion](http://pvoutput.org/help.html#api)**
73
+
74
+ ## Links
75
+
76
+ * [PVOutput API](http://pvoutput.org/help.html#api)
77
+
78
+ ## Unit Tests
79
+
80
+ Tests can be run using:
81
+
82
+ ```rake test```
83
+
84
+ or with [Guard](https://github.com/guard/guard)
85
+
86
+ ```bundle exec guard```
87
+
88
+ ## Debugging Issue
89
+
90
+ Raise an issue via [Github](https://github.com/jonbartlett/pvoutput-api/issues). If the issue is related to the PVOutput API call, enable logging with the following environment variable:
91
+
92
+ ```RESTCLIENT_LOG=stdout```
93
+
94
+ Copy and paste the exact output into the Issue.
95
+
96
+ ## Contributing
97
+
98
+ 1. Fork it ( https://github.com/jonbartlett/pvoutput-api/fork )
99
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
100
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
101
+ 4. Push to the branch (`git push origin my-new-feature`)
102
+ 5. Create a new Pull Request
@@ -0,0 +1,8 @@
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << "test"
6
+ t.test_files = FileList['test/pvoutput-api/test*.rb']
7
+ # t.verbose = true
8
+ end
@@ -0,0 +1,3 @@
1
+ require_relative 'pvoutput-api/auth'
2
+ require_relative 'pvoutput-api/statistic'
3
+ require_relative 'pvoutput-api/version'
@@ -0,0 +1,13 @@
1
+ module PVOutput
2
+
3
+ class Auth
4
+ attr_accessor :system_id, :api_key
5
+
6
+ def initialize(system_id, api_key)
7
+ @system_id = system_id
8
+ @api_key = api_key
9
+ end
10
+ end
11
+
12
+ end
13
+
@@ -0,0 +1,89 @@
1
+ require 'csv'
2
+ require 'rest-client'
3
+
4
+ module PVOutput
5
+
6
+ class Statistic
7
+
8
+ attr_reader :energy_generated # number watt hours 246800
9
+ attr_reader :energy_exported # number watt hours 246800
10
+ attr_reader :average_generation # number watt hours 8226
11
+ attr_reader :minimum_generation # number watt hours 2000
12
+ attr_reader :maximum_generation # number watt hours 11400
13
+ attr_reader :average_efficiency # number kWh/kW 3.358
14
+ attr_reader :outputs # number - 27
15
+ attr_reader :actual_date_from # yyyymmdd 2015-06-2420100901
16
+ attr_reader :actual_date_to # yyyymmdd 2015-06-2420100927
17
+ attr_reader :record_efficiency # number kWh/kW 4.653
18
+ attr_reader :record_date # yyyymmdd 2015-06-2420100916
19
+ attr_reader :energy_consumed # number watt hours 10800
20
+ attr_reader :peak_energy_import # number watt hours 5000
21
+ attr_reader :off_peak_energy_import # number watt hours 1000
22
+ attr_reader :shoulder_energy_import # number watt hours 4000
23
+ attr_reader :high_shoulder_energy_import # number watt hours 800
24
+ attr_reader :average_consumption # number watt hours 1392
25
+ attr_reader :minimum_consumption # number watt hours 10
26
+ attr_reader :maximum_consumption # number watt hours 2890
27
+ attr_reader :credit_amount # decimal currency 37.29
28
+ attr_reader :debit_amount # decimal currency 37.29
29
+
30
+ API_URL = "http://pvoutput.org/service/r2/getstatistic.jsp"
31
+
32
+ def initialize(statistics)
33
+ @energy_generated = statistics[:energy_generated]
34
+ @energy_exported = statistics[:energy_exported]
35
+ @average_generation = statistics[:average_generation]
36
+ @minimum_generation = statistics[:minimum_generation]
37
+ @maximum_generation = statistics[:maximum_generation]
38
+ @average_efficiency = statistics[:average_efficiency]
39
+ @outputs = statistics[:outputs]
40
+ @actual_date_from = statistics[:actual_date_from]
41
+ @actual_date_to = statistics[:actual_date_to]
42
+ @record_efficiency = statistics[:record_efficiency]
43
+ @record_date = statistics[:record_date]
44
+ @energy_consumed = statistics[:energy_consumed]
45
+ @peak_energy_import = statistics[:peak_energy_import]
46
+ @off_peak_energy_import = statistics[:off_peak_energy_import]
47
+ @shoulder_energy_import = statistics[:shoulder_energy_import]
48
+ @high_shoulder_energy_import =statistics[:high_shoulder_energy_import]
49
+ @average_consumption = statistics[:average_consumption]
50
+ @minimum_consumption = statistics[:minimum_consumption]
51
+ @maximum_consumption = statistics[:maximum_consumption]
52
+ @credit_amount = statistics[:credit_amount]
53
+ @debit_amount = statistics[:debit_amount]
54
+ end
55
+
56
+ def self.fetch (date_from, date_to, auth_details)
57
+
58
+ # hit api and return csv data in array
59
+ data = RestClient.get(API_URL, {:params => {:sid => auth_details.system_id, :key => auth_details.api_key, :df => date_from, :dt => date_to, :c => '1', :crdr => '1'}})
60
+ results = CSV.new(data).to_a
61
+
62
+ # array to hash
63
+ statistics = { energy_generated: results[0][0],
64
+ energy_exported: results[0][1],
65
+ average_generation: results[0][2],
66
+ minimum_generation: results[0][3],
67
+ maximum_generation: results[0][4],
68
+ average_efficiency: results[0][5],
69
+ outputs: results[0][6],
70
+ actual_date_from: results[0][7],
71
+ actual_date_to: results[0][8],
72
+ record_efficiency: results[0][9],
73
+ record_date: results[0][10],
74
+ energy_consumed: results[0][11],
75
+ peak_energy_import: results[0][12],
76
+ off_peak_energy_import: results[0][13],
77
+ shoulder_energy_import: results[0][14],
78
+ high_shoulder_energy_import: results[0][15],
79
+ average_consumption: results[0][16],
80
+ minimum_consumption: results[0][17],
81
+ maximum_consumption: results[0][18],
82
+ credit_amount: results[0][19],
83
+ debit_amount: results[0][20]}
84
+ new(statistics)
85
+ end
86
+
87
+ end
88
+
89
+ end
@@ -0,0 +1,3 @@
1
+ module PVOutput
2
+ VERSION = "0.0.2"
3
+ end
@@ -0,0 +1,33 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'pvoutput-api/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "pvoutput-api"
8
+ spec.version = PVOutput::VERSION
9
+ spec.authors = ["Jon Bartlett"]
10
+ spec.email = ["mail@jaybe.net <mailto:mail@jaybe.net>"]
11
+
12
+ spec.summary = %q{pvoutput-api}
13
+ spec.description = %q{Gem to wrap PVOutput.org API}
14
+ spec.homepage = "https://github.com/jonbartlett/pvoutput-api"
15
+ spec.license = "MIT"
16
+
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
21
+
22
+ spec.add_development_dependency "bundler", "~> 1.9"
23
+ spec.add_development_dependency "rake", "~> 10.0"
24
+ spec.add_development_dependency "minitest", "~> 5.8"
25
+ spec.add_development_dependency "vcr", "~> 3.0"
26
+ spec.add_development_dependency "webmock", "~> 2.1"
27
+ spec.add_development_dependency "guard", "~> 2.14"
28
+ spec.add_development_dependency "guard-minitest", "~> 2.4"
29
+ spec.add_development_dependency "minitest-reporters", "~> 1.1"
30
+
31
+ spec.add_runtime_dependency "rest-client", "~> 1.8"
32
+
33
+ end
metadata ADDED
@@ -0,0 +1,182 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pvoutput-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ platform: ruby
6
+ authors:
7
+ - Jon Bartlett
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2016-06-30 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.9'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.9'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.8'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.8'
55
+ - !ruby/object:Gem::Dependency
56
+ name: vcr
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.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: '2.1'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '2.1'
83
+ - !ruby/object:Gem::Dependency
84
+ name: guard
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '2.14'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '2.14'
97
+ - !ruby/object:Gem::Dependency
98
+ name: guard-minitest
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '2.4'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '2.4'
111
+ - !ruby/object:Gem::Dependency
112
+ name: minitest-reporters
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.1'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.1'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rest-client
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '1.8'
132
+ type: :runtime
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: '1.8'
139
+ description: Gem to wrap PVOutput.org API
140
+ email:
141
+ - mail@jaybe.net <mailto:mail@jaybe.net>
142
+ executables: []
143
+ extensions: []
144
+ extra_rdoc_files: []
145
+ files:
146
+ - ".gitignore"
147
+ - ".travis.yml"
148
+ - Gemfile
149
+ - Guardfile
150
+ - LICENSE.txt
151
+ - README.md
152
+ - Rakefile
153
+ - lib/pvoutput-api.rb
154
+ - lib/pvoutput-api/auth.rb
155
+ - lib/pvoutput-api/statistic.rb
156
+ - lib/pvoutput-api/version.rb
157
+ - pvoutput-api.gemspec
158
+ homepage: https://github.com/jonbartlett/pvoutput-api
159
+ licenses:
160
+ - MIT
161
+ metadata: {}
162
+ post_install_message:
163
+ rdoc_options: []
164
+ require_paths:
165
+ - lib
166
+ required_ruby_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: '0'
171
+ required_rubygems_version: !ruby/object:Gem::Requirement
172
+ requirements:
173
+ - - ">="
174
+ - !ruby/object:Gem::Version
175
+ version: '0'
176
+ requirements: []
177
+ rubyforge_project:
178
+ rubygems_version: 2.5.1
179
+ signing_key:
180
+ specification_version: 4
181
+ summary: pvoutput-api
182
+ test_files: []