feriados 2.1.1 → 3.0.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cfff3d04ae5c302b400f063a83ff4f8d6ac5e0c6
4
- data.tar.gz: 633dc8d651430874151ed33b513a0948db6f3349
3
+ metadata.gz: 132b8e4a800c3cb3a2e24eccb914eef054ad152d
4
+ data.tar.gz: 2bf6ba574acd5cba5fefa4c1dc63f5633731a578
5
5
  SHA512:
6
- metadata.gz: 85f0f0d8774c08751eb3057955ac6bedb0873793c54bfe7b34daeb4ee231a8dd74e27264140d734c77434dbb7de5d0b49637e4071266bb68f2f5fb139bf50cfe
7
- data.tar.gz: f37bff8af351696ad8abb0297e146e84c50f85596268e3d49267366b8cb2faeae269495fd31260cc6519ccf7ce36be56eb46dd948bbbb859c6a8311bfaa59616
6
+ metadata.gz: 8cf269e31c1861050e8aadc51d4fddb7aba389415fa222aa82d7efb7cbbcf1dc5a8c63d21c3f1b54e73a3db169aa4427952faa69e2af34d3ef22ed761989aec0
7
+ data.tar.gz: d2d1c2da3df0cccd210fa9c355284d0950d19cdac84b2353e6f3c3495ce28718a44eb0239e78593d063177daa0451a7705a3faa7bc8d029fceb0b1dc1b014726
@@ -1,61 +1,67 @@
1
- #encoding: utf-8
1
+ # encoding: UTF-8
2
2
 
3
3
  module Feriados
4
4
  module Argentina
5
5
  # Feriados Fijos
6
6
  Feriados.add 'Año nuevo', day: 1, month: 1
7
7
  Feriados.add 'Día Nacional de la Memoria por la Verdad y la Justicia',
8
- day: 24, month: 3
8
+ day: 24, month: 3
9
9
  Feriados.add 'Día del Veterano y de los Caídos en la Guerra de Malvinas',
10
- day: 2, month: 4
10
+ day: 2, month: 4
11
11
  Feriados.add 'Día del trabajador', day: 1, month: 5
12
12
  Feriados.add 'Día de la Revolución de Mayo', day: 25, month: 5
13
- Feriados.add 'Paso a la Inmortalidad del General Manuel Belgrano', day: 20,
14
- month: 6
13
+ Feriados.add 'Paso a la Inmortalidad del General Manuel Belgrano',
14
+ day: 20, month: 6
15
15
  Feriados.add 'Día de la Independencia', day: 9, month: 7
16
16
  Feriados.add 'Inmaculada Concepción de María', day: 8, month: 12
17
17
  Feriados.add 'Navidad', day: 25, month: 12
18
18
 
19
19
  # Feriados calculados
20
- Feriados.add 'easter', function: ->(year) { Feriados.easter(year) }
21
- Feriados.add 'Viernes Santo', function: ->(year) { Feriados.easter(year) - 2 }
22
- Feriados.add 'Jueves Santo', function: ->(year) { Feriados.easter(year) - 3 }
23
- Feriados.add 'Lunes de Carnaval', function: ->(year) { Feriados.easter(year) - 48 }
24
- Feriados.add 'Martes de Carnaval', function: ->(year) { Feriados.easter(year) - 47 }
20
+ Feriados.add 'easter', function: -> (year) { Feriados.easter(year) }
21
+ Feriados.add 'Viernes Santo',
22
+ function: -> (year) { Feriados.easter(year) - 2 }
23
+ Feriados.add 'Jueves Santo',
24
+ function: -> (year) { Feriados.easter(year) - 3 }
25
+ Feriados.add 'Lunes de Carnaval',
26
+ function: -> (year) { Feriados.easter(year) - 48 }
27
+ Feriados.add 'Martes de Carnaval',
28
+ function: -> (year) { Feriados.easter(year) - 47 }
25
29
 
26
30
  # Feriados relativos
27
31
  Feriados.add 'Paso a la Inmortalidad del General José de San Martín',
28
- day: 17, month: 8, fix_change: [:third, :monday]
29
- Feriados.add 'Día del Respeto a la Diversidad Cultural', day: 12, month: 10,
30
- fix_change: [:second, :monday]
31
- Feriados.add 'Día de la Soberanía Nacional', day: 20, month: 11,
32
- fix_change: [:fourth, :monday]
32
+ day: 17, month: 8, fix_change: [:third, :monday]
33
+ Feriados.add 'Día del Respeto a la Diversidad Cultural',
34
+ day: 12, month: 10, fix_change: [:second, :monday]
35
+ Feriados.add 'Día de la Soberanía Nacional',
36
+ day: 20, month: 11, fix_change: [:fourth, :monday]
33
37
 
34
38
  # Feriados especiales 2012
35
- Feriados.add "Día del Bicentenario de la Creación y Primera Jura de la \
36
- Bandera Argentina", day: 27, month: 2, year: 2012
37
- Feriados.add "Día del Bicentenario de la Batalla de Tucumán", day: 24,
38
- month: 9, year: 2012
39
- Feriados.add "Feriado puente", day: 30, month: 4, year: 2012
40
- Feriados.add "Feriado puente", day: 24, month: 12, year: 2012
39
+ Feriados.add 'Día del Bicentenario de la Creación y Primera Jura de la'\
40
+ 'Bandera Argentina', day: 27, month: 2, year: 2012
41
+ Feriados.add 'Día del Bicentenario de la Batalla de Tucumán',
42
+ day: 24, month: 9, year: 2012
43
+ Feriados.add 'Feriado puente', day: 30, month: 4, year: 2012
44
+ Feriados.add 'Feriado puente', day: 24, month: 12, year: 2012
41
45
 
42
46
  # Feriados especiales 2013
43
- Feriados.add "Bicentenario de la Asamblea General Constituyente de 1813",
44
- day: 31, month: 1, year: 2013
45
- Feriados.add "Día de la Batalla de Salta", day: 20, month: 2, year: 2013
46
- Feriados.add "Feriado puente", day: 1, month: 4, year: 2013
47
- Feriados.add "Feriado puente", day: 21, month: 6, year: 2013
47
+ Feriados.add 'Bicentenario de la Asamblea General Constituyente de 1813',
48
+ day: 31, month: 1, year: 2013
49
+ Feriados.add 'Día de la Batalla de Salta', day: 20, month: 2, year: 2013
50
+ Feriados.add 'Feriado puente', day: 1, month: 4, year: 2013
51
+ Feriados.add 'Feriado puente', day: 21, month: 6, year: 2013
48
52
 
49
53
  # Feriados especiales 2014
50
- Feriados.add "Feriado puente", day: 2, month: 5, year: 2014
51
- Feriados.add "Feriado puente", day: 26, month: 12, year: 2014
54
+ Feriados.add 'Feriado puente', day: 2, month: 5, year: 2014
55
+ Feriados.add 'Feriado puente', day: 26, month: 12, year: 2014
52
56
 
53
57
  # Feriados especiales 2015
54
- Feriados.add "Feriado puente", day: 23, month: 3, year: 2015
55
- Feriados.add "Feriado puente", day: 7, month: 12, year: 2015
58
+ Feriados.add 'Feriado puente', day: 23, month: 3, year: 2015
59
+ Feriados.add 'Bicentenario del Congreso de los Pueblos Libres',
60
+ day: 29, month: 6, year: 2015
61
+ Feriados.add 'Feriado puente', day: 7, month: 12, year: 2015
56
62
 
57
63
  # Feriados especiales 2016
58
- Feriados.add "Feriado puente", day: 8, month: 7, year: 2016
59
- Feriados.add "Feriado puente", day: 9, month: 12, year: 2016
64
+ Feriados.add 'Feriado puente', day: 8, month: 7, year: 2016
65
+ Feriados.add 'Feriado puente', day: 9, month: 12, year: 2016
60
66
  end
61
67
  end
data/lib/feriados.rb CHANGED
@@ -1,18 +1,18 @@
1
1
  require 'date'
2
2
 
3
3
  module Feriados
4
- DAYS = {sunday: 7, monday: 1, tuesday: 2, wednesday: 3, thursday: 4,
5
- friday: 5, saturday: 6}
4
+ DAYS = { sunday: 7, monday: 1, tuesday: 2, wednesday: 3, thursday: 4,
5
+ friday: 5, saturday: 6 }
6
6
 
7
7
  def self.add(description, options = {})
8
- @holidays_by_month ||= {}
9
8
  month = options[:month] || 0
9
+ @holidays_by_month ||= {}
10
10
  @holidays_by_month[month] ||= []
11
- @holidays_by_month[month] << {description: description}.merge!(options)
11
+ @holidays_by_month[month] << { description: description }.merge!(options)
12
12
  end
13
13
 
14
14
  def self.calculated(th, day, month, year)
15
- n = {first: 1, second: 2, third: 3, fourth: 4}
15
+ n = { first: 1, second: 2, third: 3, fourth: 4 }
16
16
 
17
17
  week = n[th]
18
18
  date = Date.civil(year, month, 1)
@@ -23,10 +23,9 @@ module Feriados
23
23
  end
24
24
 
25
25
  def self.easter(year)
26
- y = year
27
- a = y % 19
28
- b = y / 100
29
- c = y % 100
26
+ a = year % 19
27
+ b = year / 100
28
+ c = year % 100
30
29
  d = b / 4
31
30
  e = b % 4
32
31
  f = (b + 8) / 25
@@ -38,6 +37,7 @@ module Feriados
38
37
  m = (a + 11 * h + 22 * l) / 451
39
38
  month = (h + l - 7 * m + 114) / 31
40
39
  day = ((h + l - 7 * m + 114) % 31) + 1
40
+
41
41
  Date.civil(year, month, day)
42
42
  end
43
43
 
@@ -53,25 +53,23 @@ module Feriados
53
53
 
54
54
  dates.each do |year, months|
55
55
  months.each do |month|
56
- if holidays = @holidays_by_month[month]
57
- holidays.each do |holiday|
58
- description = holiday[:description]
59
-
60
- date = if holiday[:function]
61
- holiday[:function].call(year)
62
- elsif holiday[:fix_change]
63
- calculated(holiday[:fix_change][0], holiday[:fix_change][1],
64
- month, year)
65
- elsif holiday[:variable_change]
66
- holiday[:variable_change].call(Date.civil(year, month,
67
- holiday[:day]))
68
- else
69
- Date.civil(holiday[:year] || year, month, holiday[:day])
70
- end
56
+ next unless (holidays = @holidays_by_month[month])
57
+ holidays.each do |holiday|
58
+ description = holiday[:description]
59
+ date = if holiday[:function]
60
+ holiday[:function].call(year)
61
+ elsif holiday[:fix_change]
62
+ calculated(holiday[:fix_change][0], holiday[:fix_change][1],
63
+ month, year)
64
+ elsif holiday[:variable_change]
65
+ holiday[:variable_change].call(Date.civil(year, month,
66
+ holiday[:day]))
67
+ else
68
+ Date.civil(holiday[:year] || year, month, holiday[:day])
69
+ end
71
70
 
72
- if date.between?(start_date, end_date) && date.year == year
73
- list << { date: date, description: description }
74
- end
71
+ if date.between?(start_date, end_date) && date.year == year
72
+ list << { date: date, description: description }
75
73
  end
76
74
  end
77
75
  end
@@ -82,12 +80,12 @@ module Feriados
82
80
  end
83
81
 
84
82
  class Date
85
- def is_holiday?
83
+ def holiday?
86
84
  holidays = Feriados.between(self, self)
87
85
  holidays && !holidays.empty?
88
86
  end
89
87
 
90
- def is_week_end?
91
- self.wday == 6 or self.wday == 0
88
+ def week_end?
89
+ wday == 6 || wday == 0
92
90
  end
93
91
  end
@@ -1,30 +1,24 @@
1
- #encoding:utf-8
1
+ # encoding: UTF-8
2
2
 
3
- require 'helper.rb'
3
+ require 'test_helper.rb'
4
4
 
5
5
  class DateTests < MiniTest::Test
6
- def setup
7
- @date = Date.civil(2012,1,1)
8
- end
9
-
10
6
  def test_extending_date_class
11
- assert @date.respond_to?('is_holiday?')
12
- assert @date.respond_to?('is_week_end?')
7
+ @date = Date.civil(2012, 1, 1)
8
+
9
+ assert @date.respond_to?('holiday?')
10
+ assert @date.respond_to?('week_end?')
13
11
  end
14
12
 
15
13
  def test_week_end
16
- regulars = [ :monday, :tuesday, :wednesday, :thursday, :friday ]
17
- week_end = [ :saturday, :sunday ]
18
- nths = [ :first, :second, :third, :fourth ]
19
-
20
14
  (2012..2015).each do |year|
21
15
  (1..12).each do |month|
22
16
  nths.each do |n|
23
17
  regulars.each do |day|
24
- assert !Feriados.calculated(n, day, month, year).is_week_end?
18
+ refute Feriados.calculated(n, day, month, year).week_end?
25
19
  end
26
20
  week_end.each do |day|
27
- assert Feriados.calculated(n, day, month, year).is_week_end?
21
+ assert Feriados.calculated(n, day, month, year).week_end?
28
22
  end
29
23
  end
30
24
  end
@@ -32,7 +26,7 @@ class DateTests < MiniTest::Test
32
26
  end
33
27
 
34
28
  def test_calculated
35
- # Día de la bandera.
29
+ # Dia de la bandera.
36
30
  assert_equal 18, Feriados.calculated(:third, :monday, 6, 2012).day
37
31
  assert_equal 17, Feriados.calculated(:third, :monday, 6, 2013).day
38
32
  assert_equal 16, Feriados.calculated(:third, :monday, 6, 2014).day
@@ -62,13 +56,25 @@ class DateTests < MiniTest::Test
62
56
 
63
57
  def test_fix_holidays
64
58
  2012.upto(2015) do |year|
65
- assert Date.civil(year, 1, 1).is_holiday?
66
- assert Date.civil(year, 3, 24).is_holiday?
67
- assert Date.civil(year, 4, 2).is_holiday?
68
- assert Date.civil(year, 5, 1).is_holiday?
69
- assert Date.civil(year, 7, 9).is_holiday?
70
- assert Date.civil(year, 12, 8).is_holiday?
71
- assert Date.civil(year, 12, 25).is_holiday?
59
+ assert Date.civil(year, 1, 1).holiday?
60
+ assert Date.civil(year, 3, 24).holiday?
61
+ assert Date.civil(year, 4, 2).holiday?
62
+ assert Date.civil(year, 5, 1).holiday?
63
+ assert Date.civil(year, 7, 9).holiday?
64
+ assert Date.civil(year, 12, 8).holiday?
65
+ assert Date.civil(year, 12, 25).holiday?
72
66
  end
73
67
  end
68
+
69
+ def regulars
70
+ [:monday, :tuesday, :wednesday, :thursday, :friday]
71
+ end
72
+
73
+ def week_end
74
+ [:saturday, :sunday]
75
+ end
76
+
77
+ def nths
78
+ [:first, :second, :third, :fourth]
79
+ end
74
80
  end
File without changes
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: feriados
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 3.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Rabuini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-07 00:00:00.000000000 Z
11
+ date: 2015-06-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Feriados argentinos. Adaptable to other countries
14
14
  email:
@@ -19,8 +19,8 @@ extra_rdoc_files: []
19
19
  files:
20
20
  - lib/feriados.rb
21
21
  - lib/feriados/argentina.rb
22
- - test/helper.rb
23
- - test/test_date.rb
22
+ - test/date_test.rb
23
+ - test/test_helper.rb
24
24
  homepage: https://github.com/srabuini/feriados
25
25
  licenses:
26
26
  - MIT
@@ -41,11 +41,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
41
41
  version: '0'
42
42
  requirements: []
43
43
  rubyforge_project:
44
- rubygems_version: 2.4.1
44
+ rubygems_version: 2.4.5
45
45
  signing_key:
46
46
  specification_version: 4
47
47
  summary: Feriados argentinos
48
48
  test_files:
49
- - test/helper.rb
50
- - test/test_date.rb
49
+ - test/date_test.rb
50
+ - test/test_helper.rb
51
51
  has_rdoc: