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 +4 -4
- data/Gemfile.lock +5 -5
- data/lib/skv_report/exchange_rates.rb +6 -20
- data/lib/skv_report/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c31bd0550e519a43a66dd68769bc31ff1fe7b0b31bcbedb00ceb347c2f0aa85c
|
4
|
+
data.tar.gz: b207e0835e2775c0715ac331a8e76ca9f3eb7418af1ecd1f06addb6ea90f4e2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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.
|
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.
|
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.
|
27
|
+
i18n (1.8.10)
|
28
28
|
concurrent-ruby (~> 1.0)
|
29
29
|
method_source (1.0.0)
|
30
|
-
money (6.14.
|
30
|
+
money (6.14.1)
|
31
31
|
i18n (>= 0.6.4, <= 2)
|
32
|
-
nokogiri (1.11.
|
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, :
|
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
|
-
|
23
|
-
raise_no_rates_for_date_error(date) if
|
20
|
+
date_rates = rates[date]
|
21
|
+
raise_no_rates_for_date_error(date) if date_rates.nil?
|
24
22
|
|
25
|
-
rate = rates.dig(
|
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
|
data/lib/skv_report/version.rb
CHANGED
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.
|
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-
|
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.
|
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
|