wits 1.1.1 → 1.2.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 +4 -4
- data/CHANGELOG.md +6 -1
- data/README.md +11 -2
- data/lib/wits/final_interim_prices.rb +5 -0
- data/lib/wits/final_interim_prices/convenience_methods.rb +18 -0
- data/lib/wits/price_codes.rb +5 -2
- data/lib/wits/version.rb +1 -1
- data/wits.gemspec +3 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78a6d79cfcfb5cccda3415c8fa81f34317bd850a
|
4
|
+
data.tar.gz: 5aa867c5cb08a6a729e230a37782a602d081d90a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe82f8513478fc4191df3bb779f07cd720d3f66bf6617e106f0d40510c1e6ca2287b2c381db7d8cc41867d35dd2481055299176ae6bfa2864f4e8714ab648c45
|
7
|
+
data.tar.gz: '0494127501073ec93724ecbd69646a3fa40d3dfbb252cf34456deeca966580148b0ccd0d1d1aba548768767dc88bb7f241b35eb839ca7807ee0f8d0de88d0f58'
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,11 @@
|
|
1
|
-
1.
|
1
|
+
1.2.0 / 2017-07-15
|
2
|
+
------
|
3
|
+
* Add support for forecast prices (PRS)
|
4
|
+
|
5
|
+
1.1.1 / 2017-05-11
|
2
6
|
------
|
3
7
|
* Change URL from www2.electricityinfo.co.nz to electricityinfo.co.nz
|
8
|
+
* Update runtime and development dependencies
|
4
9
|
|
5
10
|
1.1.0 / 2017-03-05
|
6
11
|
------
|
data/README.md
CHANGED
@@ -51,9 +51,9 @@ wits officially supports MRI Ruby 2.2+ and the JRuby equivalent. wits may work f
|
|
51
51
|
|
52
52
|
## Usage
|
53
53
|
|
54
|
-
wits can retrieve [Final/Interim Prices](https://electricityinfo.co.nz/
|
54
|
+
wits can retrieve [Final/Interim/Forecast Prices](https://electricityinfo.co.nz/help/prices.html), and [5 Minute Prices](https://electricityinfo.co.nz/help/prices.html) for a given node and date.
|
55
55
|
|
56
|
-
#### Final/Interim Prices
|
56
|
+
#### Final/Interim/Forecast Prices
|
57
57
|
Half-hourly final/interim prices can be retrieved in the following ways:
|
58
58
|
|
59
59
|
```ruby
|
@@ -67,6 +67,11 @@ Wits.interim_prices('ben2201') # Defaults to the day before yesterday
|
|
67
67
|
Wits.interim_prices('BEN', '29/03/2015')
|
68
68
|
Wits.interim_prices('ben', Time.parse('29/03/2015 13:37'))
|
69
69
|
Wits.interim_prices('BEN2201', Date.parse('29/03/2015'))
|
70
|
+
|
71
|
+
Wits.forecast_prices('ben2201') # Defaults to the day before yesterday
|
72
|
+
Wits.forecast_prices('BEN', '29/03/2015')
|
73
|
+
Wits.forecast_prices('ben', Time.parse('29/03/2015 13:37'))
|
74
|
+
Wits.forecast_prices('BEN2201', Date.parse('29/03/2015'))
|
70
75
|
```
|
71
76
|
|
72
77
|
If no date-like argument is provided, data for the day before yesterday will be retrieved.
|
@@ -81,6 +86,10 @@ Wits.ben2201_prices(Time.parse('29/03/2015 13:37'))
|
|
81
86
|
Wits.ben_interim_prices
|
82
87
|
Wits.benmore_interim_prices('29/03/2015')
|
83
88
|
Wits.ben2201_interim_prices(Time.parse('29/03/2015 13:37'))
|
89
|
+
|
90
|
+
Wits.ben_forecast_prices
|
91
|
+
Wits.benmore_forecast_prices('29/03/2015')
|
92
|
+
Wits.ben2201_forecast_prices(Time.parse('29/03/2015 13:37'))
|
84
93
|
```
|
85
94
|
|
86
95
|
For Final prices, there are shorter methods without the `_prices` suffix.
|
@@ -25,5 +25,10 @@ module Wits
|
|
25
25
|
def interim_prices(node, date = nz_current_date - 1)
|
26
26
|
prices(node, date, INTERIM)
|
27
27
|
end
|
28
|
+
|
29
|
+
def forecast_prices(node, date = nz_current_date, type = FORECAST)
|
30
|
+
csv = request_prices(node, date, type)
|
31
|
+
parse_csv(csv, type)
|
32
|
+
end
|
28
33
|
end
|
29
34
|
end
|
@@ -9,6 +9,7 @@ module Wits
|
|
9
9
|
node_methods(node, name)
|
10
10
|
node_prices_methods(node, name)
|
11
11
|
node_interim_prices_methods(node, name)
|
12
|
+
node_forecast_prices_methods(node, name)
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
@@ -47,6 +48,17 @@ module Wits
|
|
47
48
|
create_interim_prices_method(name.downcase.tr(' ', '_'), node)
|
48
49
|
end
|
49
50
|
|
51
|
+
def self.node_forecast_prices_methods(node, name)
|
52
|
+
# def ben2201_forecast_prices
|
53
|
+
create_forecast_method(node.downcase, node)
|
54
|
+
|
55
|
+
# def hay_forecast_prices
|
56
|
+
create_forecast_method(node.downcase[0..2], node)
|
57
|
+
|
58
|
+
# def halfway_bush_forecast_prices
|
59
|
+
create_forecast_method(name.downcase.tr(' ', '_'), node)
|
60
|
+
end
|
61
|
+
|
50
62
|
def self.create_prices_method(method_name, node)
|
51
63
|
define_method method_name do |*args|
|
52
64
|
prices(node, *args)
|
@@ -58,6 +70,12 @@ module Wits
|
|
58
70
|
interim_prices(node, *args)
|
59
71
|
end
|
60
72
|
end
|
73
|
+
|
74
|
+
def self.create_forecast_method(method_prefix, node)
|
75
|
+
define_method "#{method_prefix}_forecast_prices" do |*args|
|
76
|
+
forecast_prices(node, *args)
|
77
|
+
end
|
78
|
+
end
|
61
79
|
end
|
62
80
|
end
|
63
81
|
end
|
data/lib/wits/price_codes.rb
CHANGED
@@ -4,19 +4,22 @@ module Wits
|
|
4
4
|
INTERIM = :interim
|
5
5
|
AVERAGE = :average
|
6
6
|
FIVE_MINUTE = :five_minute
|
7
|
+
FORECAST = :forecast
|
7
8
|
|
8
9
|
PRICE_TYPES = {
|
9
10
|
FINAL => 'F',
|
10
11
|
INTERIM => 'T',
|
11
12
|
AVERAGE => '5',
|
12
|
-
FIVE_MINUTE => 'I'
|
13
|
+
FIVE_MINUTE => 'I',
|
14
|
+
FORECAST => 'A'
|
13
15
|
}.freeze
|
14
16
|
|
15
17
|
PRICE_DESCRIPTION = {
|
16
18
|
FINAL => 'Final',
|
17
19
|
INTERIM => 'Interim',
|
18
20
|
AVERAGE => 'Average Five Minute',
|
19
|
-
FIVE_MINUTE => 'Five Minute'
|
21
|
+
FIVE_MINUTE => 'Five Minute',
|
22
|
+
FORECAST => 'Forecast'
|
20
23
|
}.freeze
|
21
24
|
end
|
22
25
|
end
|
data/lib/wits/version.rb
CHANGED
data/wits.gemspec
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# coding: utf-8
|
2
|
+
|
2
3
|
lib = File.expand_path('../lib', __FILE__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'wits/version'
|
@@ -15,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
15
16
|
spec.homepage = 'https://www.github.com/gchan/wits'
|
16
17
|
spec.license = 'MIT'
|
17
18
|
|
18
|
-
spec.files = Dir['lib/**/*.rb'] + %w
|
19
|
+
spec.files = Dir['lib/**/*.rb'] + %w[CHANGELOG.md LICENSE.txt README.md wits.gemspec]
|
19
20
|
spec.bindir = 'bin'
|
20
21
|
spec.require_paths = ['lib']
|
21
22
|
spec.platform = Gem::Platform::RUBY
|
@@ -34,7 +35,7 @@ Gem::Specification.new do |spec|
|
|
34
35
|
spec.add_development_dependency 'multi_json', '~> 1.12.1'
|
35
36
|
spec.add_development_dependency 'timecop', '~> 0.8.1'
|
36
37
|
spec.add_development_dependency 'simplecov', '~> 0.14.1'
|
37
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
38
|
+
spec.add_development_dependency 'rubocop', '~> 0.49.1'
|
38
39
|
spec.add_development_dependency 'coveralls', '~> 0.8.19'
|
39
40
|
spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0.5'
|
40
41
|
spec.add_development_dependency 'tins', '~> 1.13.2'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wits
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gordon Chan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-15 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -184,14 +184,14 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.
|
187
|
+
version: 0.49.1
|
188
188
|
type: :development
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.
|
194
|
+
version: 0.49.1
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: coveralls
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|