skv_report 0.2.0 → 0.3.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
  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