jours_feries_france 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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: cdb219610a129f44fa849fcecd6d8447e062eb8e
4
+ data.tar.gz: bf4386af43d86b9f1c7a9fdd034507a57bb57eb9
5
+ SHA512:
6
+ metadata.gz: 310f12afb176d32374112db5764246c915b20da9427022fa3f3a5bb87890378cf9c5bead7d4c75989c9b604357c2effa448536b2956d26806e0ad3d548999aff
7
+ data.tar.gz: 0a79643fc5c615eec0ed474fd96d5520706b59a4713ee6bc5a4112b0261e5261b591846c6fb71bfafca1a8227264bc8e33ee21f9e053378f99b2e14904fd6636
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in jours_feries_france.gemspec
4
+ gemspec
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "jours_feries_france"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start
@@ -0,0 +1,126 @@
1
+ class JoursFeriesFrance
2
+
3
+ def self.for_year(year, include_alsace=nil)
4
+ res = {
5
+ "Jour de l'an" => self.jourDeLAn(year).strftime("%d/%m/%Y"),
6
+ "Fete du travail" => self.feteDuTravail(year).strftime("%d/%m/%Y"),
7
+ "Victoire des allies" => self.victoireDesAllies(year).strftime("%d/%m/%Y"),
8
+ "Fete Nationale" => self.feteNationale(year).strftime("%d/%m/%Y"),
9
+ "Assomption" => self.assomption(year).strftime("%d/%m/%Y"),
10
+ "Toussaint" => self.toussaint(year).strftime("%d/%m/%Y"),
11
+ "Armistice" => self.armistice(year).strftime("%d/%m/%Y"),
12
+ "Noel" => self.noel(year).strftime("%d/%m/%Y"),
13
+ "Lundi de Paques" => self.lundiDePaques(year).strftime("%d/%m/%Y"),
14
+ "Ascension" => self.ascension(year).strftime("%d/%m/%Y"),
15
+ "Lundi de Pentecote" => self.lundiDePentecote(year).strftime("%d/%m/%Y")
16
+ }
17
+
18
+ if include_alsace
19
+ res["Vendredi Saint"] = self.vendrediSaint(year).strftime("%d/%m/%Y")
20
+ res["Saint Etienne"] = self.saintEtienne(year).strftime("%d/%m/%Y")
21
+ end
22
+ res
23
+ end
24
+
25
+ def self.array_for_year(year, include_alsace=nil)
26
+ res = [
27
+ self.jourDeLAn(year),
28
+ self.feteDuTravail(year),
29
+ self.victoireDesAllies(year),
30
+ self.feteNationale(year),
31
+ self.assomption(year),
32
+ self.toussaint(year),
33
+ self.armistice(year),
34
+ self.noel(year),
35
+ self.lundiDePaques(year),
36
+ self.ascension(year),
37
+ self.lundiDePentecote(year)
38
+ ]
39
+
40
+ if include_alsace
41
+ res.push(self.vendrediSaint(year))
42
+ res.push(self.saintEtienne(year))
43
+ end
44
+ res
45
+ end
46
+
47
+
48
+
49
+ def self.paques(year)
50
+ a = year % 19
51
+ b = (year / 100).floor
52
+ c = year % 100
53
+ d = (19 * a + b - (b / 4).floor - (((b - ((b + 8) / 25).floor + 1) / 3).floor) + 15) % 30
54
+ e = (32 + 2 * (b % 4) + 2 * ((c / 4).floor) - d - (c % 4)) % 7
55
+ f = d + e - 7 * (((a + 11 * d + 22 * e) / 451).floor) + 114
56
+ month = (f / 31).floor
57
+ day = f % 31 + 1
58
+ Date.new(year,month,day)
59
+ end
60
+
61
+ def self.lundiDePaques(year)
62
+ return self.paques(year) + 1
63
+ end
64
+
65
+ def self.vendrediSaint(year)
66
+ return self.paques(year) - 2
67
+ end
68
+
69
+ def self.ascension(year)
70
+ return self.paques(year) + 39
71
+ end
72
+
73
+ def self.lundiDePentecote(year)
74
+ return self.paques(year) + 50
75
+ end
76
+
77
+ def self.jourDeLAn(year)
78
+ Date.new(year,1,1)
79
+ end
80
+
81
+
82
+ def self.feteDuTravail(year)
83
+ Date.new(year,5,1)
84
+ end
85
+
86
+
87
+ def self.victoireDesAllies(year)
88
+ Date.new(year,5,8)
89
+ end
90
+
91
+
92
+ def self.feteNationale(year)
93
+ Date.new(year,7,14)
94
+ end
95
+
96
+
97
+ def self.toussaint(year)
98
+ Date.new(year,11,1)
99
+ end
100
+
101
+
102
+ def self.assomption(year)
103
+ Date.new(year,8,15)
104
+ end
105
+
106
+
107
+ def self.armistice(year)
108
+ Date.new(year,11,11)
109
+ end
110
+
111
+
112
+ def self.noel(year)
113
+ Date.new(year,12,25)
114
+ end
115
+
116
+
117
+ def self.saintEtienne(year)
118
+ Date.new(year,12,26)
119
+ end
120
+
121
+ def self.est_ferie(date)
122
+ y = date.year
123
+ array_for_year(y).include?(date)
124
+ end
125
+
126
+ end
metadata ADDED
@@ -0,0 +1,79 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jours_feries_france
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.4
5
+ platform: ruby
6
+ authors:
7
+ - Louis Perello
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2019-08-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.8'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.8'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ description: A tiny ruby tools for computes bank holidays dates for France, for a
42
+ given year.
43
+ email:
44
+ - louis.perello@otily.fr
45
+ executables: []
46
+ extensions: []
47
+ extra_rdoc_files: []
48
+ files:
49
+ - Gemfile
50
+ - Rakefile
51
+ - bin/console
52
+ - lib/jours_feries_france.rb
53
+ homepage: https://github.com/lokhi/jours_feries_france_ruby.git
54
+ licenses:
55
+ - MIT
56
+ metadata:
57
+ source_code_uri: https://github.com/lokhi/jours_feries_france_ruby.git
58
+ post_install_message:
59
+ rdoc_options: []
60
+ require_paths:
61
+ - lib
62
+ required_ruby_version: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 1.9.3
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: '0'
72
+ requirements: []
73
+ rubyforge_project:
74
+ rubygems_version: 2.2.5
75
+ signing_key:
76
+ specification_version: 4
77
+ summary: A tiny ruby tools for computes bank holidays dates for France, for a given
78
+ year.
79
+ test_files: []