feriados 4.0.0 → 4.4.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 +5 -5
- data/lib/feriados.rb +4 -2
- data/lib/feriados/calendar.rb +29 -3
- data/lib/feriados/loader.rb +20 -0
- data/lib/feriados/rules.rb +46 -115
- data/lib/feriados/rules/carnival_monday.rb +9 -0
- data/lib/feriados/rules/carnival_tuesday.rb +9 -0
- data/lib/feriados/rules/day_of_month.rb +23 -0
- data/lib/feriados/rules/day_of_week.rb +22 -0
- data/lib/feriados/rules/easter.rb +78 -0
- data/lib/feriados/rules/fix_date.rb +24 -0
- data/lib/feriados/rules/fix_week_day.rb +25 -0
- data/lib/feriados/rules/function.rb +9 -0
- data/lib/feriados/rules/holy_friday.rb +9 -0
- data/lib/feriados/rules/holy_thursday.rb +9 -0
- data/lib/feriados/rules/rule_base.rb +23 -0
- data/test/date_test.rb +2 -1
- data/test/day_of_month_test.rb +63 -0
- data/test/day_off_week_test.rb +71 -0
- data/test/easter_test.rb +52 -0
- data/test/feriados_test.rb +42 -263
- data/test/fix_date_test.rb +59 -0
- data/test/fix_week_day_test.rb +48 -0
- data/test/holy_friday_test.rb +52 -0
- data/test/holy_thursday_test.rb +28 -0
- data/test/runner.rb +1 -1
- data/test/test_helper.rb +4 -4
- metadata +60 -8
- data/lib/feriados/argentina.rb +0 -49
@@ -0,0 +1,59 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class FixDateTest < Minitest::Test
|
4
|
+
include Feriados::Rules
|
5
|
+
include Feriados
|
6
|
+
|
7
|
+
def test_a_fix_date_can_be_a_holiday
|
8
|
+
calendar = Calendar.new
|
9
|
+
|
10
|
+
date = Date.new(2016, 1, 1)
|
11
|
+
|
12
|
+
calendar.add(FixDate.new(2016, 1, 1))
|
13
|
+
|
14
|
+
assert calendar.holiday?(date)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_a_fix_date_can_have_a_name
|
18
|
+
calendar = Calendar.new
|
19
|
+
|
20
|
+
date = Date.new(2016, 1, 1)
|
21
|
+
|
22
|
+
calendar.add(FixDate.new(2016, 1, 1, 'new year'))
|
23
|
+
|
24
|
+
assert calendar.holiday_name(date)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_a_fix_date_can_be_not_a_holiday
|
28
|
+
calendar = Calendar.new
|
29
|
+
|
30
|
+
refute calendar.holiday?(Date.new(2016, 1, 1))
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_a_bunch_of_dates_can_be_a_holiday
|
34
|
+
calendar = Calendar.new
|
35
|
+
|
36
|
+
date = Date.new(2016, 4, 29)
|
37
|
+
another_date = Date.new(2016, 4, 30)
|
38
|
+
|
39
|
+
calendar.add(FixDate.new(2016, 4, 29))
|
40
|
+
calendar.add(FixDate.new(2016, 4, 30))
|
41
|
+
|
42
|
+
assert calendar.holiday?(date)
|
43
|
+
assert calendar.holiday?(another_date)
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_a_fix_date_rule_can_be_deleted
|
47
|
+
calendar = Calendar.new
|
48
|
+
|
49
|
+
date = Date.new(2016, 5, 1)
|
50
|
+
|
51
|
+
calendar.add(FixDate.new(date.year, date.month, date.day))
|
52
|
+
|
53
|
+
assert calendar.holiday?(date)
|
54
|
+
|
55
|
+
calendar.remove(FixDate.new(date.year, date.month, date.day))
|
56
|
+
|
57
|
+
refute calendar.holiday?(date)
|
58
|
+
end
|
59
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class FixWeekDayTest < Minitest::Test
|
4
|
+
include Feriados::Rules
|
5
|
+
include Feriados
|
6
|
+
|
7
|
+
def test_fix_week_day_rule
|
8
|
+
calendar = Calendar.new
|
9
|
+
|
10
|
+
calendar.add(FixWeekDay.new(4, 1, 11))
|
11
|
+
calendar.add(FixWeekDay.new(3, 1, 8))
|
12
|
+
|
13
|
+
assert calendar.holiday?(Date.new(2016, 11, 28))
|
14
|
+
assert calendar.holiday?(Date.new(2016, 8, 15))
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_fix_week_can_have_a_name
|
18
|
+
calendar = Calendar.new
|
19
|
+
|
20
|
+
calendar.add(FixWeekDay.new(3, 1, 8, 'nice holiday'))
|
21
|
+
|
22
|
+
assert_equal 'nice holiday', calendar.holiday_name(Date.new(2016, 8, 15))
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_not_fix_week_day_rule
|
26
|
+
calendar = Calendar.new
|
27
|
+
|
28
|
+
date = Date.new(2016, 5, 2)
|
29
|
+
|
30
|
+
calendar.add(FixWeekDay.new(2, 1, 5))
|
31
|
+
|
32
|
+
refute calendar.holiday?(date)
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_remove_fix_week_day_rule
|
36
|
+
calendar = Calendar.new
|
37
|
+
|
38
|
+
date = Date.new(2016, 11, 28)
|
39
|
+
|
40
|
+
calendar.add(FixWeekDay.new(4, 1, 11))
|
41
|
+
|
42
|
+
assert calendar.holiday?(date)
|
43
|
+
|
44
|
+
calendar.remove(FixWeekDay.new(4, 1, 11))
|
45
|
+
|
46
|
+
refute calendar.holiday?(date)
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class HolyFridayTest < Minitest::Test
|
4
|
+
include Feriados::Rules
|
5
|
+
include Feriados
|
6
|
+
|
7
|
+
def test_holy_friday
|
8
|
+
calendar = Calendar.new
|
9
|
+
|
10
|
+
date = Date.new(2016, 3, 25)
|
11
|
+
|
12
|
+
calendar.add(HolyFriday)
|
13
|
+
|
14
|
+
assert calendar.holiday?(date)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_holy_friday_has_name
|
18
|
+
calendar = Calendar.new
|
19
|
+
|
20
|
+
date = Date.new(2016, 3, 25)
|
21
|
+
|
22
|
+
calendar.add(HolyFriday)
|
23
|
+
|
24
|
+
HolyFriday.name = 'viernes santo'
|
25
|
+
|
26
|
+
assert_equal 'viernes santo', calendar.holiday_name(date)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_not_holy_friday
|
30
|
+
calendar = Calendar.new
|
31
|
+
|
32
|
+
date = Date.new(2016, 3, 20)
|
33
|
+
|
34
|
+
calendar.add(HolyFriday)
|
35
|
+
|
36
|
+
refute calendar.holiday?(date)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_remove_holy_friday
|
40
|
+
calendar = Calendar.new
|
41
|
+
|
42
|
+
date = Date.new(2016, 3, 25)
|
43
|
+
|
44
|
+
calendar.add(HolyFriday)
|
45
|
+
|
46
|
+
assert calendar.holiday?(date)
|
47
|
+
|
48
|
+
calendar.remove(HolyFriday)
|
49
|
+
|
50
|
+
refute calendar.holiday?(date)
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'test_helper'
|
2
|
+
|
3
|
+
class HolyThursdayTest < Minitest::Test
|
4
|
+
include Feriados::Rules
|
5
|
+
include Feriados
|
6
|
+
|
7
|
+
def test_holy_thursday
|
8
|
+
calendar = Calendar.new
|
9
|
+
|
10
|
+
date = Date.new(2016, 3, 24)
|
11
|
+
|
12
|
+
calendar.add(HolyThursday)
|
13
|
+
|
14
|
+
assert calendar.holiday?(date)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_holy_thursday_has_name
|
18
|
+
calendar = Calendar.new
|
19
|
+
|
20
|
+
date = Date.new(2016, 3, 24)
|
21
|
+
|
22
|
+
calendar.add(HolyThursday)
|
23
|
+
|
24
|
+
HolyThursday.name = 'jueves santo'
|
25
|
+
|
26
|
+
assert_equal 'jueves santo', calendar.holiday_name(date)
|
27
|
+
end
|
28
|
+
end
|
data/test/runner.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
require '
|
2
|
-
|
1
|
+
require 'simplecov'
|
2
|
+
SimpleCov.start
|
3
3
|
|
4
|
-
|
4
|
+
require 'minitest/autorun'
|
5
5
|
|
6
|
-
|
6
|
+
require 'feriados'
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: feriados
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sebastian Rabuini
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
12
|
-
dependencies:
|
11
|
+
date: 2020-07-05 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: minitest
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '5.14'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '5.14'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: simplecov
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0.17'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0.17'
|
13
41
|
description: Make holidays calendars from rules
|
14
42
|
email:
|
15
43
|
- srabuini@gmail.com
|
@@ -18,11 +46,29 @@ extensions: []
|
|
18
46
|
extra_rdoc_files: []
|
19
47
|
files:
|
20
48
|
- lib/feriados.rb
|
21
|
-
- lib/feriados/argentina.rb
|
22
49
|
- lib/feriados/calendar.rb
|
50
|
+
- lib/feriados/loader.rb
|
23
51
|
- lib/feriados/rules.rb
|
52
|
+
- lib/feriados/rules/carnival_monday.rb
|
53
|
+
- lib/feriados/rules/carnival_tuesday.rb
|
54
|
+
- lib/feriados/rules/day_of_month.rb
|
55
|
+
- lib/feriados/rules/day_of_week.rb
|
56
|
+
- lib/feriados/rules/easter.rb
|
57
|
+
- lib/feriados/rules/fix_date.rb
|
58
|
+
- lib/feriados/rules/fix_week_day.rb
|
59
|
+
- lib/feriados/rules/function.rb
|
60
|
+
- lib/feriados/rules/holy_friday.rb
|
61
|
+
- lib/feriados/rules/holy_thursday.rb
|
62
|
+
- lib/feriados/rules/rule_base.rb
|
24
63
|
- test/date_test.rb
|
64
|
+
- test/day_of_month_test.rb
|
65
|
+
- test/day_off_week_test.rb
|
66
|
+
- test/easter_test.rb
|
25
67
|
- test/feriados_test.rb
|
68
|
+
- test/fix_date_test.rb
|
69
|
+
- test/fix_week_day_test.rb
|
70
|
+
- test/holy_friday_test.rb
|
71
|
+
- test/holy_thursday_test.rb
|
26
72
|
- test/runner.rb
|
27
73
|
- test/test_helper.rb
|
28
74
|
homepage: https://github.com/srabuini/feriados
|
@@ -37,20 +83,26 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
37
83
|
requirements:
|
38
84
|
- - ">="
|
39
85
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
86
|
+
version: '2.3'
|
41
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
42
88
|
requirements:
|
43
89
|
- - ">="
|
44
90
|
- !ruby/object:Gem::Version
|
45
91
|
version: '0'
|
46
92
|
requirements: []
|
47
|
-
|
48
|
-
rubygems_version: 2.5.1
|
93
|
+
rubygems_version: 3.0.3
|
49
94
|
signing_key:
|
50
95
|
specification_version: 4
|
51
96
|
summary: Holidays calendars
|
52
97
|
test_files:
|
98
|
+
- test/holy_thursday_test.rb
|
99
|
+
- test/easter_test.rb
|
53
100
|
- test/date_test.rb
|
101
|
+
- test/fix_week_day_test.rb
|
102
|
+
- test/fix_date_test.rb
|
54
103
|
- test/feriados_test.rb
|
55
|
-
- test/
|
104
|
+
- test/day_off_week_test.rb
|
105
|
+
- test/day_of_month_test.rb
|
56
106
|
- test/test_helper.rb
|
107
|
+
- test/holy_friday_test.rb
|
108
|
+
- test/runner.rb
|
data/lib/feriados/argentina.rb
DELETED
@@ -1,49 +0,0 @@
|
|
1
|
-
module Feriados
|
2
|
-
module Argentina
|
3
|
-
include Feriados::Rules
|
4
|
-
|
5
|
-
def self.rules
|
6
|
-
[
|
7
|
-
DayOfMonth.new(1, 1),
|
8
|
-
DayOfMonth.new(24, 3),
|
9
|
-
DayOfMonth.new(2, 4),
|
10
|
-
DayOfMonth.new(1, 5),
|
11
|
-
DayOfMonth.new(25, 5),
|
12
|
-
DayOfMonth.new(20, 6),
|
13
|
-
DayOfMonth.new(9, 7),
|
14
|
-
DayOfMonth.new(8, 12),
|
15
|
-
DayOfMonth.new(25, 12),
|
16
|
-
|
17
|
-
Easter,
|
18
|
-
HolyThursday,
|
19
|
-
HolyFriday,
|
20
|
-
CarnivalMonday,
|
21
|
-
CarnivalTuesday,
|
22
|
-
|
23
|
-
FixWeekDay.new(3, 1, 8),
|
24
|
-
FixWeekDay.new(2, 1, 10),
|
25
|
-
FixWeekDay.new(4, 1, 11),
|
26
|
-
|
27
|
-
FixDate.new(2012, 2, 27),
|
28
|
-
FixDate.new(2012, 9, 24),
|
29
|
-
FixDate.new(2012, 4, 30),
|
30
|
-
FixDate.new(2012, 12, 24),
|
31
|
-
|
32
|
-
FixDate.new(2013, 1, 31),
|
33
|
-
FixDate.new(2013, 2, 20),
|
34
|
-
FixDate.new(2013, 1, 31),
|
35
|
-
FixDate.new(2013, 4, 1),
|
36
|
-
FixDate.new(2013, 6, 21),
|
37
|
-
|
38
|
-
FixDate.new(2014, 5, 2),
|
39
|
-
FixDate.new(2014, 12, 26),
|
40
|
-
|
41
|
-
FixDate.new(2015, 3, 23),
|
42
|
-
FixDate.new(2015, 12, 7),
|
43
|
-
|
44
|
-
FixDate.new(2016, 7, 8),
|
45
|
-
FixDate.new(2016, 12, 9)
|
46
|
-
]
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|