when_easter 0.2.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.
- data/README.md +21 -0
- data/Rakefile +20 -0
- data/VERSION +1 -0
- data/bin/when_easter +5 -0
- data/lib/when_easter.rb +59 -0
- data/when_easter.gemspec +41 -0
- metadata +70 -0
data/README.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# when\_easter
|
2
|
+
|
3
|
+
Ever wondered when will Easter (or Passover, if you prefer) be next year? No worries, use easter\_dates!_
|
4
|
+
|
5
|
+
### Install
|
6
|
+
$ gem install when_easter
|
7
|
+
|
8
|
+
### Use
|
9
|
+
|
10
|
+
$ when_easter
|
11
|
+
In the year 2010, the Roman Easter is on 24 April.
|
12
|
+
In the year 2010, the Greek Easter is on 24 April.
|
13
|
+
|
14
|
+
$ when_easter 2010
|
15
|
+
In the year 2010, the Roman Easter is on 04 April.
|
16
|
+
In the year 2010, the Greek Easter is on 04 April.
|
17
|
+
|
18
|
+
### License
|
19
|
+
|
20
|
+
Released under the MIT license.
|
21
|
+
(c) 2011 Michał Nierebiński
|
data/Rakefile
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
begin
|
4
|
+
require 'jeweler'
|
5
|
+
Jeweler::Tasks.new do |gemspec|
|
6
|
+
gemspec.name= "when_easter"
|
7
|
+
gemspec.summary = "Get the date of Roman and Greek Easter"
|
8
|
+
gemspec.description = "A tool that calculates the dates of Roman and Greek Easter."
|
9
|
+
gemspec.email = "michal@nierebinski.pl"
|
10
|
+
gemspec.homepage = "https://github.com/Loyolny/when_easter"
|
11
|
+
gemspec.executables = ["when_easter"]
|
12
|
+
gemspec.authors = ["Michał Nierebiński"]
|
13
|
+
gemspec.date = File.utime(0,0,'VERSION')
|
14
|
+
|
15
|
+
end
|
16
|
+
Jeweler::GemcutterTasks.new
|
17
|
+
rescue LoadError
|
18
|
+
puts "Ya don't have Jeweler gem installed. Install it with: sudo gem install jeweler"
|
19
|
+
end
|
20
|
+
#Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].sort.each { |ext| load ext }
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.2.1
|
data/bin/when_easter
ADDED
data/lib/when_easter.rb
ADDED
@@ -0,0 +1,59 @@
|
|
1
|
+
class WhenEaster
|
2
|
+
## self.find
|
3
|
+
##=> In the year 2010, the Roman Easter is on 24 April. \n In the year 2010, the Greek Easter is on 24 April.
|
4
|
+
def self.find(year = nil)
|
5
|
+
roman_date = self.roman_easter(year)
|
6
|
+
greek_date = self.greek_easter(year)
|
7
|
+
return "In the year #{roman_date.year}, the Roman easter is on #{roman_date.strftime("%d %B")}. \nIn the year #{greek_date.year}, the Roman easter is on #{greek_date.strftime("%d %B")}."
|
8
|
+
end
|
9
|
+
|
10
|
+
## WhenEaster.roman_easter
|
11
|
+
## => Sun Apr 24 00:00:00 +0200 2011
|
12
|
+
def self.roman_easter(year = nil)
|
13
|
+
year = Time.now.year if year.nil?
|
14
|
+
year = year.to_i if year.is_a?(String)
|
15
|
+
g = year % 19 +1
|
16
|
+
s = (year -1600) / 100 - (year-1600) / 400
|
17
|
+
l = (((year - 1400) / 100) * 8) / 25
|
18
|
+
|
19
|
+
p_2 = (3-11*g +s -l) % 30
|
20
|
+
if p_2 == 29 || (p_2 == 28 && g > 11)
|
21
|
+
p = p_2 -1
|
22
|
+
else
|
23
|
+
p= p_2
|
24
|
+
end
|
25
|
+
|
26
|
+
d= (year + year / 4 - year / 100 + year / 400) % 7
|
27
|
+
d_2 = (8-d) % 7
|
28
|
+
|
29
|
+
p_3 = (80 + p) % 7
|
30
|
+
x_2 = d_2 - p_3
|
31
|
+
|
32
|
+
x = (x_2 -1) % 7 +1
|
33
|
+
e = p+x
|
34
|
+
|
35
|
+
if e < 11
|
36
|
+
Time.local(year,3,e+21)
|
37
|
+
else
|
38
|
+
Time.local(year,4,e-10)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
## WhenEaster.greek_easter
|
43
|
+
## => Sun Apr 24 00:00:00 +0200 2011
|
44
|
+
def self.greek_easter(year = nil)
|
45
|
+
year = Time.now.year if year.nil?
|
46
|
+
year = year.to_i if year.is_a?(String)
|
47
|
+
a = year % 19
|
48
|
+
b = year % 4
|
49
|
+
c = year % 7
|
50
|
+
d = (19 * a + 16) % 30
|
51
|
+
e = (2 * b + 4 * c + 6 * d) % 7;
|
52
|
+
easter = 3 + d + e;
|
53
|
+
if easter <= 30
|
54
|
+
Time.local(year, 4, easter)
|
55
|
+
else
|
56
|
+
Time.local(year, 5, (easter - 30))
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
data/when_easter.gemspec
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{when_easter}
|
8
|
+
s.version = "0.2.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = [%q{Michał Nierebiński}]
|
12
|
+
s.date = %q{2011-06-28}
|
13
|
+
s.description = %q{A tool that calculates the dates of Roman and Greek Easter.}
|
14
|
+
s.email = %q{michal@nierebinski.pl}
|
15
|
+
s.executables = [%q{when_easter}]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
"README.md",
|
21
|
+
"Rakefile",
|
22
|
+
"VERSION",
|
23
|
+
"bin/when_easter",
|
24
|
+
"lib/when_easter.rb",
|
25
|
+
"when_easter.gemspec"
|
26
|
+
]
|
27
|
+
s.homepage = %q{https://github.com/Loyolny/when_easter}
|
28
|
+
s.require_paths = [%q{lib}]
|
29
|
+
s.rubygems_version = %q{1.8.5}
|
30
|
+
s.summary = %q{Get the date of Roman and Greek Easter}
|
31
|
+
|
32
|
+
if s.respond_to? :specification_version then
|
33
|
+
s.specification_version = 3
|
34
|
+
|
35
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
36
|
+
else
|
37
|
+
end
|
38
|
+
else
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
metadata
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: when_easter
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 21
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 2
|
9
|
+
- 1
|
10
|
+
version: 0.2.1
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- "Micha\xC5\x82 Nierebi\xC5\x84ski"
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-06-28 00:00:00 Z
|
19
|
+
dependencies: []
|
20
|
+
|
21
|
+
description: A tool that calculates the dates of Roman and Greek Easter.
|
22
|
+
email: michal@nierebinski.pl
|
23
|
+
executables:
|
24
|
+
- when_easter
|
25
|
+
extensions: []
|
26
|
+
|
27
|
+
extra_rdoc_files:
|
28
|
+
- README.md
|
29
|
+
files:
|
30
|
+
- README.md
|
31
|
+
- Rakefile
|
32
|
+
- VERSION
|
33
|
+
- bin/when_easter
|
34
|
+
- lib/when_easter.rb
|
35
|
+
- when_easter.gemspec
|
36
|
+
homepage: https://github.com/Loyolny/when_easter
|
37
|
+
licenses: []
|
38
|
+
|
39
|
+
post_install_message:
|
40
|
+
rdoc_options: []
|
41
|
+
|
42
|
+
require_paths:
|
43
|
+
- lib
|
44
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
45
|
+
none: false
|
46
|
+
requirements:
|
47
|
+
- - ">="
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
hash: 3
|
50
|
+
segments:
|
51
|
+
- 0
|
52
|
+
version: "0"
|
53
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
54
|
+
none: false
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
hash: 3
|
59
|
+
segments:
|
60
|
+
- 0
|
61
|
+
version: "0"
|
62
|
+
requirements: []
|
63
|
+
|
64
|
+
rubyforge_project:
|
65
|
+
rubygems_version: 1.8.5
|
66
|
+
signing_key:
|
67
|
+
specification_version: 3
|
68
|
+
summary: Get the date of Roman and Greek Easter
|
69
|
+
test_files: []
|
70
|
+
|