easter 0.1.2 → 0.2.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.
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