skv_report 0.2.0 → 0.3.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
  SHA256:
3
- metadata.gz: bc6ae7fe836e23e0ff759e7edaead196e1a95bab1765f66533e2b1dd67bd9af9
4
- data.tar.gz: 968ae3ac9316ce662fbd8a31c346a6a244b48db2b56927809c869b10252396f5
3
+ metadata.gz: c31bd0550e519a43a66dd68769bc31ff1fe7b0b31bcbedb00ceb347c2f0aa85c
4
+ data.tar.gz: b207e0835e2775c0715ac331a8e76ca9f3eb7418af1ecd1f06addb6ea90f4e2b
5
5
  SHA512:
6
- metadata.gz: a85f7a81c57d0e26ee2097a5698b6a8a6cc54c5c057453323b24d6513aa91f41c9fc7c1bca46e4043a4e263a272c29308e4055f0b9faf4924508479937e4606a
7
- data.tar.gz: 7759608c7f40d3472801215b9c1c6a9c02c1dc81d93cd46169e3084d26915e0a99953908cf129b4cdfc61e365e2bec4a1f97360f46f2cd006bbc1fbe9614c5b6
6
+ metadata.gz: 8ff058a181aacd7bd378aa29b92671b9f1899a6d9839d8818621c682f217066fea9f439efbdc9258d2fc923a1b9af76762cee6774a0b1524ae80e2c5c88dc800
7
+ data.tar.gz: c3b3244deca7946db8709cdca43b1b15dfa732837b3c900d49591dc378848c522569977fc20fa15d71e69ca46aa120593a3390d85ecfa1f5b1cb11f3ea3689cf
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- skv_report (0.2.0)
4
+ skv_report (0.3.0)
5
5
  money (~> 6.14)
6
6
  valvat (~> 1.1)
7
7
 
@@ -17,19 +17,19 @@ GEM
17
17
  builder (3.2.4)
18
18
  byebug (11.1.3)
19
19
  coderay (1.1.3)
20
- concurrent-ruby (1.1.7)
20
+ concurrent-ruby (1.1.8)
21
21
  diff-lcs (1.4.4)
22
22
  gyoku (1.3.1)
23
23
  builder (>= 2.1.2)
24
24
  httpi (2.4.5)
25
25
  rack
26
26
  socksify
27
- i18n (1.8.7)
27
+ i18n (1.8.10)
28
28
  concurrent-ruby (~> 1.0)
29
29
  method_source (1.0.0)
30
- money (6.14.0)
30
+ money (6.14.1)
31
31
  i18n (>= 0.6.4, <= 2)
32
- nokogiri (1.11.1-x86_64-darwin)
32
+ nokogiri (1.11.3-x86_64-darwin)
33
33
  racc (~> 1.4)
34
34
  nori (2.6.0)
35
35
  parallel (1.20.1)
@@ -9,20 +9,18 @@ module SKVReport
9
9
 
10
10
  class NoRateForCurrencyError < StandardError; end
11
11
 
12
- attr_reader :rates, :start_at, :base, :end_at
12
+ attr_reader :rates, :base_currency
13
13
 
14
14
  def initialize(rates = {})
15
- @rates = rates['rates']
15
+ @rates = rates['rates'] || rates['dates_with_rates']
16
16
  @base_currency = rates['base']
17
- @start_at = Date.parse(rates['start_at'])
18
- @end_at = Date.parse(rates['end_at'])
19
17
  end
20
18
 
21
19
  def rate_for(from_currency, date)
22
- date_for_rate = find_previous_existing_date(Date.parse(date))
23
- raise_no_rates_for_date_error(date) if date_for_rate.nil?
20
+ date_rates = rates[date]
21
+ raise_no_rates_for_date_error(date) if date_rates.nil?
24
22
 
25
- rate = rates.dig(date_for_rate.to_s, from_currency.upcase)
23
+ rate = rates.dig(date, from_currency.upcase)
26
24
  return rate unless rate.nil?
27
25
 
28
26
  raise NoRateForCurrencyError,
@@ -31,20 +29,8 @@ module SKVReport
31
29
 
32
30
  private
33
31
 
34
- # Test number of times this recursive method is called?
35
- def find_previous_existing_date(date)
36
- return nil if date_outside_of_range?(date)
37
-
38
- rates[date.to_s].nil? ? find_previous_existing_date(date - 1) : date
39
- end
40
-
41
- def date_outside_of_range?(date)
42
- date < start_at || date > end_at
43
- end
44
-
45
32
  def raise_no_rates_for_date_error(date)
46
- raise NoRatesForDateError,
47
- "date: #{date}\nstart_at: #{start_at}\nend_at: #{end_at}"
33
+ raise NoRatesForDateError, "date: #{date}\navailable_dates: #{rates.keys}"
48
34
  end
49
35
  end
50
36
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SKVReport
4
- VERSION = '0.2.0'
4
+ VERSION = '0.3.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: skv_report
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - frdrkolsson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-03-17 00:00:00.000000000 Z
11
+ date: 2021-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: money
@@ -85,7 +85,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
85
  - !ruby/object:Gem::Version
86
86
  version: '0'
87
87
  requirements: []
88
- rubygems_version: 3.2.3
88
+ rubygems_version: 3.2.15
89
89
  signing_key:
90
90
  specification_version: 4
91
91
  summary: Generates CSV complete string for Skatteverkets Periodisk Sammanfattning