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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d486df9ea65b9fc0058ab6a54a81f80ee477491
4
- data.tar.gz: e5dce967f0e42aaa04db6b24c20177dd67b6de7d
3
+ metadata.gz: 78a6d79cfcfb5cccda3415c8fa81f34317bd850a
4
+ data.tar.gz: 5aa867c5cb08a6a729e230a37782a602d081d90a
5
5
  SHA512:
6
- metadata.gz: 6c2ff151979604bcc99b5bb7652375e84e8277dac586e0ecaf4c2939e82b903e2bcdba8aee6506218c80c6e327af180f85d504d36b8175582717ba75da6998d9
7
- data.tar.gz: eb4c654b03ecc246ecb25d8b331635eb50d6758280915876af2ae90fad9666009ed59cfa8d2ab5d3a72f6b0470d6856b3b913fd6d3c0129a43b01373db39c5f1
6
+ metadata.gz: fe82f8513478fc4191df3bb779f07cd720d3f66bf6617e106f0d40510c1e6ca2287b2c381db7d8cc41867d35dd2481055299176ae6bfa2864f4e8714ab648c45
7
+ data.tar.gz: '0494127501073ec93724ecbd69646a3fa40d3dfbb252cf34456deeca966580148b0ccd0d1d1aba548768767dc88bb7f241b35eb839ca7807ee0f8d0de88d0f58'
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
- 1.1.1 / 2017-05-011
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/comitFta/ftaPage.pricesMain) and [5 Minute Prices](https://electricityinfo.co.nz/comitFta/five_min_prices.main) for a given node and date.
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
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Wits
2
- VERSION = '1.1.1'.freeze
2
+ VERSION = '1.2.0'.freeze
3
3
  end
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(CHANGELOG.md LICENSE.txt README.md wits.gemspec)
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.48.1'
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.1.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-05-11 00:00:00.000000000 Z
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.48.1
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.48.1
194
+ version: 0.49.1
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: coveralls
197
197
  requirement: !ruby/object:Gem::Requirement