holiday_jp 0.2.1 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gemtest +0 -0
- data/.gitignore +4 -19
- data/.travis.yml +5 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +22 -0
- data/Rakefile +4 -38
- data/benchmark.rb +24 -0
- data/holiday_jp.gemspec +17 -47
- data/lib/holiday_jp/holiday.rb +53 -0
- data/lib/holiday_jp/holidays.rb +1290 -0
- data/lib/holiday_jp/version.rb +3 -0
- data/lib/holiday_jp.rb +17 -7715
- data/test/helper.rb +0 -0
- data/test/test_holiday_jp.rb +16 -2
- metadata +68 -56
- data/VERSION +0 -1
data/.gemtest
ADDED
File without changes
|
data/.gitignore
CHANGED
@@ -1,21 +1,6 @@
|
|
1
|
-
## MAC OS
|
2
|
-
.DS_Store
|
3
|
-
|
4
|
-
## TEXTMATE
|
5
|
-
*.tmproj
|
6
|
-
tmtags
|
7
|
-
|
8
|
-
## EMACS
|
9
|
-
*~
|
10
|
-
\#*
|
11
|
-
.\#*
|
12
|
-
|
13
|
-
## VIM
|
14
|
-
*.swp
|
15
|
-
|
16
|
-
## PROJECT::GENERAL
|
17
1
|
coverage
|
18
2
|
rdoc
|
19
|
-
pkg
|
20
|
-
|
21
|
-
|
3
|
+
pkg/*
|
4
|
+
Gemfile.lock
|
5
|
+
*.gem
|
6
|
+
.bundle
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
holiday_jp (0.3.0)
|
5
|
+
|
6
|
+
GEM
|
7
|
+
remote: http://rubygems.org/
|
8
|
+
specs:
|
9
|
+
json (1.6.1)
|
10
|
+
rake (0.9.2.2)
|
11
|
+
rdoc (3.11)
|
12
|
+
json (~> 1.4)
|
13
|
+
shoulda (2.11.3)
|
14
|
+
|
15
|
+
PLATFORMS
|
16
|
+
ruby
|
17
|
+
|
18
|
+
DEPENDENCIES
|
19
|
+
holiday_jp!
|
20
|
+
rake (= 0.9.2.2)
|
21
|
+
rdoc (= 3.11)
|
22
|
+
shoulda (= 2.11.3)
|
data/Rakefile
CHANGED
@@ -1,23 +1,4 @@
|
|
1
|
-
require
|
2
|
-
require 'rake'
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "holiday_jp"
|
8
|
-
gem.summary = %Q{Japanese Holidays.}
|
9
|
-
gem.description = %Q{Japanese Holidays from 1970 to 2050.}
|
10
|
-
gem.email = "komagata@gmail.com"
|
11
|
-
gem.homepage = "http://github.com/komagata/holiday_jp"
|
12
|
-
gem.authors = ["Masaki KOMAGATA"]
|
13
|
-
gem.add_development_dependency "shoulda", ">= 2.11.3"
|
14
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
15
|
-
end
|
16
|
-
Jeweler::GemcutterTasks.new
|
17
|
-
rescue LoadError
|
18
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
19
|
-
end
|
20
|
-
|
1
|
+
require "bundler/gem_tasks"
|
21
2
|
require 'rake/testtask'
|
22
3
|
Rake::TestTask.new(:test) do |test|
|
23
4
|
test.libs << 'lib' << 'test'
|
@@ -25,27 +6,12 @@ Rake::TestTask.new(:test) do |test|
|
|
25
6
|
test.verbose = true
|
26
7
|
end
|
27
8
|
|
28
|
-
begin
|
29
|
-
require 'rcov/rcovtask'
|
30
|
-
Rcov::RcovTask.new do |test|
|
31
|
-
test.libs << 'test'
|
32
|
-
test.pattern = 'test/**/test_*.rb'
|
33
|
-
test.verbose = true
|
34
|
-
end
|
35
|
-
rescue LoadError
|
36
|
-
task :rcov do
|
37
|
-
abort "RCov is not available. In order to run rcov, you must: sudo gem install spicycode-rcov"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
task :test => :check_dependencies
|
42
|
-
|
43
9
|
task :default => :test
|
44
10
|
|
45
|
-
require '
|
11
|
+
require 'rdoc/task'
|
12
|
+
require 'holiday_jp/version'
|
46
13
|
Rake::RDocTask.new do |rdoc|
|
47
|
-
version =
|
48
|
-
|
14
|
+
version = HolidayJp::VERSION
|
49
15
|
rdoc.rdoc_dir = 'rdoc'
|
50
16
|
rdoc.title = "holiday_jp #{version}"
|
51
17
|
rdoc.rdoc_files.include('README*')
|
data/benchmark.rb
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'benchmark'
|
2
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
|
3
|
+
require 'holiday_jp'
|
4
|
+
|
5
|
+
def bench_holiday
|
6
|
+
Benchmark.measure {
|
7
|
+
d = Date.new(2011, 9, 19)
|
8
|
+
10000.times do
|
9
|
+
HolidayJp.holiday?(d)
|
10
|
+
end
|
11
|
+
}
|
12
|
+
end
|
13
|
+
def bench_between
|
14
|
+
Benchmark.measure {
|
15
|
+
d = Date.new(2009, 1, 1)
|
16
|
+
d2 = Date.new(2009, 12, 31)
|
17
|
+
10000.times do
|
18
|
+
HolidayJp.between(d,d2)
|
19
|
+
end
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
puts bench_holiday
|
24
|
+
puts bench_between
|
data/holiday_jp.gemspec
CHANGED
@@ -1,54 +1,24 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "holiday_jp/version"
|
5
4
|
|
6
5
|
Gem::Specification.new do |s|
|
7
|
-
s.name
|
8
|
-
s.version
|
9
|
-
|
10
|
-
s.
|
11
|
-
s.
|
12
|
-
s.
|
6
|
+
s.name = "holiday_jp"
|
7
|
+
s.version = HolidayJp::VERSION
|
8
|
+
s.authors = ["Masaki Komagata"]
|
9
|
+
s.email = ["komagata@gmail.com"]
|
10
|
+
s.homepage = "http://github.com/komagata/holiday_jp"
|
11
|
+
s.summary = %q{Japanese Holidays.}
|
13
12
|
s.description = %q{Japanese Holidays from 1970 to 2050.}
|
14
|
-
s.email = %q{komagata@gmail.com}
|
15
|
-
s.extra_rdoc_files = [
|
16
|
-
"LICENSE",
|
17
|
-
"README.rdoc"
|
18
|
-
]
|
19
|
-
s.files = [
|
20
|
-
".document",
|
21
|
-
".gitignore",
|
22
|
-
"LICENSE",
|
23
|
-
"README.rdoc",
|
24
|
-
"Rakefile",
|
25
|
-
"VERSION",
|
26
|
-
"holiday_jp.gemspec",
|
27
|
-
"lib/holiday_jp.rb",
|
28
|
-
"test/helper.rb",
|
29
|
-
"test/test_holiday_jp.rb"
|
30
|
-
]
|
31
|
-
s.homepage = %q{http://github.com/komagata/holiday_jp}
|
32
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
33
|
-
s.require_paths = ["lib"]
|
34
|
-
s.rubygems_version = %q{1.3.7}
|
35
|
-
s.summary = %q{Japanese Holidays.}
|
36
|
-
s.test_files = [
|
37
|
-
"test/helper.rb",
|
38
|
-
"test/test_holiday_jp.rb"
|
39
|
-
]
|
40
13
|
|
41
|
-
|
42
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
43
|
-
s.specification_version = 3
|
14
|
+
s.rubyforge_project = "holiday_jp"
|
44
15
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
end
|
50
|
-
else
|
51
|
-
s.add_dependency(%q<shoulda>, [">= 2.11.3"])
|
52
|
-
end
|
53
|
-
end
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
54
20
|
|
21
|
+
s.add_development_dependency "rake", '0.9.2.2'
|
22
|
+
s.add_development_dependency "rdoc", '3.11'
|
23
|
+
s.add_development_dependency "shoulda", '2.11.3'
|
24
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'date'
|
3
|
+
module HolidayJp
|
4
|
+
class Holiday
|
5
|
+
WDAY_NAMES = %w(日 月 火 水 木 金 土)
|
6
|
+
|
7
|
+
EN_HOLIDAY_NAMES = {
|
8
|
+
"元日" => "New Year's Day",
|
9
|
+
"成人の日" => "Coming of Age Day",
|
10
|
+
"建国記念の日" => "National Foundation Day",
|
11
|
+
"春分の日" => "Vernal Equinox Day",
|
12
|
+
"憲法記念日" => "Constitution Memorial Day",
|
13
|
+
"みどりの日" => "Greenery Day",
|
14
|
+
"こどもの日" => "Children's Day",
|
15
|
+
"海の日" => "Marine Day",
|
16
|
+
"敬老の日" => "Respect for the Aged Day",
|
17
|
+
"秋分の日" => "Autumnal Equinox Day",
|
18
|
+
"体育の日" => "Health and Sports Day",
|
19
|
+
"文化の日" => "National Culture Day",
|
20
|
+
"勤労感謝の日" => "Labor Thanksgiving Day",
|
21
|
+
"天皇誕生日" => "Emperor's Birthday",
|
22
|
+
"昭和の日" => "Showa Day",
|
23
|
+
"振替休日" => "Holiday in lieu",
|
24
|
+
"国民の休日" => "Citizen's Holiday",
|
25
|
+
"即位礼正殿の儀" => "The Ceremony of the Enthronement of His Majesty th Emperor (at the Seiden)",
|
26
|
+
"昭和天皇の大喪の礼" => "The Funeral Ceremony of Emperor Showa.",
|
27
|
+
"皇太子徳仁親王の結婚の儀" => "The Rite of Wedding of HIH Crown Prince Naruhito"
|
28
|
+
}
|
29
|
+
|
30
|
+
attr_reader :date, :name
|
31
|
+
def initialize(date, name)
|
32
|
+
@date = parse_date(date)
|
33
|
+
@name = name
|
34
|
+
end
|
35
|
+
|
36
|
+
def name_en
|
37
|
+
EN_HOLIDAY_NAMES[name]
|
38
|
+
end
|
39
|
+
|
40
|
+
def wday_name
|
41
|
+
WDAY_NAMES[date.wday]
|
42
|
+
end
|
43
|
+
alias :week :wday_name
|
44
|
+
|
45
|
+
def parse_date(date)
|
46
|
+
begin
|
47
|
+
Date.parse(date)
|
48
|
+
rescue ArgumentError
|
49
|
+
raise ArgumentError, "invalid date on :#{date}, #{name}"
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|