jpcalendar 0.0.1 → 1.0.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.
- checksums.yaml +7 -0
- data/.DS_Store +0 -0
- data/.rbenv-gemsets +1 -0
- data/Gemfile +2 -4
- data/README.md +7 -7
- data/jpcalendar.gemspec +1 -1
- data/lib/jpcalendar/generator.rb +41 -7
- data/lib/jpcalendar/version.rb +1 -1
- data/spec/format_spec.rb +4 -0
- metadata +15 -17
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 68bf30b1d48aef42c55dcc3619525727f1604acb
|
4
|
+
data.tar.gz: 45790eedac9b6174d6b6f5ac039d1ce3bef95648
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f34f792b91ebd0ee9ee8c6e4c53a8f5807db3d9d3d571fdd829e99afcc4e2c4d6d269ed2cf895e2e28ac6f02d18d409f71674eae67ff5878ab348807ad9659a6
|
7
|
+
data.tar.gz: 0a8093ba67346c86bc4aa74016e7784dea6f3c13c42c48c41ce0c3bd472b6b99ea03ce31c758c6a8fd5b8665987b137c87721c5412b01f954a496392d0726bfb
|
data/.DS_Store
ADDED
Binary file
|
data/.rbenv-gemsets
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
jpcalendar
|
data/Gemfile
CHANGED
@@ -3,13 +3,11 @@ source "http://rubygems.org"
|
|
3
3
|
# Specify your gem's dependencies in jpcalendar.gemspec
|
4
4
|
gemspec
|
5
5
|
|
6
|
-
gem 'holiday_jp',
|
6
|
+
gem 'holiday_jp', :github => "komagata/holiday_jp"
|
7
7
|
|
8
8
|
group :development, :test do
|
9
9
|
gem 'jeweler'
|
10
10
|
gem 'rails'
|
11
|
-
gem 'rspec'
|
12
|
-
gem 'rspec-rails'
|
13
|
-
gem 'ruby-debug19'
|
11
|
+
gem 'rspec', '~> 2.99'
|
14
12
|
end
|
15
13
|
|
data/README.md
CHANGED
@@ -3,15 +3,12 @@ Jpcalendar
|
|
3
3
|
日本の祝日に対応したカレンダーを出力します。
|
4
4
|
|
5
5
|
install
|
6
|
-
------
|
6
|
+
------
|
7
|
+
`gem install jpcalendar`
|
7
8
|
|
8
|
-
|
9
|
-
gem
|
10
|
-
rake install
|
11
|
-
```
|
9
|
+
もしくはGemfileに記載
|
10
|
+
`gem 'jpcalendar'`
|
12
11
|
|
13
|
-
もしくはGemfileに追記で使用
|
14
|
-
``gem 'jpcalendar', :git => 'git://github.com/YoshitsuguFujii/jpcalendar.git'``
|
15
12
|
usage
|
16
13
|
------
|
17
14
|
|
@@ -303,6 +300,9 @@ Options
|
|
303
300
|
* 休日を含まない
|
304
301
|
`holiday_off: (true または false)`
|
305
302
|
|
303
|
+
* 前後の月も含めて表示する
|
304
|
+
`fill_other_days: (true または false)`
|
305
|
+
|
306
306
|
* 一桁の日付を何でパディングするか
|
307
307
|
`padding: 任意の文字列`
|
308
308
|
|
data/jpcalendar.gemspec
CHANGED
data/lib/jpcalendar/generator.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# coding: utf-8
|
2
2
|
require 'json'
|
3
|
+
require 'date'
|
3
4
|
|
4
5
|
module Jpcalendar
|
5
6
|
#
|
@@ -57,7 +58,7 @@ module Jpcalendar
|
|
57
58
|
if calendar_weekday.find_by_number(d.wday).number == weekday.number
|
58
59
|
#TODO こことなんとかしたい
|
59
60
|
# class 作成部分
|
60
|
-
holiday = (calendar_weekday.find_by_number(d.wday).enname == "sun" || ::HolidayJp
|
61
|
+
holiday = (calendar_weekday.find_by_number(d.wday).enname == "sun" || ::HolidayJp.holiday?(d)) ? "holiday" : ""
|
61
62
|
class_hash = { class: "row_#{date_feed.size} col_#{week_arr.size} #{calendar_weekday.find_by_number(d.wday).enname} #{holiday} day_#{d.day}"}
|
62
63
|
|
63
64
|
# id 作成部分
|
@@ -68,9 +69,10 @@ module Jpcalendar
|
|
68
69
|
|
69
70
|
# 押し込む
|
70
71
|
week_arr << CalenderDate.new(
|
72
|
+
d,
|
71
73
|
date_format(d.day, options),
|
72
74
|
event_name,
|
73
|
-
::HolidayJp
|
75
|
+
::HolidayJp.holiday?(d).try(:name),
|
74
76
|
id_hash.merge(class_hash)
|
75
77
|
)
|
76
78
|
|
@@ -89,7 +91,7 @@ module Jpcalendar
|
|
89
91
|
else
|
90
92
|
#TODO ここをなんとかしたい
|
91
93
|
# class 作成部分
|
92
|
-
holiday = (calendar_weekday.find_by_number(d.wday).enname == "sun" || ::HolidayJp
|
94
|
+
holiday = (calendar_weekday.find_by_number(d.wday).enname == "sun" || ::HolidayJp.holiday?(d)) ? "holiday" : ""
|
93
95
|
class_hash = { class: "row_#{date_feed.size} col_#{week_arr.size} #{calendar_weekday.find_by_number(d.wday).enname} #{holiday} day_#{d.day}"}
|
94
96
|
|
95
97
|
# id 作成部分
|
@@ -100,9 +102,10 @@ module Jpcalendar
|
|
100
102
|
|
101
103
|
# 押し込む
|
102
104
|
week_arr << CalenderDate.new(
|
105
|
+
d,
|
103
106
|
date_format(d.day, options),
|
104
107
|
event_name,
|
105
|
-
::HolidayJp
|
108
|
+
::HolidayJp.holiday?(d).try(:name),
|
106
109
|
id_hash.merge(class_hash)
|
107
110
|
)
|
108
111
|
# 折り返し
|
@@ -111,6 +114,36 @@ module Jpcalendar
|
|
111
114
|
end
|
112
115
|
|
113
116
|
date_feed << week_arr if week_arr.present?
|
117
|
+
|
118
|
+
|
119
|
+
if options[:fill_other_days]
|
120
|
+
# 第1週の日付のないところに前月の日付をいれていく
|
121
|
+
blank_date = date_feed[1].take_while{|first_week_day| first_week_day.date == "" }
|
122
|
+
blank_date.size.times do |idx|
|
123
|
+
prev_month_day = start_date - (idx + 1)
|
124
|
+
date_feed[1][idx].date = prev_month_day
|
125
|
+
date_feed[1][idx].text = date_format(prev_month_day.day, options)
|
126
|
+
date_feed[1][idx].attributes = {:class => "other-month-day prev-month-day"}
|
127
|
+
date_feed[1][idx].jp_holiday = ::HolidayJp.holiday?(prev_month_day).try(:name)
|
128
|
+
end
|
129
|
+
|
130
|
+
# 最終週の日付のないところに前月の日付をいれていく
|
131
|
+
index = 0
|
132
|
+
7.times do |idx|
|
133
|
+
if date_feed.last[idx].nil?
|
134
|
+
next_month_day = start_date.next_month + index
|
135
|
+
index += 1
|
136
|
+
date_feed.last << CalenderDate.new(
|
137
|
+
next_month_day,
|
138
|
+
date_format(next_month_day.day, options),
|
139
|
+
"",
|
140
|
+
::HolidayJp.holiday?(next_month_day).try(:name),
|
141
|
+
{:class => "other-month-day prev-month-day"}
|
142
|
+
)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
end
|
146
|
+
|
114
147
|
date_feed
|
115
148
|
|
116
149
|
end
|
@@ -122,7 +155,7 @@ module Jpcalendar
|
|
122
155
|
def make_header(calendar_weekday)
|
123
156
|
calendar_weekday.map.with_index(0) do |cal,idx|
|
124
157
|
class_text = ["header header_#{idx}", cal.enname].join("\s")
|
125
|
-
CalenderDate.new(cal.jpname, nil, nil, { class: class_text })
|
158
|
+
CalenderDate.new("", cal.jpname, nil, nil, { class: class_text })
|
126
159
|
end
|
127
160
|
end
|
128
161
|
#}}}
|
@@ -133,15 +166,16 @@ module Jpcalendar
|
|
133
166
|
end #}}}
|
134
167
|
|
135
168
|
class CalenderDate #{{{
|
136
|
-
attr_accessor :text, :event, :attributes, :jp_holiday
|
169
|
+
attr_accessor :date, :text, :event, :attributes, :jp_holiday
|
137
170
|
class AttributeTypeError < StandardError
|
138
171
|
def initialize(msg = "CalenderDate attributes is only accept hash")
|
139
172
|
super(msg)
|
140
173
|
end
|
141
174
|
end
|
142
175
|
|
143
|
-
def initialize(_text = "", _event = nil, _jp_holiday = nil, _attributes = {})
|
176
|
+
def initialize(_date = "", _text = "", _event = nil, _jp_holiday = nil, _attributes = {})
|
144
177
|
raise AttributeTypeError if _attributes.present? && !_attributes.is_a?(Hash)
|
178
|
+
self.date = _date
|
145
179
|
self.text = _text
|
146
180
|
self.event = _event
|
147
181
|
self.jp_holiday = _jp_holiday
|
data/lib/jpcalendar/version.rb
CHANGED
data/spec/format_spec.rb
CHANGED
@@ -211,6 +211,10 @@ describe Jpcalendar::Format do
|
|
211
211
|
|
212
212
|
context "対象月:2008年9月 (スペース詰め)" do
|
213
213
|
before do
|
214
|
+
def Date.today
|
215
|
+
Date.new(2013, 1, 8)
|
216
|
+
end
|
217
|
+
|
214
218
|
@options = {padding: " ",wrap_tag: :section, row_tag: :ul, header_cell_tag: :li, body_cell_tag: :li}
|
215
219
|
@expect_str="<section><ul class='header'><li class='header header_0 sun'>日</li><li class='header header_1 mon'>月</li><li class='header header_2 tue'>火</li><li class='header header_3 wed'>水</li><li class='header header_4 thu'>木</li><li class='header header_5 fri'>金</li><li class='header header_6 sat'>土</li></ul><ul class='row_0'><li><span class='day'></span></li><li><span class='day'></span></li><li class='row_1 col_2 tue holiday day_1'><span class='day'> 1</span><span class='holiday_name'>元日</span></li><li class='row_1 col_3 wed day_2'><span class='day'> 2</span></li><li class='row_1 col_4 thu day_3'><span class='day'> 3</span></li><li class='row_1 col_5 fri day_4'><span class='day'> 4</span></li><li class='row_1 col_6 sat day_5'><span class='day'> 5</span></li></ul><ul class='row_1'><li class='row_2 col_0 sun holiday day_6'><span class='day'> 6</span></li><li class='row_2 col_1 mon day_7'><span class='day'> 7</span></li><li id='today' class='row_2 col_2 tue day_8'><span class='day'> 8</span></li><li class='row_2 col_3 wed day_9'><span class='day'> 9</span></li><li class='row_2 col_4 thu day_10'><span class='day'>10</span></li><li class='row_2 col_5 fri day_11'><span class='day'>11</span></li><li class='row_2 col_6 sat day_12'><span class='day'>12</span></li></ul><ul class='row_2'><li class='row_3 col_0 sun holiday day_13'><span class='day'>13</span></li><li class='row_3 col_1 mon holiday day_14'><span class='day'>14</span><span class='holiday_name'>成人の日</span></li><li class='row_3 col_2 tue day_15'><span class='day'>15</span></li><li class='row_3 col_3 wed day_16'><span class='day'>16</span></li><li class='row_3 col_4 thu day_17'><span class='day'>17</span></li><li class='row_3 col_5 fri day_18'><span class='day'>18</span></li><li class='row_3 col_6 sat day_19'><span class='day'>19</span></li></ul><ul class='row_3'><li class='row_4 col_0 sun holiday day_20'><span class='day'>20</span></li><li class='row_4 col_1 mon day_21'><span class='day'>21</span></li><li class='row_4 col_2 tue day_22'><span class='day'>22</span></li><li class='row_4 col_3 wed day_23'><span class='day'>23</span></li><li class='row_4 col_4 thu day_24'><span class='day'>24</span></li><li class='row_4 col_5 fri day_25'><span class='day'>25</span></li><li class='row_4 col_6 sat day_26'><span class='day'>26</span></li></ul><ul class='row_4'><li class='row_5 col_0 sun holiday day_27'><span class='day'>27</span></li><li class='row_5 col_1 mon day_28'><span class='day'>28</span></li><li class='row_5 col_2 tue day_29'><span class='day'>29</span></li><li class='row_5 col_3 wed day_30'><span class='day'>30</span></li><li class='row_5 col_4 thu day_31'><span class='day'>31</span></li></ul></section>"
|
216
220
|
end
|
metadata
CHANGED
@@ -1,40 +1,39 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jpcalendar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 1.0.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- yoshitsugu fujii
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2015-11-12 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: holiday_jp
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0
|
19
|
+
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0
|
30
|
-
description: 日本の祝祭日に対応したカレンダー
|
26
|
+
version: '0'
|
27
|
+
description: "日本の祝祭日に対応したカレンダー"
|
31
28
|
email:
|
32
29
|
- ishikurasakura@gmail.com
|
33
30
|
executables: []
|
34
31
|
extensions: []
|
35
32
|
extra_rdoc_files: []
|
36
33
|
files:
|
37
|
-
- .
|
34
|
+
- ".DS_Store"
|
35
|
+
- ".gitignore"
|
36
|
+
- ".rbenv-gemsets"
|
38
37
|
- Gemfile
|
39
38
|
- LICENSE.md
|
40
39
|
- README.md
|
@@ -53,27 +52,26 @@ files:
|
|
53
52
|
- spec/weekday_scale_spec.rb
|
54
53
|
homepage: https://github.com/YoshitsuguFujii/jpcalendar
|
55
54
|
licenses: []
|
55
|
+
metadata: {}
|
56
56
|
post_install_message:
|
57
57
|
rdoc_options: []
|
58
58
|
require_paths:
|
59
59
|
- lib
|
60
60
|
required_ruby_version: !ruby/object:Gem::Requirement
|
61
|
-
none: false
|
62
61
|
requirements:
|
63
|
-
- -
|
62
|
+
- - ">="
|
64
63
|
- !ruby/object:Gem::Version
|
65
64
|
version: '0'
|
66
65
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
-
none: false
|
68
66
|
requirements:
|
69
|
-
- -
|
67
|
+
- - ">="
|
70
68
|
- !ruby/object:Gem::Version
|
71
69
|
version: '0'
|
72
70
|
requirements: []
|
73
71
|
rubyforge_project: jpcalendar
|
74
|
-
rubygems_version:
|
72
|
+
rubygems_version: 2.2.2
|
75
73
|
signing_key:
|
76
|
-
specification_version:
|
74
|
+
specification_version: 4
|
77
75
|
summary: japanese calendar
|
78
76
|
test_files:
|
79
77
|
- spec/format_spec.rb
|