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 +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
|