wits 1.1.1 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
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