taxedo 0.0.3 → 0.0.4
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.
- data/data/regions.yml +5 -0
- data/languages/fr.yml +4 -0
- data/lib/taxedo/receipt.rb +8 -3
- data/lib/taxedo/region.rb +2 -0
- data/spec/taxedo/region_spec.rb +4 -0
- data/spec/taxedo_spec.rb +12 -1
- metadata +8 -8
data/data/regions.yml
CHANGED
@@ -27,6 +27,7 @@ taxedo:
|
|
27
27
|
|
28
28
|
rules:
|
29
29
|
standard: ['gst', 'qst']
|
30
|
+
non_taxable: ['gst_zero', 'qst_zero']
|
30
31
|
books: ['gst']
|
31
32
|
|
32
33
|
taxes:
|
@@ -34,8 +35,12 @@ taxedo:
|
|
34
35
|
19910101: 700
|
35
36
|
20060701: 600
|
36
37
|
20080101: 500
|
38
|
+
gst_zero:
|
39
|
+
19910101: 0
|
37
40
|
qst:
|
38
41
|
19940513: 650
|
39
42
|
19980101: 750
|
40
43
|
20110101: 850
|
41
44
|
20120101: 950
|
45
|
+
qst_zero:
|
46
|
+
19910101: 0
|
data/languages/fr.yml
CHANGED
data/lib/taxedo/receipt.rb
CHANGED
@@ -18,6 +18,10 @@ class Taxedo::Receipt
|
|
18
18
|
@taxes << tax
|
19
19
|
end
|
20
20
|
|
21
|
+
def language
|
22
|
+
defined?(I18n) ? I18n.locale.to_s : 'fr'
|
23
|
+
end
|
24
|
+
|
21
25
|
def subtotal
|
22
26
|
@amount
|
23
27
|
end
|
@@ -25,7 +29,10 @@ class Taxedo::Receipt
|
|
25
29
|
def t(path)
|
26
30
|
text = @translations
|
27
31
|
|
28
|
-
path.split('.').each
|
32
|
+
path.split('.').each do |p|
|
33
|
+
raise "TAXEDO: No #{language} translation for #{path}." if not text
|
34
|
+
text = text[p]
|
35
|
+
end
|
29
36
|
|
30
37
|
return text.to_s
|
31
38
|
end
|
@@ -62,8 +69,6 @@ class Taxedo::Receipt
|
|
62
69
|
private
|
63
70
|
|
64
71
|
def load_translations
|
65
|
-
language = defined?(I18n) ? I18n.locale.to_s : 'fr'
|
66
|
-
|
67
72
|
@translations = YAML.load_file(Taxedo.base_languages_path + "#{language}.yml")['taxedo'][language]
|
68
73
|
end
|
69
74
|
|
data/lib/taxedo/region.rb
CHANGED
data/spec/taxedo/region_spec.rb
CHANGED
@@ -19,6 +19,10 @@ describe Taxedo::Region do
|
|
19
19
|
the("result.total") { should eql 11396 }
|
20
20
|
end
|
21
21
|
end
|
22
|
+
|
23
|
+
context "when calculating taxes on 100$ with a rule that doesn't exists" do
|
24
|
+
it { expect { region.calculate(10000, :rule => 'unknown') }.to raise_error("TAXEDO: This tax rule doesn't exists!") }
|
25
|
+
end
|
22
26
|
end
|
23
27
|
|
24
28
|
context "with the can region" do
|
data/spec/taxedo_spec.rb
CHANGED
@@ -6,6 +6,17 @@ describe Taxedo do
|
|
6
6
|
end
|
7
7
|
|
8
8
|
describe "::tax_for" do
|
9
|
-
|
9
|
+
context "when getting the quebec tax for 10$ in text format" do
|
10
|
+
subject { Taxedo.tax_for 'quebec', 1000, format: :text }
|
11
|
+
|
12
|
+
it { should eql "Sous-total .... 10,00$\nTPS ........... 0,50$\nTVQ ........... 1,00$\nTotal ......... 11,50$" }
|
13
|
+
|
14
|
+
context "with a non_taxable rule" do
|
15
|
+
subject { Taxedo.tax_for 'quebec', 1000, format: :text, :rule => 'non_taxable' }
|
16
|
+
|
17
|
+
it { should eql "Sous-total .... 10,00$\nTPS ........... 0,00$\nTVQ ........... 0,00$\nTotal ......... 10,00$" }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
10
21
|
end
|
11
22
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taxedo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-05-
|
12
|
+
date: 2012-05-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
16
|
-
requirement: &
|
16
|
+
requirement: &2153049320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 0.8.7
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2153049320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec
|
27
|
-
requirement: &
|
27
|
+
requirement: &2153048540 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '2.0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2153048540
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec-aspic
|
38
|
-
requirement: &
|
38
|
+
requirement: &2153047200 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: 0.0.2
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *2153047200
|
47
47
|
description: ''
|
48
48
|
email:
|
49
49
|
- sebastien@demarque.com
|