feriados 4.0.0 → 4.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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
@@ -1,6 +1,6 @@
1
1
  ARGV.select do |argument|
2
2
  case argument
3
- when /\*/ then
3
+ when /\*/
4
4
  Dir.glob(argument).each do |file|
5
5
  require File.expand_path(file)
6
6
  end
@@ -1,6 +1,6 @@
1
- require 'minitest/autorun'
2
- require 'minitest/reporters'
1
+ require 'simplecov'
2
+ SimpleCov.start
3
3
 
4
- Minitest::Reporters.use! [Minitest::Reporters::DefaultReporter.new(color: true)]
4
+ require 'minitest/autorun'
5
5
 
6
- require_relative '../lib/feriados'
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.0.0
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: 2016-05-16 00:00:00.000000000 Z
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: '0'
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
- rubyforge_project:
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/runner.rb
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
@@ -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