easter 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/lib/easter.rb +69 -1
  5. metadata +50 -27
  6. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0b57e677060629a225b45ea9dbe713e7a76d0ffa
4
- data.tar.gz: dd5d754603c521094bf8fbd481836cf3f58a38f5
2
+ SHA256:
3
+ metadata.gz: c2d7062f0f94c0b5f9e4869073c2dd43a12d371e60ca43f30ea690da6266fac5
4
+ data.tar.gz: cfc3b97c458e0018dcdb58707ca4b81d54a756c3b262c8208bc9264a7f08f9e8
5
5
  SHA512:
6
- metadata.gz: 1993ca2513aeadc000a72d47baeaccae6f738a119c903b6cdc8a0b28bbb127cce26c9d7e1c738f4f34358c0f77d06a3cad0a1defc291a3ec97ceb92853a1a079
7
- data.tar.gz: e5c7f0d376e71bf1bcf6c35d5f9407aa2acc39821a3f61952442b15fe48d48e6e941d79148acabccf84cb3c4bc681a888aa0ff7f62aeeebdbce7ea5ce8f88185
6
+ metadata.gz: eb38a8021056c2b5a6297841eb22d10cf7146b17dec403f79a1705ea86413dae1ea21dea3c66dba94431aca785c66c55bfe11b8d5c7598f81f9496d28dfce440
7
+ data.tar.gz: 1c5267b5b39e14052170bb89d1a3f2f5441deeb102e4a1f2aa5ef860f6a8d256a311a277ebb850149af8959f497b82a29b159641f29d0407e7b9707075b6f0a2
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -20,6 +20,7 @@
20
20
 
21
21
 
22
22
  require 'date'
23
+ require 'human_speakable'
23
24
 
24
25
  class Easter
25
26
 
@@ -58,12 +59,20 @@ class Easter
58
59
  end
59
60
 
60
61
  end
62
+
63
+ def self.holy_thursday(some_year=Time.now.year)
64
+ easter(some_year) - 3
65
+ end
61
66
 
62
67
  # Determine the date of Good Friday for a given year.
63
68
  #
64
69
  def self.good_friday(some_year=Time.now.year)
65
70
  easter(some_year) - 2
66
71
  end
72
+
73
+ def self.holy_saturday(some_year=Time.now.year)
74
+ easter(some_year) - 1
75
+ end
67
76
 
68
77
  # Determine the date of Palm Sunday for a given year.
69
78
  #
@@ -91,6 +100,65 @@ class Easter
91
100
 
92
101
  end
93
102
 
103
+ class EasterVoice
104
+ using HumanSpeakable
105
+
106
+ def initialize(future: false)
107
+ @future = future
108
+ end
109
+
110
+ def easter() date :easter end
111
+ def ascension_day() date :ascension_day, 'Ascension day' end
112
+ def ash_wednesday() date :ash_wednesday, 'Ash Wednesday' end
113
+ def good_friday() date :good_friday, 'Good Friday' end
114
+ def holy_thursday() date :holy_thursday, 'Holy Thursday' end
115
+ def holy_saturday() date :holy_saturday, 'Holy Saturday' end
116
+ def palm_sunday() date :palm_sunday, 'Palm Sunday' end
117
+ def pentecost() date :pentecost, 'Pentecost' end
118
+
119
+ def easter_dates()
120
+ %i(ash_wednesday palm_sunday good_friday easter ascension_day pentecost)\
121
+ .map {|day| method(day).call }.join("\n")
122
+ end
123
+
124
+
125
+ def lent_start() date :ash_wednesday, 'Lent' end
126
+ def lent_end() date :holy_thursday, 'The end of Lent' end
127
+
128
+ def lent()
129
+
130
+ participle = case Date.today
131
+ when (Easter.ash_wednesday..Easter.holy_thursday) then 'is'
132
+ when (Date.new(Date.year)..Easter.ash_wednesday) then 'will be'
133
+ else
134
+ 'was'
135
+ end
136
+
137
+ days = %i(ash_wednesday holy_thursday)\
138
+ .map {|x| Easter.method(x).call.humanize(year: true).sub(/on /,'') }
139
+ "Lent %s from %s to %s." % [participle, *days]
140
+ end
141
+
142
+ private
143
+
144
+ def date(s, label=s.to_s.capitalize)
145
+
146
+ d = Easter.method(s.to_sym).call
147
+
148
+ year = if d < Date.today and @future then
149
+ d = Easter.method(s.to_sym).call(Time.now.year+1)
150
+ ' ' + (Time.now.year+1).to_s
151
+ else
152
+ ''
153
+ end
154
+
155
+ participle = d >= Date.today ? 'is' : 'was'
156
+ r = "%s %s %s" % [label, participle, d.humanize]
157
+ r + year + '.'
158
+ end
159
+
160
+ end
161
+
94
162
  if $0 == __FILE__ then
95
163
 
96
164
  test_year = 2014
@@ -109,4 +177,4 @@ if $0 == __FILE__ then
109
177
 
110
178
  puts out.join "\n"
111
179
 
112
- end
180
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: easter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -10,32 +10,56 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
- YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTE0MDMxNjE1MDYxNVoXDTE1MDMxNjE1MDYxNVowSDESMBAG
16
- A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
- EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBAOXHlhbOsu/ZyeapVqteHz+mSbZD2wfzABBXGqbdOHzb2/wpUYu0ott9aZAK
19
- BTEiuP242oM0mjk+TTGbsls5GS4uKEkEmYXJrAE9m1BxChboMSFRpc9MHKNUSexC
20
- wV5pE66Ktj0IlRKaUN0ZFsTgF6TlUczRXwM8NKLrwpvo5PiR+WSX7QKpSt1/Flh+
21
- 91DToiaFZs2M1SziQdaaAH0bjkoLfLYFw0lEzlGeaeQU8OXGohKWUSsLCsjeNOzU
22
- uII6x1c5iEiVK3e2rmhxHn+boj9rkYzvoZMqy7LisCpJLlo8/6FbcGtyAcD6GnxE
23
- Yq1ugEOF/JHBCJI3cP4ER1+LaDUCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUx8zk6ed9hw6Fo/Az11304nfN9L4wJgYDVR0RBB8w
25
- HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAvRJFX3mm
27
- Q1MH1cYm3wqHSoVLC9brsQH/mlq+1Nnmp+avyppUYzwKTvkJ0Bniqil9yI+4KLxH
28
- 3eNOS4SPDq5LtjFyfa/+lrKJAhZWV2OoL8ra6+ocU/YOzQD1+fCL9WDfFhDcSDDU
29
- TiTsGjlMRxTroAxjaAg4gGpHPEXZGQc+0DlXOypdcgufWsW/HJWQo8vRdeJy7zuZ
30
- 1KQKCvGPs74xt/kN0+EaSpOQc4zcR9MNxjNe4QBqzrozEcoqoElHEYv1FabohPMM
31
- OW9dUl/zTr7KVeB0sQKeNmbhMVFI6bd/YKjhPf55w78F263dXlx12uOhtIAC4IBs
32
- P0/HJZKYxWIGWg==
13
+ MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTkwMzEyMTQwNDA2WhcN
15
+ MjAwMzExMTQwNDA2WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCsLGcP
17
+ N2TZvzn18EabS1LwRBq/o9O+Zd0tOnwu6RGusrqO+p3RpSXiyK1B0j08/BMPDjL8
18
+ Gv4r/k4QCz1psaSWYrFsqXTdfY9M3luvcEPvZM/dnWR56PMp+ZlMHe5foVybeycY
19
+ 6qnWw9/YMMNrd2cGiOfgdrSe5cD2sQC+UtjhIgVGwneuPqkHXdilx3vy8lDMVtiI
20
+ LPSkGDZrworgSZxkANQx8L4CsLKUDdJf9zLcYf6/8zpck3JAILFc8VZilXxmZuC1
21
+ YID98XHoybWsQzQV68yXkFSJKFTGBnb03PEqm8wSduXUhOVTjA/EX+dn71VoCzwR
22
+ 80VALCCk+sd9QlG/Iv+HjvIQY1Da7C7BLX6UY7SrG0qnpwI4UDSssOYkdj7+RnT5
23
+ F+ciUfHlUcc06p2uJGcUJCTyYKQp9s1gC053kiaxs72kD7BtPcqImfn9W6On2gWu
24
+ 0K8m85vJui+3dTeL04zDugvNZ63avIzAfN34bFKTYddp5XOPZMRZsqqYoDECAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU2gCaHyL4
26
+ LKJ0Yq08/sOjkM+y2rgwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
+ c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
+ BgkqhkiG9w0BAQsFAAOCAYEADUoeXNrLKsgNtC5bk+YibO43Xz+zvutBslPq3vTH
29
+ 4UV0ECXRZiPsjkho5U/TnKCp43JkIrzpjH7QnHGEIIXs/NLdS+5MQkj9nrRLNLT8
30
+ KTVBT47U1TCTcnlivYOrrUZo/zS9k4rT9iP+9WLb6sU59/ok2e49YhITRGDAOXtT
31
+ o9hYqTrgWAoGTGA4bbo1FrXLY8NnwOOLUvMU0U35PmH2OPSvODaTS/dD2T/9Op3g
32
+ q5OWIbWW859juxlpuJaMh362Q5o+uDtfIQITlLzkjsiXPbPiI+EfKKR4a1v5ug6t
33
+ RcRhD7vHlqjaIiNUEmYx+gS8bsRpb75Czaj+M4TA8yU2VN8Xxgp2g0SSDVHvg3WO
34
+ SeWYuOIKeuB7CDRo8trpdY3OVbx2Qg/l/RuoLmHaeDWujTgoSx1Phu7CqGPtohsk
35
+ EGBRx2bgD0vhyFYpo2e56w2tqULQe+YRWNX6Jx5gQAfQtqOksWlBWb6Nt3bwx0Rr
36
+ k1sGQxBWf1KccWNeZ3xH0oQn
33
37
  -----END CERTIFICATE-----
34
- date: 2014-05-31 00:00:00.000000000 Z
35
- dependencies: []
38
+ date: 2019-03-12 00:00:00.000000000 Z
39
+ dependencies:
40
+ - !ruby/object:Gem::Dependency
41
+ name: human_speakable
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '0.1'
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 0.1.2
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - "~>"
55
+ - !ruby/object:Gem::Version
56
+ version: '0.1'
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: 0.1.2
36
60
  description: Returns the date for Easter, Ash Wednesday, Palm Sunday, Good Friday,
37
61
  Ascension Day, and Pentecost.
38
- email: james@r0bertson.co.uk
62
+ email: james@jamesrobertson.eu
39
63
  executables: []
40
64
  extensions: []
41
65
  extra_rdoc_files: []
@@ -53,15 +77,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
53
77
  requirements:
54
78
  - - ">="
55
79
  - !ruby/object:Gem::Version
56
- version: '0'
80
+ version: 2.1.2
57
81
  required_rubygems_version: !ruby/object:Gem::Requirement
58
82
  requirements:
59
83
  - - ">="
60
84
  - !ruby/object:Gem::Version
61
85
  version: '0'
62
86
  requirements: []
63
- rubyforge_project:
64
- rubygems_version: 2.2.2
87
+ rubygems_version: 3.0.1
65
88
  signing_key:
66
89
  specification_version: 4
67
90
  summary: Calculates Easter day as well as related days
metadata.gz.sig CHANGED
Binary file