jpcalendar 0.0.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,172 @@
1
+ # coding: utf-8
2
+ require 'json'
3
+
4
+ module Jpcalendar
5
+ #
6
+ # データ作成クラス
7
+ #
8
+ module Generator
9
+
10
+ # generator_feed{{{
11
+ ###
12
+ # 引数で指定した月のカレンダーをハッシュで取得
13
+ # 戻り値:hash(:day => 日付,:class => "タグに付加される属性クラス")
14
+ # Jpcalendar.generator_feed(Date.today)
15
+ def generator_feed(_date,options ={})
16
+
17
+ start_with_monday = options[:start_with_monday] || false
18
+ date_event = options.delete(:date_event) || ""
19
+
20
+ date_event = if !date_event.empty? && date_event.is_a?(String)
21
+ JSON.parse(date_event)
22
+ elsif date_event.is_a?(Hash)
23
+ date_event
24
+ else
25
+ {}
26
+ end
27
+
28
+
29
+ calendar_weekday = WeekdayScale::WeekDay.new(start_with_monday)
30
+
31
+ date_feed =[]
32
+ week_arr = []
33
+
34
+ date = _date.to_date
35
+
36
+ # 開始を取得
37
+ start_date = date.beginning_of_month
38
+ # 終了を取得
39
+ end_date = date.end_of_month
40
+
41
+ # headerの作成
42
+ date_feed << make_header(calendar_weekday)
43
+
44
+ is_firstdate = true
45
+ (start_date.to_date..end_date.to_date).each_with_index do |d, idx|
46
+
47
+ turn_proc = Proc.new do
48
+ if d.wday == calendar_weekday.last.number
49
+ date_feed << week_arr
50
+ week_arr = []
51
+ end
52
+ end
53
+
54
+ if is_firstdate
55
+ calendar_weekday.each do |weekday|
56
+ # 日付と曜日が一致したら、そこに日付を置く
57
+ if calendar_weekday.find_by_number(d.wday).number == weekday.number
58
+ #TODO こことなんとかしたい
59
+ # class 作成部分
60
+ holiday = (calendar_weekday.find_by_number(d.wday).enname == "sun" || ::HolidayJp::HOLIDAYS[d].try(:name))? "holiday" : ""
61
+ 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
+ # id 作成部分
64
+ id_hash = make_id(d)
65
+
66
+ # イベント名称
67
+ event_name = date_event.fetch(d.day.to_s, nil)
68
+
69
+ # 押し込む
70
+ week_arr << CalenderDate.new(
71
+ date_format(d.day, options),
72
+ event_name,
73
+ ::HolidayJp::HOLIDAYS[d].try(:name),
74
+ id_hash.merge(class_hash)
75
+ )
76
+
77
+ # 折り返し
78
+ turn_proc.call
79
+
80
+ is_firstdate = false
81
+ break
82
+ # なかったら
83
+ else
84
+ week_arr << CalenderDate.new
85
+ end
86
+
87
+ end
88
+ # 初日が決まったらあとは日付を置いていく。土曜日で折り返す
89
+ else
90
+ #TODO ここをなんとかしたい
91
+ # class 作成部分
92
+ holiday = (calendar_weekday.find_by_number(d.wday).enname == "sun" || ::HolidayJp::HOLIDAYS[d].try(:name))? "holiday" : ""
93
+ class_hash = { class: "row_#{date_feed.size} col_#{week_arr.size} #{calendar_weekday.find_by_number(d.wday).enname} #{holiday} day_#{d.day}"}
94
+
95
+ # id 作成部分
96
+ id_hash = make_id(d)
97
+
98
+ # イベント名称
99
+ event_name = date_event.fetch(d.day.to_s, nil)
100
+
101
+ # 押し込む
102
+ week_arr << CalenderDate.new(
103
+ date_format(d.day, options),
104
+ event_name,
105
+ ::HolidayJp::HOLIDAYS[d].try(:name),
106
+ id_hash.merge(class_hash)
107
+ )
108
+ # 折り返し
109
+ turn_proc.call
110
+ end
111
+ end
112
+
113
+ date_feed << week_arr if week_arr.present?
114
+ date_feed
115
+
116
+ end
117
+ #}}}generator_feed
118
+
119
+ private #{{{
120
+ # make_hearder{{{
121
+ # header行のデータ作成
122
+ def make_header(calendar_weekday)
123
+ calendar_weekday.map.with_index(0) do |cal,idx|
124
+ class_text = ["header header_#{idx}", cal.enname].join("\s")
125
+ CalenderDate.new(cal.jpname, nil, nil, { class: class_text })
126
+ end
127
+ end
128
+ #}}}
129
+
130
+ def make_id(day) #{{{
131
+ #id_hash = (_date.day == d.day)? {:id => "today"} : {}
132
+ (Date.today == day)? {:id => "today"} : {}
133
+ end #}}}
134
+
135
+ class CalenderDate #{{{
136
+ attr_accessor :text, :event, :attributes, :jp_holiday
137
+ class AttributeTypeError < StandardError
138
+ def initialize(msg = "CalenderDate attributes is only accept hash")
139
+ super(msg)
140
+ end
141
+ end
142
+
143
+ def initialize(_text = "", _event = nil, _jp_holiday = nil, _attributes = {})
144
+ raise AttributeTypeError if _attributes.present? && !_attributes.is_a?(Hash)
145
+ self.text = _text
146
+ self.event = _event
147
+ self.jp_holiday = _jp_holiday
148
+ self.attributes = _attributes
149
+ end
150
+ end
151
+ #}}}
152
+
153
+ def get_patting_chr(options) #{{{
154
+ options[:padding].gsub(/\s/,"&nbsp;") rescue "0"
155
+ end
156
+ # }}}
157
+
158
+ ## date_format {{{
159
+ # 日付の整形
160
+ def date_format(day, options)
161
+ padding = get_patting_chr(options)
162
+ if Util.is_numeric?(padding)
163
+ sprintf("%#{padding}2d", day)
164
+ else
165
+ day >= 10? day.to_s : padding + day.to_s
166
+ end
167
+ end
168
+ # }}}
169
+ # end private }}}
170
+
171
+ end
172
+ end
@@ -0,0 +1,37 @@
1
+ # coding: utf-8
2
+
3
+ #
4
+ # utilクラス
5
+ #
6
+ module Util
7
+ module_function
8
+
9
+ # tag_wrap {{{
10
+ # 指定したタグでかこむ
11
+ # ブロックが渡されてない時はただのタグを生成する
12
+ # Railsのtagまたはcontent_tagでよかったんじゃないか説浮上。なぜ作ったのかはその時きっと疲れていたから
13
+ def tag_wrap(tag,options={})
14
+ attr_id = " id='#{options[:id]}'" if options[:id]
15
+ attr_class = " class='#{options[:class]}'" if options[:class]
16
+
17
+ tag = tag.to_s if tag.is_a?(Symbol)
18
+ if block_given?
19
+ "<#{tag + (attr_id || "") + (attr_class || "")}>#{yield}</#{tag}>"
20
+ else
21
+ "<#{tag} />"
22
+ end
23
+ end
24
+ # }}}
25
+
26
+ def is_numeric?(num) #{{{
27
+ num.to_s =~ /^[0-9]+$/ || false
28
+ rescue
29
+ false
30
+ end
31
+ # }}}
32
+
33
+ def expr_not_nil(value, &expression) #{{{
34
+ return nil if value.nil? || value.empty?
35
+ expression.call if expression
36
+ end #}}}
37
+ end
@@ -0,0 +1,3 @@
1
+ module Jpcalendar
2
+ VERSION = "0.0.0"
3
+ end
@@ -0,0 +1,96 @@
1
+ # coding: utf-8
2
+
3
+ module Jpcalendar
4
+ #
5
+ # 曜日判定用クラス
6
+ #
7
+ module WeekdayScale
8
+
9
+ # WeekDayElem{{{
10
+ class WeekDayElem
11
+ attr_accessor :number, :jpname, :enname
12
+ def initialize(_number, _jpname, _enname)
13
+ self.number = _number
14
+ self.jpname = _jpname
15
+ self.enname = _enname
16
+ end
17
+ end
18
+ #}}}WeekDayElem
19
+
20
+ # WeekDay {{{
21
+ class WeekDay
22
+
23
+ WEEK_DAY = [
24
+ WeekDayElem.new(0,"日","sun"),
25
+ WeekDayElem.new(1,"月","mon"),
26
+ WeekDayElem.new(2,"火","tue"),
27
+ WeekDayElem.new(3,"水","wed"),
28
+ WeekDayElem.new(4,"木","thu"),
29
+ WeekDayElem.new(5,"金","fri"),
30
+ WeekDayElem.new(6,"土","sat")
31
+ ]
32
+
33
+ def initialize(start_with_monday = false)
34
+ @wdays = WEEK_DAY.dup
35
+ change_start_monday!(start_with_monday)
36
+ end
37
+
38
+ ##
39
+ # params: method_name メソッド名
40
+ # *args 第1引数 week_day_メソッドで呼ばれた場合は options
41
+ # find_by_メソッドで呼ばれた場合は 検索対象の値
42
+ # call example week_day_jpname(WEEK_DAY)
43
+ def method_missing(method_name,*args)
44
+ if method_name =~ /^find_by_(.*)/
45
+ unless respond_to?(method_name.to_sym)
46
+ self.instance_eval %Q{
47
+ def #{method_name}(id)
48
+ if id.present?
49
+ @wdays.select{|wd| wd.#{$1} == id }.first
50
+ end
51
+ end
52
+ }
53
+ end
54
+
55
+ return send(method_name, args[0] )
56
+ end
57
+
58
+ super
59
+ end
60
+
61
+ # もっとスマートにdeligateしたいなぁ
62
+ def map
63
+ if block_given?
64
+ @wdays.map{|wday| yield wday}
65
+ else
66
+ @wdays.map
67
+ end
68
+ end
69
+
70
+ def each
71
+ if block_given?
72
+ @wdays.each{|wday| yield wday}
73
+ else
74
+ @wdays.each
75
+ end
76
+ end
77
+
78
+ def last
79
+ @wdays.last
80
+ end
81
+
82
+ private
83
+
84
+ # 月曜始まりに変更
85
+ def change_start_monday!(start_with_monday = false)
86
+ if start_with_monday
87
+ sunday = @wdays.shift
88
+ @wdays.push(sunday)
89
+ end
90
+ end
91
+ # end private
92
+ end
93
+ #}}}
94
+
95
+ end
96
+ end
@@ -0,0 +1,232 @@
1
+ # coding: utf-8
2
+ require 'spec_helper'
3
+ require 'json'
4
+
5
+ #TODO ひどいんで、ちゃんと書く。いずれ。きっと。多分。
6
+ describe Jpcalendar::Format do
7
+ extend Jpcalendar
8
+
9
+ #calendar_table{{{
10
+ describe "calendar table" do
11
+ context "対象月:2012年12月" do
12
+ before do
13
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_6 sat day_1'><span class='day'>01</span></td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_2'><span class='day'>02</span></td><td class='row_2 col_1 mon day_3'><span class='day'>03</span></td><td class='row_2 col_2 tue day_4'><span class='day'>04</span></td><td class='row_2 col_3 wed day_5'><span class='day'>05</span></td><td class='row_2 col_4 thu day_6'><span class='day'>06</span></td><td class='row_2 col_5 fri day_7'><span class='day'>07</span></td><td class='row_2 col_6 sat day_8'><span class='day'>08</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_9'><span class='day'>09</span></td><td class='row_3 col_1 mon day_10'><span class='day'>10</span></td><td class='row_3 col_2 tue day_11'><span class='day'>11</span></td><td class='row_3 col_3 wed day_12'><span class='day'>12</span></td><td class='row_3 col_4 thu day_13'><span class='day'>13</span></td><td class='row_3 col_5 fri day_14'><span class='day'>14</span></td><td class='row_3 col_6 sat day_15'><span class='day'>15</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_16'><span class='day'>16</span></td><td class='row_4 col_1 mon day_17'><span class='day'>17</span></td><td class='row_4 col_2 tue day_18'><span class='day'>18</span></td><td class='row_4 col_3 wed day_19'><span class='day'>19</span></td><td class='row_4 col_4 thu day_20'><span class='day'>20</span></td><td class='row_4 col_5 fri day_21'><span class='day'>21</span></td><td class='row_4 col_6 sat day_22'><span class='day'>22</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_23'><span class='day'>23</span><span class='holiday_name'>天皇誕生日</span></td><td class='row_5 col_1 mon holiday day_24'><span class='day'>24</span><span class='holiday_name'>振替休日</span></td><td class='row_5 col_2 tue day_25'><span class='day'>25</span></td><td class='row_5 col_3 wed day_26'><span class='day'>26</span></td><td class='row_5 col_4 thu day_27'><span class='day'>27</span></td><td class='row_5 col_5 fri day_28'><span class='day'>28</span></td><td class='row_5 col_6 sat day_29'><span class='day'>29</span></td></tr><tr class='row_5'><td class='row_6 col_0 sun holiday day_30'><span class='day'>30</span></td><td class='row_6 col_1 mon day_31'><span class='day'>31</span></td></tr></table>"
14
+ end
15
+
16
+ it { Jpcalendar.calendar_table(Date.new(2012, 12, 1)).should eql @expect_str}
17
+ end
18
+
19
+ context "対象月:2012年2月(うるう年)" do
20
+ before do
21
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_3 wed day_1'><span class='day'>01</span></td><td class='row_1 col_4 thu day_2'><span class='day'>02</span></td><td class='row_1 col_5 fri day_3'><span class='day'>03</span></td><td class='row_1 col_6 sat day_4'><span class='day'>04</span></td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_5'><span class='day'>05</span></td><td class='row_2 col_1 mon day_6'><span class='day'>06</span></td><td class='row_2 col_2 tue day_7'><span class='day'>07</span></td><td class='row_2 col_3 wed day_8'><span class='day'>08</span></td><td class='row_2 col_4 thu day_9'><span class='day'>09</span></td><td class='row_2 col_5 fri day_10'><span class='day'>10</span></td><td class='row_2 col_6 sat holiday day_11'><span class='day'>11</span><span class='holiday_name'>建国記念の日</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_12'><span class='day'>12</span></td><td class='row_3 col_1 mon day_13'><span class='day'>13</span></td><td class='row_3 col_2 tue day_14'><span class='day'>14</span></td><td class='row_3 col_3 wed day_15'><span class='day'>15</span></td><td class='row_3 col_4 thu day_16'><span class='day'>16</span></td><td class='row_3 col_5 fri day_17'><span class='day'>17</span></td><td class='row_3 col_6 sat day_18'><span class='day'>18</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_19'><span class='day'>19</span></td><td class='row_4 col_1 mon day_20'><span class='day'>20</span></td><td class='row_4 col_2 tue day_21'><span class='day'>21</span></td><td class='row_4 col_3 wed day_22'><span class='day'>22</span></td><td class='row_4 col_4 thu day_23'><span class='day'>23</span></td><td class='row_4 col_5 fri day_24'><span class='day'>24</span></td><td class='row_4 col_6 sat day_25'><span class='day'>25</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_26'><span class='day'>26</span></td><td class='row_5 col_1 mon day_27'><span class='day'>27</span></td><td class='row_5 col_2 tue day_28'><span class='day'>28</span></td><td class='row_5 col_3 wed day_29'><span class='day'>29</span></td></tr></table>"
22
+ end
23
+
24
+ it { Jpcalendar.calendar_table(Date.new(2012, 2, 29)).should eql @expect_str}
25
+ end
26
+
27
+ context "対象月:2013年2月(not うるう年)" do
28
+ before do
29
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_5 fri day_1'><span class='day'>01</span></td><td class='row_1 col_6 sat day_2'><span class='day'>02</span></td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_3'><span class='day'>03</span></td><td class='row_2 col_1 mon day_4'><span class='day'>04</span></td><td class='row_2 col_2 tue day_5'><span class='day'>05</span></td><td class='row_2 col_3 wed day_6'><span class='day'>06</span></td><td class='row_2 col_4 thu day_7'><span class='day'>07</span></td><td class='row_2 col_5 fri day_8'><span class='day'>08</span></td><td class='row_2 col_6 sat day_9'><span class='day'>09</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_10'><span class='day'>10</span></td><td class='row_3 col_1 mon holiday day_11'><span class='day'>11</span><span class='holiday_name'>建国記念の日</span></td><td class='row_3 col_2 tue day_12'><span class='day'>12</span></td><td class='row_3 col_3 wed day_13'><span class='day'>13</span></td><td class='row_3 col_4 thu day_14'><span class='day'>14</span></td><td class='row_3 col_5 fri day_15'><span class='day'>15</span></td><td class='row_3 col_6 sat day_16'><span class='day'>16</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_17'><span class='day'>17</span></td><td class='row_4 col_1 mon day_18'><span class='day'>18</span></td><td class='row_4 col_2 tue day_19'><span class='day'>19</span></td><td class='row_4 col_3 wed day_20'><span class='day'>20</span></td><td class='row_4 col_4 thu day_21'><span class='day'>21</span></td><td class='row_4 col_5 fri day_22'><span class='day'>22</span></td><td class='row_4 col_6 sat day_23'><span class='day'>23</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_24'><span class='day'>24</span></td><td class='row_5 col_1 mon day_25'><span class='day'>25</span></td><td class='row_5 col_2 tue day_26'><span class='day'>26</span></td><td class='row_5 col_3 wed day_27'><span class='day'>27</span></td><td class='row_5 col_4 thu day_28'><span class='day'>28</span></td></tr></table>"
30
+ end
31
+
32
+ it { Jpcalendar.calendar_table(Date.new(2013, 2, 1)).should eql @expect_str}
33
+ end
34
+
35
+ context "対象月:2012年9月(月曜はじまり)" do
36
+ before do
37
+ @expect_str="<table><tr class='header'><th class='header header_0 mon'>月</th><th class='header header_1 tue'>火</th><th class='header header_2 wed'>水</th><th class='header header_3 thu'>木</th><th class='header header_4 fri'>金</th><th class='header header_5 sat'>土</th><th class='header header_6 sun'>日</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_5 sat day_1'><span class='day'>01</span></td><td class='row_1 col_6 sun holiday day_2'><span class='day'>02</span></td></tr><tr class='row_1'><td class='row_2 col_0 mon day_3'><span class='day'>03</span></td><td class='row_2 col_1 tue day_4'><span class='day'>04</span></td><td class='row_2 col_2 wed day_5'><span class='day'>05</span></td><td class='row_2 col_3 thu day_6'><span class='day'>06</span></td><td class='row_2 col_4 fri day_7'><span class='day'>07</span></td><td class='row_2 col_5 sat day_8'><span class='day'>08</span></td><td class='row_2 col_6 sun holiday day_9'><span class='day'>09</span></td></tr><tr class='row_2'><td class='row_3 col_0 mon day_10'><span class='day'>10</span></td><td class='row_3 col_1 tue day_11'><span class='day'>11</span></td><td class='row_3 col_2 wed day_12'><span class='day'>12</span></td><td class='row_3 col_3 thu day_13'><span class='day'>13</span></td><td class='row_3 col_4 fri day_14'><span class='day'>14</span></td><td class='row_3 col_5 sat day_15'><span class='day'>15</span></td><td class='row_3 col_6 sun holiday day_16'><span class='day'>16</span></td></tr><tr class='row_3'><td class='row_4 col_0 mon holiday day_17'><span class='day'>17</span><span class='holiday_name'>敬老の日</span></td><td class='row_4 col_1 tue day_18'><span class='day'>18</span></td><td class='row_4 col_2 wed day_19'><span class='day'>19</span></td><td class='row_4 col_3 thu day_20'><span class='day'>20</span></td><td class='row_4 col_4 fri day_21'><span class='day'>21</span></td><td class='row_4 col_5 sat holiday day_22'><span class='day'>22</span><span class='holiday_name'>秋分の日</span></td><td class='row_4 col_6 sun holiday day_23'><span class='day'>23</span></td></tr><tr class='row_4'><td class='row_5 col_0 mon day_24'><span class='day'>24</span></td><td class='row_5 col_1 tue day_25'><span class='day'>25</span></td><td class='row_5 col_2 wed day_26'><span class='day'>26</span></td><td class='row_5 col_3 thu day_27'><span class='day'>27</span></td><td class='row_5 col_4 fri day_28'><span class='day'>28</span></td><td class='row_5 col_5 sat day_29'><span class='day'>29</span></td><td class='row_5 col_6 sun holiday day_30'><span class='day'>30</span></td></tr></table>"
38
+ end
39
+ it { Jpcalendar.calendar_table(Date.new(2012, 9, 15), start_with_monday: true).should eql @expect_str}
40
+ end
41
+
42
+
43
+ context "対象月:2012年9月(休日を出力しない)" do
44
+ before do
45
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_6 sat day_1'><span class='day'>01</span></td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_2'><span class='day'>02</span></td><td class='row_2 col_1 mon day_3'><span class='day'>03</span></td><td class='row_2 col_2 tue day_4'><span class='day'>04</span></td><td class='row_2 col_3 wed day_5'><span class='day'>05</span></td><td class='row_2 col_4 thu day_6'><span class='day'>06</span></td><td class='row_2 col_5 fri day_7'><span class='day'>07</span></td><td class='row_2 col_6 sat day_8'><span class='day'>08</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_9'><span class='day'>09</span></td><td class='row_3 col_1 mon day_10'><span class='day'>10</span></td><td class='row_3 col_2 tue day_11'><span class='day'>11</span></td><td class='row_3 col_3 wed day_12'><span class='day'>12</span></td><td class='row_3 col_4 thu day_13'><span class='day'>13</span></td><td class='row_3 col_5 fri day_14'><span class='day'>14</span></td><td class='row_3 col_6 sat day_15'><span class='day'>15</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_16'><span class='day'>16</span></td><td class='row_4 col_1 mon holiday day_17'><span class='day'>17</span></td><td class='row_4 col_2 tue day_18'><span class='day'>18</span></td><td class='row_4 col_3 wed day_19'><span class='day'>19</span></td><td class='row_4 col_4 thu day_20'><span class='day'>20</span></td><td class='row_4 col_5 fri day_21'><span class='day'>21</span></td><td class='row_4 col_6 sat holiday day_22'><span class='day'>22</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_23'><span class='day'>23</span></td><td class='row_5 col_1 mon day_24'><span class='day'>24</span></td><td class='row_5 col_2 tue day_25'><span class='day'>25</span></td><td class='row_5 col_3 wed day_26'><span class='day'>26</span></td><td class='row_5 col_4 thu day_27'><span class='day'>27</span></td><td class='row_5 col_5 fri day_28'><span class='day'>28</span></td><td class='row_5 col_6 sat day_29'><span class='day'>29</span></td></tr><tr class='row_5'><td class='row_6 col_0 sun holiday day_30'><span class='day'>30</span></td></tr></table>"
46
+ end
47
+
48
+ it { Jpcalendar.calendar_table(Date.new(2012, 9, 30),holiday_off: true).should eql @expect_str}
49
+ end
50
+
51
+ context "対象月:2006年9月(スペース詰め)" do
52
+ before do
53
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_5 fri day_1'><span class='day'>&nbsp;1</span></td><td class='row_1 col_6 sat day_2'><span class='day'>&nbsp;2</span></td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_3'><span class='day'>&nbsp;3</span></td><td class='row_2 col_1 mon day_4'><span class='day'>&nbsp;4</span></td><td class='row_2 col_2 tue day_5'><span class='day'>&nbsp;5</span></td><td class='row_2 col_3 wed day_6'><span class='day'>&nbsp;6</span></td><td class='row_2 col_4 thu day_7'><span class='day'>&nbsp;7</span></td><td class='row_2 col_5 fri day_8'><span class='day'>&nbsp;8</span></td><td class='row_2 col_6 sat day_9'><span class='day'>&nbsp;9</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_10'><span class='day'>10</span></td><td class='row_3 col_1 mon day_11'><span class='day'>11</span></td><td class='row_3 col_2 tue day_12'><span class='day'>12</span></td><td class='row_3 col_3 wed day_13'><span class='day'>13</span></td><td class='row_3 col_4 thu day_14'><span class='day'>14</span></td><td class='row_3 col_5 fri day_15'><span class='day'>15</span></td><td class='row_3 col_6 sat day_16'><span class='day'>16</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_17'><span class='day'>17</span></td><td class='row_4 col_1 mon holiday day_18'><span class='day'>18</span><span class='holiday_name'>敬老の日</span></td><td class='row_4 col_2 tue day_19'><span class='day'>19</span></td><td class='row_4 col_3 wed day_20'><span class='day'>20</span></td><td class='row_4 col_4 thu day_21'><span class='day'>21</span></td><td class='row_4 col_5 fri day_22'><span class='day'>22</span></td><td class='row_4 col_6 sat holiday day_23'><span class='day'>23</span><span class='holiday_name'>秋分の日</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_24'><span class='day'>24</span></td><td class='row_5 col_1 mon day_25'><span class='day'>25</span></td><td class='row_5 col_2 tue day_26'><span class='day'>26</span></td><td class='row_5 col_3 wed day_27'><span class='day'>27</span></td><td class='row_5 col_4 thu day_28'><span class='day'>28</span></td><td class='row_5 col_5 fri day_29'><span class='day'>29</span></td><td class='row_5 col_6 sat day_30'><span class='day'>30</span></td></tr></table>"
54
+ end
55
+ it { Jpcalendar.calendar_table(Date.new(2006, 9, 9), padding: " ").should eql @expect_str}
56
+ end
57
+
58
+ context "対象月:2007年9月(月曜はじまり 休日を出さない スペース詰め)" do
59
+ before do
60
+ @expect_str="<table><tr class='header'><th class='header header_0 mon'>月</th><th class='header header_1 tue'>火</th><th class='header header_2 wed'>水</th><th class='header header_3 thu'>木</th><th class='header header_4 fri'>金</th><th class='header header_5 sat'>土</th><th class='header header_6 sun'>日</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_5 sat day_1'><span class='day'>&nbsp;1</span></td><td class='row_1 col_6 sun holiday day_2'><span class='day'>&nbsp;2</span></td></tr><tr class='row_1'><td class='row_2 col_0 mon day_3'><span class='day'>&nbsp;3</span></td><td class='row_2 col_1 tue day_4'><span class='day'>&nbsp;4</span></td><td class='row_2 col_2 wed day_5'><span class='day'>&nbsp;5</span></td><td class='row_2 col_3 thu day_6'><span class='day'>&nbsp;6</span></td><td class='row_2 col_4 fri day_7'><span class='day'>&nbsp;7</span></td><td class='row_2 col_5 sat day_8'><span class='day'>&nbsp;8</span></td><td class='row_2 col_6 sun holiday day_9'><span class='day'>&nbsp;9</span></td></tr><tr class='row_2'><td class='row_3 col_0 mon day_10'><span class='day'>10</span></td><td class='row_3 col_1 tue day_11'><span class='day'>11</span></td><td class='row_3 col_2 wed day_12'><span class='day'>12</span></td><td class='row_3 col_3 thu day_13'><span class='day'>13</span></td><td class='row_3 col_4 fri day_14'><span class='day'>14</span></td><td class='row_3 col_5 sat day_15'><span class='day'>15</span></td><td class='row_3 col_6 sun holiday day_16'><span class='day'>16</span></td></tr><tr class='row_3'><td class='row_4 col_0 mon holiday day_17'><span class='day'>17</span></td><td class='row_4 col_1 tue day_18'><span class='day'>18</span></td><td class='row_4 col_2 wed day_19'><span class='day'>19</span></td><td class='row_4 col_3 thu day_20'><span class='day'>20</span></td><td class='row_4 col_4 fri day_21'><span class='day'>21</span></td><td class='row_4 col_5 sat day_22'><span class='day'>22</span></td><td class='row_4 col_6 sun holiday day_23'><span class='day'>23</span></td></tr><tr class='row_4'><td class='row_5 col_0 mon holiday day_24'><span class='day'>24</span></td><td class='row_5 col_1 tue day_25'><span class='day'>25</span></td><td class='row_5 col_2 wed day_26'><span class='day'>26</span></td><td class='row_5 col_3 thu day_27'><span class='day'>27</span></td><td class='row_5 col_4 fri day_28'><span class='day'>28</span></td><td class='row_5 col_5 sat day_29'><span class='day'>29</span></td><td class='row_5 col_6 sun holiday day_30'><span class='day'>30</span></td></tr></table>"
61
+ end
62
+
63
+ it { Jpcalendar.calendar_table(Date.new(2007, 9, 1),holiday_off: true, padding: " ", start_with_monday: true).should eql @expect_str}
64
+ end
65
+
66
+ context "対象月:2012年12月(カスタムイベント設定)" do
67
+ before do
68
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_6 sat day_1'><span class='day'>01</span>定例会</td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_2'><span class='day'>02</span></td><td class='row_2 col_1 mon day_3'><span class='day'>03</span></td><td class='row_2 col_2 tue day_4'><span class='day'>04</span></td><td class='row_2 col_3 wed day_5'><span class='day'>05</span></td><td class='row_2 col_4 thu day_6'><span class='day'>06</span></td><td class='row_2 col_5 fri day_7'><span class='day'>07</span></td><td class='row_2 col_6 sat day_8'><span class='day'>08</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_9'><span class='day'>09</span>ディズニーランド</td><td class='row_3 col_1 mon day_10'><span class='day'>10</span></td><td class='row_3 col_2 tue day_11'><span class='day'>11</span></td><td class='row_3 col_3 wed day_12'><span class='day'>12</span></td><td class='row_3 col_4 thu day_13'><span class='day'>13</span></td><td class='row_3 col_5 fri day_14'><span class='day'>14</span>会社さぼってサーフィン</td><td class='row_3 col_6 sat day_15'><span class='day'>15</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_16'><span class='day'>16</span></td><td class='row_4 col_1 mon day_17'><span class='day'>17</span></td><td class='row_4 col_2 tue day_18'><span class='day'>18</span></td><td class='row_4 col_3 wed day_19'><span class='day'>19</span></td><td class='row_4 col_4 thu day_20'><span class='day'>20</span></td><td class='row_4 col_5 fri day_21'><span class='day'>21</span></td><td class='row_4 col_6 sat day_22'><span class='day'>22</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_23'><span class='day'>23</span><span class='holiday_name'>天皇誕生日</span>小梅と遊ぶ</td><td class='row_5 col_1 mon holiday day_24'><span class='day'>24</span><span class='holiday_name'>振替休日</span>クリスマスパーティー</td><td class='row_5 col_2 tue day_25'><span class='day'>25</span></td><td class='row_5 col_3 wed day_26'><span class='day'>26</span></td><td class='row_5 col_4 thu day_27'><span class='day'>27</span></td><td class='row_5 col_5 fri day_28'><span class='day'>28</span></td><td class='row_5 col_6 sat day_29'><span class='day'>29</span></td></tr><tr class='row_5'><td class='row_6 col_0 sun holiday day_30'><span class='day'>30</span></td><td class='row_6 col_1 mon day_31'><span class='day'>31</span></td></tr></table>"
69
+ @date_event = JSON.generate({"1" => "定例会", "9" => "ディズニーランド", "14" => "会社さぼってサーフィン", "23" => "小梅と遊ぶ", "24" => "クリスマスパーティー"})
70
+ end
71
+
72
+ it { Jpcalendar.calendar_table(Date.new(2012, 12, 1), date_event: @date_event ).should eql @expect_str}
73
+ end
74
+
75
+ context "対象月:2012年12月(カスタムイベント設定) hash" do
76
+ before do
77
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_6 sat day_1'><span class='day'>01</span>定例会</td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_2'><span class='day'>02</span></td><td class='row_2 col_1 mon day_3'><span class='day'>03</span></td><td class='row_2 col_2 tue day_4'><span class='day'>04</span></td><td class='row_2 col_3 wed day_5'><span class='day'>05</span></td><td class='row_2 col_4 thu day_6'><span class='day'>06</span></td><td class='row_2 col_5 fri day_7'><span class='day'>07</span></td><td class='row_2 col_6 sat day_8'><span class='day'>08</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_9'><span class='day'>09</span>ディズニーランド</td><td class='row_3 col_1 mon day_10'><span class='day'>10</span></td><td class='row_3 col_2 tue day_11'><span class='day'>11</span></td><td class='row_3 col_3 wed day_12'><span class='day'>12</span></td><td class='row_3 col_4 thu day_13'><span class='day'>13</span></td><td class='row_3 col_5 fri day_14'><span class='day'>14</span>会社さぼってサーフィン</td><td class='row_3 col_6 sat day_15'><span class='day'>15</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_16'><span class='day'>16</span></td><td class='row_4 col_1 mon day_17'><span class='day'>17</span></td><td class='row_4 col_2 tue day_18'><span class='day'>18</span></td><td class='row_4 col_3 wed day_19'><span class='day'>19</span></td><td class='row_4 col_4 thu day_20'><span class='day'>20</span></td><td class='row_4 col_5 fri day_21'><span class='day'>21</span></td><td class='row_4 col_6 sat day_22'><span class='day'>22</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_23'><span class='day'>23</span><span class='holiday_name'>天皇誕生日</span>小梅と遊ぶ</td><td class='row_5 col_1 mon holiday day_24'><span class='day'>24</span><span class='holiday_name'>振替休日</span>クリスマスパーティー</td><td class='row_5 col_2 tue day_25'><span class='day'>25</span></td><td class='row_5 col_3 wed day_26'><span class='day'>26</span></td><td class='row_5 col_4 thu day_27'><span class='day'>27</span></td><td class='row_5 col_5 fri day_28'><span class='day'>28</span></td><td class='row_5 col_6 sat day_29'><span class='day'>29</span></td></tr><tr class='row_5'><td class='row_6 col_0 sun holiday day_30'><span class='day'>30</span></td><td class='row_6 col_1 mon day_31'><span class='day'>31</span></td></tr></table>"
78
+ @date_event = {"1" => "定例会", "9" => "ディズニーランド", "14" => "会社さぼってサーフィン", "23" => "小梅と遊ぶ", "24" => "クリスマスパーティー"}
79
+ end
80
+
81
+ it { Jpcalendar.calendar_table(Date.new(2012, 12, 1), date_event: @date_event ).should eql @expect_str}
82
+ end
83
+
84
+ context "対象月:2012年12月(月曜はじまり 休日を出さない スペース詰め カスタムイベント設定)" do
85
+ before do
86
+ @expect_str="<table><tr class='header'><th class='header header_0 mon'>月</th><th class='header header_1 tue'>火</th><th class='header header_2 wed'>水</th><th class='header header_3 thu'>木</th><th class='header header_4 fri'>金</th><th class='header header_5 sat'>土</th><th class='header header_6 sun'>日</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_5 sat day_1'><span class='day'>&nbsp;1</span>定例会</td><td class='row_1 col_6 sun holiday day_2'><span class='day'>&nbsp;2</span></td></tr><tr class='row_1'><td class='row_2 col_0 mon day_3'><span class='day'>&nbsp;3</span></td><td class='row_2 col_1 tue day_4'><span class='day'>&nbsp;4</span></td><td class='row_2 col_2 wed day_5'><span class='day'>&nbsp;5</span></td><td class='row_2 col_3 thu day_6'><span class='day'>&nbsp;6</span></td><td class='row_2 col_4 fri day_7'><span class='day'>&nbsp;7</span></td><td class='row_2 col_5 sat day_8'><span class='day'>&nbsp;8</span></td><td class='row_2 col_6 sun holiday day_9'><span class='day'>&nbsp;9</span>ディズニーランド</td></tr><tr class='row_2'><td class='row_3 col_0 mon day_10'><span class='day'>10</span></td><td class='row_3 col_1 tue day_11'><span class='day'>11</span></td><td class='row_3 col_2 wed day_12'><span class='day'>12</span></td><td class='row_3 col_3 thu day_13'><span class='day'>13</span></td><td class='row_3 col_4 fri day_14'><span class='day'>14</span>会社さぼってサーフィン</td><td class='row_3 col_5 sat day_15'><span class='day'>15</span></td><td class='row_3 col_6 sun holiday day_16'><span class='day'>16</span></td></tr><tr class='row_3'><td class='row_4 col_0 mon day_17'><span class='day'>17</span></td><td class='row_4 col_1 tue day_18'><span class='day'>18</span></td><td class='row_4 col_2 wed day_19'><span class='day'>19</span></td><td class='row_4 col_3 thu day_20'><span class='day'>20</span></td><td class='row_4 col_4 fri day_21'><span class='day'>21</span></td><td class='row_4 col_5 sat day_22'><span class='day'>22</span></td><td class='row_4 col_6 sun holiday day_23'><span class='day'>23</span>小梅と遊ぶ</td></tr><tr class='row_4'><td class='row_5 col_0 mon holiday day_24'><span class='day'>24</span>クリスマスパーティー</td><td class='row_5 col_1 tue day_25'><span class='day'>25</span></td><td class='row_5 col_2 wed day_26'><span class='day'>26</span></td><td class='row_5 col_3 thu day_27'><span class='day'>27</span></td><td class='row_5 col_4 fri day_28'><span class='day'>28</span></td><td class='row_5 col_5 sat day_29'><span class='day'>29</span></td><td class='row_5 col_6 sun holiday day_30'><span class='day'>30</span></td></tr><tr class='row_5'><td class='row_6 col_0 mon day_31'><span class='day'>31</span></td></tr></table>"
87
+ @date_event = JSON.generate({"1" => "定例会", "9" => "ディズニーランド", "14" => "会社さぼってサーフィン", "23" => "小梅と遊ぶ", "24" => "クリスマスパーティー"})
88
+ end
89
+ it { Jpcalendar.calendar_table(Date.new(2012, 12, 1),holiday_off: true, padding: " ", start_with_monday: true, date_event: @date_event ).should eql @expect_str}
90
+ end
91
+ end
92
+ #}}}
93
+
94
+ # calendar_div{{{
95
+ describe "calendar div" do
96
+ context "対象月:2012年12月" do
97
+ before do
98
+ @expect_str="<html><div class='header'><span class='header header_0 sun'>日</span><span class='header header_1 mon'>月</span><span class='header header_2 tue'>火</span><span class='header header_3 wed'>水</span><span class='header header_4 thu'>木</span><span class='header header_5 fri'>金</span><span class='header header_6 sat'>土</span></div><div class='row_0'><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span class='row_1 col_6 sat day_1'><span class='day'>01</span></span></div><div class='row_1'><span class='row_2 col_0 sun holiday day_2'><span class='day'>02</span></span><span class='row_2 col_1 mon day_3'><span class='day'>03</span></span><span class='row_2 col_2 tue day_4'><span class='day'>04</span></span><span class='row_2 col_3 wed day_5'><span class='day'>05</span></span><span class='row_2 col_4 thu day_6'><span class='day'>06</span></span><span class='row_2 col_5 fri day_7'><span class='day'>07</span></span><span class='row_2 col_6 sat day_8'><span class='day'>08</span></span></div><div class='row_2'><span class='row_3 col_0 sun holiday day_9'><span class='day'>09</span></span><span class='row_3 col_1 mon day_10'><span class='day'>10</span></span><span class='row_3 col_2 tue day_11'><span class='day'>11</span></span><span class='row_3 col_3 wed day_12'><span class='day'>12</span></span><span class='row_3 col_4 thu day_13'><span class='day'>13</span></span><span class='row_3 col_5 fri day_14'><span class='day'>14</span></span><span class='row_3 col_6 sat day_15'><span class='day'>15</span></span></div><div class='row_3'><span class='row_4 col_0 sun holiday day_16'><span class='day'>16</span></span><span class='row_4 col_1 mon day_17'><span class='day'>17</span></span><span class='row_4 col_2 tue day_18'><span class='day'>18</span></span><span class='row_4 col_3 wed day_19'><span class='day'>19</span></span><span class='row_4 col_4 thu day_20'><span class='day'>20</span></span><span class='row_4 col_5 fri day_21'><span class='day'>21</span></span><span class='row_4 col_6 sat day_22'><span class='day'>22</span></span></div><div class='row_4'><span class='row_5 col_0 sun holiday day_23'><span class='day'>23</span><span class='holiday_name'>天皇誕生日</span></span><span class='row_5 col_1 mon holiday day_24'><span class='day'>24</span><span class='holiday_name'>振替休日</span></span><span class='row_5 col_2 tue day_25'><span class='day'>25</span></span><span class='row_5 col_3 wed day_26'><span class='day'>26</span></span><span class='row_5 col_4 thu day_27'><span class='day'>27</span></span><span class='row_5 col_5 fri day_28'><span class='day'>28</span></span><span class='row_5 col_6 sat day_29'><span class='day'>29</span></span></div><div class='row_5'><span class='row_6 col_0 sun holiday day_30'><span class='day'>30</span></span><span class='row_6 col_1 mon day_31'><span class='day'>31</span></span></div></html>"
99
+ end
100
+
101
+ it { Jpcalendar.calendar_div(Date.new(2012, 12, 1)).should eql @expect_str}
102
+ end
103
+
104
+ context "対象月:2012年2月(うるう年)" do
105
+ before do
106
+ @expect_str="<html><div class='header'><span class='header header_0 sun'>日</span><span class='header header_1 mon'>月</span><span class='header header_2 tue'>火</span><span class='header header_3 wed'>水</span><span class='header header_4 thu'>木</span><span class='header header_5 fri'>金</span><span class='header header_6 sat'>土</span></div><div class='row_0'><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span class='row_1 col_3 wed day_1'><span class='day'>01</span></span><span class='row_1 col_4 thu day_2'><span class='day'>02</span></span><span class='row_1 col_5 fri day_3'><span class='day'>03</span></span><span class='row_1 col_6 sat day_4'><span class='day'>04</span></span></div><div class='row_1'><span class='row_2 col_0 sun holiday day_5'><span class='day'>05</span></span><span class='row_2 col_1 mon day_6'><span class='day'>06</span></span><span class='row_2 col_2 tue day_7'><span class='day'>07</span></span><span class='row_2 col_3 wed day_8'><span class='day'>08</span></span><span class='row_2 col_4 thu day_9'><span class='day'>09</span></span><span class='row_2 col_5 fri day_10'><span class='day'>10</span></span><span class='row_2 col_6 sat holiday day_11'><span class='day'>11</span><span class='holiday_name'>建国記念の日</span></span></div><div class='row_2'><span class='row_3 col_0 sun holiday day_12'><span class='day'>12</span></span><span class='row_3 col_1 mon day_13'><span class='day'>13</span></span><span class='row_3 col_2 tue day_14'><span class='day'>14</span></span><span class='row_3 col_3 wed day_15'><span class='day'>15</span></span><span class='row_3 col_4 thu day_16'><span class='day'>16</span></span><span class='row_3 col_5 fri day_17'><span class='day'>17</span></span><span class='row_3 col_6 sat day_18'><span class='day'>18</span></span></div><div class='row_3'><span class='row_4 col_0 sun holiday day_19'><span class='day'>19</span></span><span class='row_4 col_1 mon day_20'><span class='day'>20</span></span><span class='row_4 col_2 tue day_21'><span class='day'>21</span></span><span class='row_4 col_3 wed day_22'><span class='day'>22</span></span><span class='row_4 col_4 thu day_23'><span class='day'>23</span></span><span class='row_4 col_5 fri day_24'><span class='day'>24</span></span><span class='row_4 col_6 sat day_25'><span class='day'>25</span></span></div><div class='row_4'><span class='row_5 col_0 sun holiday day_26'><span class='day'>26</span></span><span class='row_5 col_1 mon day_27'><span class='day'>27</span></span><span class='row_5 col_2 tue day_28'><span class='day'>28</span></span><span class='row_5 col_3 wed day_29'><span class='day'>29</span></span></div></html>"
107
+ end
108
+
109
+ it { Jpcalendar.calendar_div(Date.new(2012, 2, 1)).should eql @expect_str}
110
+ end
111
+
112
+ context "対象月:2013年2月(not うるう年)" do
113
+ before do
114
+ @expect_str="<html><div class='header'><span class='header header_0 sun'>日</span><span class='header header_1 mon'>月</span><span class='header header_2 tue'>火</span><span class='header header_3 wed'>水</span><span class='header header_4 thu'>木</span><span class='header header_5 fri'>金</span><span class='header header_6 sat'>土</span></div><div class='row_0'><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span class='row_1 col_5 fri day_1'><span class='day'>01</span></span><span class='row_1 col_6 sat day_2'><span class='day'>02</span></span></div><div class='row_1'><span class='row_2 col_0 sun holiday day_3'><span class='day'>03</span></span><span class='row_2 col_1 mon day_4'><span class='day'>04</span></span><span class='row_2 col_2 tue day_5'><span class='day'>05</span></span><span class='row_2 col_3 wed day_6'><span class='day'>06</span></span><span class='row_2 col_4 thu day_7'><span class='day'>07</span></span><span class='row_2 col_5 fri day_8'><span class='day'>08</span></span><span class='row_2 col_6 sat day_9'><span class='day'>09</span></span></div><div class='row_2'><span class='row_3 col_0 sun holiday day_10'><span class='day'>10</span></span><span class='row_3 col_1 mon holiday day_11'><span class='day'>11</span><span class='holiday_name'>建国記念の日</span></span><span class='row_3 col_2 tue day_12'><span class='day'>12</span></span><span class='row_3 col_3 wed day_13'><span class='day'>13</span></span><span class='row_3 col_4 thu day_14'><span class='day'>14</span></span><span class='row_3 col_5 fri day_15'><span class='day'>15</span></span><span class='row_3 col_6 sat day_16'><span class='day'>16</span></span></div><div class='row_3'><span class='row_4 col_0 sun holiday day_17'><span class='day'>17</span></span><span class='row_4 col_1 mon day_18'><span class='day'>18</span></span><span class='row_4 col_2 tue day_19'><span class='day'>19</span></span><span class='row_4 col_3 wed day_20'><span class='day'>20</span></span><span class='row_4 col_4 thu day_21'><span class='day'>21</span></span><span class='row_4 col_5 fri day_22'><span class='day'>22</span></span><span class='row_4 col_6 sat day_23'><span class='day'>23</span></span></div><div class='row_4'><span class='row_5 col_0 sun holiday day_24'><span class='day'>24</span></span><span class='row_5 col_1 mon day_25'><span class='day'>25</span></span><span class='row_5 col_2 tue day_26'><span class='day'>26</span></span><span class='row_5 col_3 wed day_27'><span class='day'>27</span></span><span class='row_5 col_4 thu day_28'><span class='day'>28</span></span></div></html>"
115
+ end
116
+
117
+ it { Jpcalendar.calendar_div(Date.new(2013, 2, 1)).should eql @expect_str}
118
+ end
119
+
120
+ context "対象月:2012年9月(月曜はじまり)" do
121
+ before do
122
+ @expect_str="<html><div class='header'><span class='header header_0 mon'>月</span><span class='header header_1 tue'>火</span><span class='header header_2 wed'>水</span><span class='header header_3 thu'>木</span><span class='header header_4 fri'>金</span><span class='header header_5 sat'>土</span><span class='header header_6 sun'>日</span></div><div class='row_0'><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span class='row_1 col_5 sat day_1'><span class='day'>01</span></span><span class='row_1 col_6 sun holiday day_2'><span class='day'>02</span></span></div><div class='row_1'><span class='row_2 col_0 mon day_3'><span class='day'>03</span></span><span class='row_2 col_1 tue day_4'><span class='day'>04</span></span><span class='row_2 col_2 wed day_5'><span class='day'>05</span></span><span class='row_2 col_3 thu day_6'><span class='day'>06</span></span><span class='row_2 col_4 fri day_7'><span class='day'>07</span></span><span class='row_2 col_5 sat day_8'><span class='day'>08</span></span><span class='row_2 col_6 sun holiday day_9'><span class='day'>09</span></span></div><div class='row_2'><span class='row_3 col_0 mon day_10'><span class='day'>10</span></span><span class='row_3 col_1 tue day_11'><span class='day'>11</span></span><span class='row_3 col_2 wed day_12'><span class='day'>12</span></span><span class='row_3 col_3 thu day_13'><span class='day'>13</span></span><span class='row_3 col_4 fri day_14'><span class='day'>14</span></span><span class='row_3 col_5 sat day_15'><span class='day'>15</span></span><span class='row_3 col_6 sun holiday day_16'><span class='day'>16</span></span></div><div class='row_3'><span class='row_4 col_0 mon holiday day_17'><span class='day'>17</span><span class='holiday_name'>敬老の日</span></span><span class='row_4 col_1 tue day_18'><span class='day'>18</span></span><span class='row_4 col_2 wed day_19'><span class='day'>19</span></span><span class='row_4 col_3 thu day_20'><span class='day'>20</span></span><span class='row_4 col_4 fri day_21'><span class='day'>21</span></span><span class='row_4 col_5 sat holiday day_22'><span class='day'>22</span><span class='holiday_name'>秋分の日</span></span><span class='row_4 col_6 sun holiday day_23'><span class='day'>23</span></span></div><div class='row_4'><span class='row_5 col_0 mon day_24'><span class='day'>24</span></span><span class='row_5 col_1 tue day_25'><span class='day'>25</span></span><span class='row_5 col_2 wed day_26'><span class='day'>26</span></span><span class='row_5 col_3 thu day_27'><span class='day'>27</span></span><span class='row_5 col_4 fri day_28'><span class='day'>28</span></span><span class='row_5 col_5 sat day_29'><span class='day'>29</span></span><span class='row_5 col_6 sun holiday day_30'><span class='day'>30</span></span></div></html>"
123
+ end
124
+
125
+ it { Jpcalendar.calendar_div(Date.new(2012, 9, 1), start_with_monday: true).should eql @expect_str}
126
+ end
127
+
128
+
129
+ context "対象月:2012年9月(休日を出力しない)" do
130
+ before do
131
+ @expect_str="<html><div class='header'><span class='header header_0 sun'>日</span><span class='header header_1 mon'>月</span><span class='header header_2 tue'>火</span><span class='header header_3 wed'>水</span><span class='header header_4 thu'>木</span><span class='header header_5 fri'>金</span><span class='header header_6 sat'>土</span></div><div class='row_0'><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span class='row_1 col_6 sat day_1'><span class='day'>01</span></span></div><div class='row_1'><span class='row_2 col_0 sun holiday day_2'><span class='day'>02</span></span><span class='row_2 col_1 mon day_3'><span class='day'>03</span></span><span class='row_2 col_2 tue day_4'><span class='day'>04</span></span><span class='row_2 col_3 wed day_5'><span class='day'>05</span></span><span class='row_2 col_4 thu day_6'><span class='day'>06</span></span><span class='row_2 col_5 fri day_7'><span class='day'>07</span></span><span class='row_2 col_6 sat day_8'><span class='day'>08</span></span></div><div class='row_2'><span class='row_3 col_0 sun holiday day_9'><span class='day'>09</span></span><span class='row_3 col_1 mon day_10'><span class='day'>10</span></span><span class='row_3 col_2 tue day_11'><span class='day'>11</span></span><span class='row_3 col_3 wed day_12'><span class='day'>12</span></span><span class='row_3 col_4 thu day_13'><span class='day'>13</span></span><span class='row_3 col_5 fri day_14'><span class='day'>14</span></span><span class='row_3 col_6 sat day_15'><span class='day'>15</span></span></div><div class='row_3'><span class='row_4 col_0 sun holiday day_16'><span class='day'>16</span></span><span class='row_4 col_1 mon holiday day_17'><span class='day'>17</span></span><span class='row_4 col_2 tue day_18'><span class='day'>18</span></span><span class='row_4 col_3 wed day_19'><span class='day'>19</span></span><span class='row_4 col_4 thu day_20'><span class='day'>20</span></span><span class='row_4 col_5 fri day_21'><span class='day'>21</span></span><span class='row_4 col_6 sat holiday day_22'><span class='day'>22</span></span></div><div class='row_4'><span class='row_5 col_0 sun holiday day_23'><span class='day'>23</span></span><span class='row_5 col_1 mon day_24'><span class='day'>24</span></span><span class='row_5 col_2 tue day_25'><span class='day'>25</span></span><span class='row_5 col_3 wed day_26'><span class='day'>26</span></span><span class='row_5 col_4 thu day_27'><span class='day'>27</span></span><span class='row_5 col_5 fri day_28'><span class='day'>28</span></span><span class='row_5 col_6 sat day_29'><span class='day'>29</span></span></div><div class='row_5'><span class='row_6 col_0 sun holiday day_30'><span class='day'>30</span></span></div></html>"
132
+ end
133
+
134
+ it { Jpcalendar.calendar_div(Date.new(2012, 9, 1),holiday_off: true).should eql @expect_str}
135
+ end
136
+
137
+ context "対象月:2006年9月(スペース詰め)" do
138
+ before do
139
+ @expect_str="<html><div class='header'><span class='header header_0 sun'>日</span><span class='header header_1 mon'>月</span><span class='header header_2 tue'>火</span><span class='header header_3 wed'>水</span><span class='header header_4 thu'>木</span><span class='header header_5 fri'>金</span><span class='header header_6 sat'>土</span></div><div class='row_0'><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span class='row_1 col_5 fri day_1'><span class='day'>&nbsp;1</span></span><span class='row_1 col_6 sat day_2'><span class='day'>&nbsp;2</span></span></div><div class='row_1'><span class='row_2 col_0 sun holiday day_3'><span class='day'>&nbsp;3</span></span><span class='row_2 col_1 mon day_4'><span class='day'>&nbsp;4</span></span><span class='row_2 col_2 tue day_5'><span class='day'>&nbsp;5</span></span><span class='row_2 col_3 wed day_6'><span class='day'>&nbsp;6</span></span><span class='row_2 col_4 thu day_7'><span class='day'>&nbsp;7</span></span><span class='row_2 col_5 fri day_8'><span class='day'>&nbsp;8</span></span><span class='row_2 col_6 sat day_9'><span class='day'>&nbsp;9</span></span></div><div class='row_2'><span class='row_3 col_0 sun holiday day_10'><span class='day'>10</span></span><span class='row_3 col_1 mon day_11'><span class='day'>11</span></span><span class='row_3 col_2 tue day_12'><span class='day'>12</span></span><span class='row_3 col_3 wed day_13'><span class='day'>13</span></span><span class='row_3 col_4 thu day_14'><span class='day'>14</span></span><span class='row_3 col_5 fri day_15'><span class='day'>15</span></span><span class='row_3 col_6 sat day_16'><span class='day'>16</span></span></div><div class='row_3'><span class='row_4 col_0 sun holiday day_17'><span class='day'>17</span></span><span class='row_4 col_1 mon holiday day_18'><span class='day'>18</span><span class='holiday_name'>敬老の日</span></span><span class='row_4 col_2 tue day_19'><span class='day'>19</span></span><span class='row_4 col_3 wed day_20'><span class='day'>20</span></span><span class='row_4 col_4 thu day_21'><span class='day'>21</span></span><span class='row_4 col_5 fri day_22'><span class='day'>22</span></span><span class='row_4 col_6 sat holiday day_23'><span class='day'>23</span><span class='holiday_name'>秋分の日</span></span></div><div class='row_4'><span class='row_5 col_0 sun holiday day_24'><span class='day'>24</span></span><span class='row_5 col_1 mon day_25'><span class='day'>25</span></span><span class='row_5 col_2 tue day_26'><span class='day'>26</span></span><span class='row_5 col_3 wed day_27'><span class='day'>27</span></span><span class='row_5 col_4 thu day_28'><span class='day'>28</span></span><span class='row_5 col_5 fri day_29'><span class='day'>29</span></span><span class='row_5 col_6 sat day_30'><span class='day'>30</span></span></div></html>"
140
+ end
141
+
142
+ it { Jpcalendar.calendar_div(Date.new(2006, 9, 1), padding: " ").should eql @expect_str}
143
+ end
144
+
145
+ context "対象月:2007年9月(月曜はじまり 休日を出さない スペース詰め)" do
146
+ before do
147
+ @expect_str="<html><div class='header'><span class='header header_0 mon'>月</span><span class='header header_1 tue'>火</span><span class='header header_2 wed'>水</span><span class='header header_3 thu'>木</span><span class='header header_4 fri'>金</span><span class='header header_5 sat'>土</span><span class='header header_6 sun'>日</span></div><div class='row_0'><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span class='row_1 col_5 sat day_1'><span class='day'>&nbsp;1</span></span><span class='row_1 col_6 sun holiday day_2'><span class='day'>&nbsp;2</span></span></div><div class='row_1'><span class='row_2 col_0 mon day_3'><span class='day'>&nbsp;3</span></span><span class='row_2 col_1 tue day_4'><span class='day'>&nbsp;4</span></span><span class='row_2 col_2 wed day_5'><span class='day'>&nbsp;5</span></span><span class='row_2 col_3 thu day_6'><span class='day'>&nbsp;6</span></span><span class='row_2 col_4 fri day_7'><span class='day'>&nbsp;7</span></span><span class='row_2 col_5 sat day_8'><span class='day'>&nbsp;8</span></span><span class='row_2 col_6 sun holiday day_9'><span class='day'>&nbsp;9</span></span></div><div class='row_2'><span class='row_3 col_0 mon day_10'><span class='day'>10</span></span><span class='row_3 col_1 tue day_11'><span class='day'>11</span></span><span class='row_3 col_2 wed day_12'><span class='day'>12</span></span><span class='row_3 col_3 thu day_13'><span class='day'>13</span></span><span class='row_3 col_4 fri day_14'><span class='day'>14</span></span><span class='row_3 col_5 sat day_15'><span class='day'>15</span></span><span class='row_3 col_6 sun holiday day_16'><span class='day'>16</span></span></div><div class='row_3'><span class='row_4 col_0 mon holiday day_17'><span class='day'>17</span></span><span class='row_4 col_1 tue day_18'><span class='day'>18</span></span><span class='row_4 col_2 wed day_19'><span class='day'>19</span></span><span class='row_4 col_3 thu day_20'><span class='day'>20</span></span><span class='row_4 col_4 fri day_21'><span class='day'>21</span></span><span class='row_4 col_5 sat day_22'><span class='day'>22</span></span><span class='row_4 col_6 sun holiday day_23'><span class='day'>23</span></span></div><div class='row_4'><span class='row_5 col_0 mon holiday day_24'><span class='day'>24</span></span><span class='row_5 col_1 tue day_25'><span class='day'>25</span></span><span class='row_5 col_2 wed day_26'><span class='day'>26</span></span><span class='row_5 col_3 thu day_27'><span class='day'>27</span></span><span class='row_5 col_4 fri day_28'><span class='day'>28</span></span><span class='row_5 col_5 sat day_29'><span class='day'>29</span></span><span class='row_5 col_6 sun holiday day_30'><span class='day'>30</span></span></div></html>"
148
+ end
149
+
150
+ it { Jpcalendar.calendar_div(Date.new(2007, 9, 1),holiday_off: true, padding: " ", start_with_monday: true).should eql @expect_str}
151
+ end
152
+
153
+ context "対象月:2012年12月(カスタムイベント設定)" do
154
+ before do
155
+ @expect_str="<html><div class='header'><span class='header header_0 sun'>日</span><span class='header header_1 mon'>月</span><span class='header header_2 tue'>火</span><span class='header header_3 wed'>水</span><span class='header header_4 thu'>木</span><span class='header header_5 fri'>金</span><span class='header header_6 sat'>土</span></div><div class='row_0'><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span class='row_1 col_6 sat day_1'><span class='day'>01</span>定例会</span></div><div class='row_1'><span class='row_2 col_0 sun holiday day_2'><span class='day'>02</span></span><span class='row_2 col_1 mon day_3'><span class='day'>03</span></span><span class='row_2 col_2 tue day_4'><span class='day'>04</span></span><span class='row_2 col_3 wed day_5'><span class='day'>05</span></span><span class='row_2 col_4 thu day_6'><span class='day'>06</span></span><span class='row_2 col_5 fri day_7'><span class='day'>07</span></span><span class='row_2 col_6 sat day_8'><span class='day'>08</span></span></div><div class='row_2'><span class='row_3 col_0 sun holiday day_9'><span class='day'>09</span>ディズニーランド</span><span class='row_3 col_1 mon day_10'><span class='day'>10</span></span><span class='row_3 col_2 tue day_11'><span class='day'>11</span></span><span class='row_3 col_3 wed day_12'><span class='day'>12</span></span><span class='row_3 col_4 thu day_13'><span class='day'>13</span></span><span class='row_3 col_5 fri day_14'><span class='day'>14</span>会社さぼってサーフィン</span><span class='row_3 col_6 sat day_15'><span class='day'>15</span></span></div><div class='row_3'><span class='row_4 col_0 sun holiday day_16'><span class='day'>16</span></span><span class='row_4 col_1 mon day_17'><span class='day'>17</span></span><span class='row_4 col_2 tue day_18'><span class='day'>18</span></span><span class='row_4 col_3 wed day_19'><span class='day'>19</span></span><span class='row_4 col_4 thu day_20'><span class='day'>20</span></span><span class='row_4 col_5 fri day_21'><span class='day'>21</span></span><span class='row_4 col_6 sat day_22'><span class='day'>22</span></span></div><div class='row_4'><span class='row_5 col_0 sun holiday day_23'><span class='day'>23</span><span class='holiday_name'>天皇誕生日</span>小梅と遊ぶ</span><span class='row_5 col_1 mon holiday day_24'><span class='day'>24</span><span class='holiday_name'>振替休日</span>クリスマスパーティー</span><span class='row_5 col_2 tue day_25'><span class='day'>25</span></span><span class='row_5 col_3 wed day_26'><span class='day'>26</span></span><span class='row_5 col_4 thu day_27'><span class='day'>27</span></span><span class='row_5 col_5 fri day_28'><span class='day'>28</span></span><span class='row_5 col_6 sat day_29'><span class='day'>29</span></span></div><div class='row_5'><span class='row_6 col_0 sun holiday day_30'><span class='day'>30</span></span><span class='row_6 col_1 mon day_31'><span class='day'>31</span></span></div></html>"
156
+ @date_event = JSON.generate({"1" => "定例会", "9" => "ディズニーランド", "14" => "会社さぼってサーフィン", "23" => "小梅と遊ぶ", "24" => "クリスマスパーティー"})
157
+ end
158
+ it { Jpcalendar.calendar_div(Date.new(2012, 12, 1), date_event: @date_event ).should eql @expect_str}
159
+ end
160
+
161
+ context "対象月:2012年12月(月曜はじまり 休日を出さない スペース詰め カスタムイベント設定)" do
162
+ before do
163
+ @expect_str="<html><div class='header'><span class='header header_0 mon'>月</span><span class='header header_1 tue'>火</span><span class='header header_2 wed'>水</span><span class='header header_3 thu'>木</span><span class='header header_4 fri'>金</span><span class='header header_5 sat'>土</span><span class='header header_6 sun'>日</span></div><div class='row_0'><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span><span class='day'></span></span><span class='row_1 col_5 sat day_1'><span class='day'>&nbsp;1</span>定例会</span><span class='row_1 col_6 sun holiday day_2'><span class='day'>&nbsp;2</span></span></div><div class='row_1'><span class='row_2 col_0 mon day_3'><span class='day'>&nbsp;3</span></span><span class='row_2 col_1 tue day_4'><span class='day'>&nbsp;4</span></span><span class='row_2 col_2 wed day_5'><span class='day'>&nbsp;5</span></span><span class='row_2 col_3 thu day_6'><span class='day'>&nbsp;6</span></span><span class='row_2 col_4 fri day_7'><span class='day'>&nbsp;7</span></span><span class='row_2 col_5 sat day_8'><span class='day'>&nbsp;8</span></span><span class='row_2 col_6 sun holiday day_9'><span class='day'>&nbsp;9</span>ディズニーランド</span></div><div class='row_2'><span class='row_3 col_0 mon day_10'><span class='day'>10</span></span><span class='row_3 col_1 tue day_11'><span class='day'>11</span></span><span class='row_3 col_2 wed day_12'><span class='day'>12</span></span><span class='row_3 col_3 thu day_13'><span class='day'>13</span></span><span class='row_3 col_4 fri day_14'><span class='day'>14</span>会社さぼってサーフィン</span><span class='row_3 col_5 sat day_15'><span class='day'>15</span></span><span class='row_3 col_6 sun holiday day_16'><span class='day'>16</span></span></div><div class='row_3'><span class='row_4 col_0 mon day_17'><span class='day'>17</span></span><span class='row_4 col_1 tue day_18'><span class='day'>18</span></span><span class='row_4 col_2 wed day_19'><span class='day'>19</span></span><span class='row_4 col_3 thu day_20'><span class='day'>20</span></span><span class='row_4 col_4 fri day_21'><span class='day'>21</span></span><span class='row_4 col_5 sat day_22'><span class='day'>22</span></span><span class='row_4 col_6 sun holiday day_23'><span class='day'>23</span>小梅と遊ぶ</span></div><div class='row_4'><span class='row_5 col_0 mon holiday day_24'><span class='day'>24</span>クリスマスパーティー</span><span class='row_5 col_1 tue day_25'><span class='day'>25</span></span><span class='row_5 col_2 wed day_26'><span class='day'>26</span></span><span class='row_5 col_3 thu day_27'><span class='day'>27</span></span><span class='row_5 col_4 fri day_28'><span class='day'>28</span></span><span class='row_5 col_5 sat day_29'><span class='day'>29</span></span><span class='row_5 col_6 sun holiday day_30'><span class='day'>30</span></span></div><div class='row_5'><span class='row_6 col_0 mon day_31'><span class='day'>31</span></span></div></html>"
164
+ @date_event = JSON.generate({"1" => "定例会", "9" => "ディズニーランド", "14" => "会社さぼってサーフィン", "23" => "小梅と遊ぶ", "24" => "クリスマスパーティー"})
165
+ end
166
+ it { Jpcalendar.calendar_div(Date.new(2012, 12, 1),holiday_off: true, padding: " ", start_with_monday: true, date_event: @date_event ).should eql @expect_str}
167
+ end
168
+ end
169
+ #}}}
170
+
171
+ # calendar{{{
172
+ describe "calendar" do
173
+ context "対象月:2008年9月 (本日が月初)" do
174
+ before do
175
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_6 sat day_1'><span class='day'>01</span></td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_2'><span class='day'>02</span></td><td class='row_2 col_1 mon day_3'><span class='day'>03</span></td><td class='row_2 col_2 tue day_4'><span class='day'>04</span></td><td class='row_2 col_3 wed day_5'><span class='day'>05</span></td><td class='row_2 col_4 thu day_6'><span class='day'>06</span></td><td class='row_2 col_5 fri day_7'><span class='day'>07</span></td><td class='row_2 col_6 sat day_8'><span class='day'>08</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_9'><span class='day'>09</span></td><td class='row_3 col_1 mon day_10'><span class='day'>10</span></td><td class='row_3 col_2 tue day_11'><span class='day'>11</span></td><td class='row_3 col_3 wed day_12'><span class='day'>12</span></td><td class='row_3 col_4 thu day_13'><span class='day'>13</span></td><td class='row_3 col_5 fri day_14'><span class='day'>14</span></td><td class='row_3 col_6 sat day_15'><span class='day'>15</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_16'><span class='day'>16</span></td><td class='row_4 col_1 mon day_17'><span class='day'>17</span></td><td class='row_4 col_2 tue day_18'><span class='day'>18</span></td><td class='row_4 col_3 wed day_19'><span class='day'>19</span></td><td class='row_4 col_4 thu day_20'><span class='day'>20</span></td><td class='row_4 col_5 fri day_21'><span class='day'>21</span></td><td class='row_4 col_6 sat day_22'><span class='day'>22</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_23'><span class='day'>23</span><span class='holiday_name'>天皇誕生日</span></td><td class='row_5 col_1 mon holiday day_24'><span class='day'>24</span><span class='holiday_name'>振替休日</span></td><td class='row_5 col_2 tue day_25'><span class='day'>25</span></td><td class='row_5 col_3 wed day_26'><span class='day'>26</span></td><td class='row_5 col_4 thu day_27'><span class='day'>27</span></td><td class='row_5 col_5 fri day_28'><span class='day'>28</span></td><td class='row_5 col_6 sat day_29'><span class='day'>29</span></td></tr><tr class='row_5'><td class='row_6 col_0 sun holiday day_30'><span class='day'>30</span></td><td class='row_6 col_1 mon day_31'><span class='day'>31</span></td></tr></table>"
176
+ end
177
+
178
+ it { Jpcalendar.calendar(Date.new(2012, 12, 1)).should eql @expect_str}
179
+ end
180
+
181
+
182
+ context "対象月:2008年9月 (本日が中間ぐらい)" do
183
+ before do
184
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_6 sat day_1'><span class='day'>01</span></td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_2'><span class='day'>02</span></td><td class='row_2 col_1 mon day_3'><span class='day'>03</span></td><td class='row_2 col_2 tue day_4'><span class='day'>04</span></td><td class='row_2 col_3 wed day_5'><span class='day'>05</span></td><td class='row_2 col_4 thu day_6'><span class='day'>06</span></td><td class='row_2 col_5 fri day_7'><span class='day'>07</span></td><td class='row_2 col_6 sat day_8'><span class='day'>08</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_9'><span class='day'>09</span></td><td class='row_3 col_1 mon day_10'><span class='day'>10</span></td><td class='row_3 col_2 tue day_11'><span class='day'>11</span></td><td class='row_3 col_3 wed day_12'><span class='day'>12</span></td><td class='row_3 col_4 thu day_13'><span class='day'>13</span></td><td class='row_3 col_5 fri day_14'><span class='day'>14</span></td><td class='row_3 col_6 sat day_15'><span class='day'>15</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_16'><span class='day'>16</span></td><td class='row_4 col_1 mon day_17'><span class='day'>17</span></td><td class='row_4 col_2 tue day_18'><span class='day'>18</span></td><td class='row_4 col_3 wed day_19'><span class='day'>19</span></td><td class='row_4 col_4 thu day_20'><span class='day'>20</span></td><td class='row_4 col_5 fri day_21'><span class='day'>21</span></td><td class='row_4 col_6 sat day_22'><span class='day'>22</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_23'><span class='day'>23</span><span class='holiday_name'>天皇誕生日</span></td><td class='row_5 col_1 mon holiday day_24'><span class='day'>24</span><span class='holiday_name'>振替休日</span></td><td class='row_5 col_2 tue day_25'><span class='day'>25</span></td><td class='row_5 col_3 wed day_26'><span class='day'>26</span></td><td class='row_5 col_4 thu day_27'><span class='day'>27</span></td><td class='row_5 col_5 fri day_28'><span class='day'>28</span></td><td class='row_5 col_6 sat day_29'><span class='day'>29</span></td></tr><tr class='row_5'><td class='row_6 col_0 sun holiday day_30'><span class='day'>30</span></td><td class='row_6 col_1 mon day_31'><span class='day'>31</span></td></tr></table>"
185
+ end
186
+ it { Jpcalendar.calendar(Date.new(2012, 12, 15)).should eql @expect_str}
187
+ end
188
+
189
+
190
+ context "対象月:2008年9月 (本日が月末)" do
191
+ before do
192
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td><span class='day'></span></td><td class='row_1 col_6 sat day_1'><span class='day'>01</span></td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_2'><span class='day'>02</span></td><td class='row_2 col_1 mon day_3'><span class='day'>03</span></td><td class='row_2 col_2 tue day_4'><span class='day'>04</span></td><td class='row_2 col_3 wed day_5'><span class='day'>05</span></td><td class='row_2 col_4 thu day_6'><span class='day'>06</span></td><td class='row_2 col_5 fri day_7'><span class='day'>07</span></td><td class='row_2 col_6 sat day_8'><span class='day'>08</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_9'><span class='day'>09</span></td><td class='row_3 col_1 mon day_10'><span class='day'>10</span></td><td class='row_3 col_2 tue day_11'><span class='day'>11</span></td><td class='row_3 col_3 wed day_12'><span class='day'>12</span></td><td class='row_3 col_4 thu day_13'><span class='day'>13</span></td><td class='row_3 col_5 fri day_14'><span class='day'>14</span></td><td class='row_3 col_6 sat day_15'><span class='day'>15</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_16'><span class='day'>16</span></td><td class='row_4 col_1 mon day_17'><span class='day'>17</span></td><td class='row_4 col_2 tue day_18'><span class='day'>18</span></td><td class='row_4 col_3 wed day_19'><span class='day'>19</span></td><td class='row_4 col_4 thu day_20'><span class='day'>20</span></td><td class='row_4 col_5 fri day_21'><span class='day'>21</span></td><td class='row_4 col_6 sat day_22'><span class='day'>22</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_23'><span class='day'>23</span><span class='holiday_name'>天皇誕生日</span></td><td class='row_5 col_1 mon holiday day_24'><span class='day'>24</span><span class='holiday_name'>振替休日</span></td><td class='row_5 col_2 tue day_25'><span class='day'>25</span></td><td class='row_5 col_3 wed day_26'><span class='day'>26</span></td><td class='row_5 col_4 thu day_27'><span class='day'>27</span></td><td class='row_5 col_5 fri day_28'><span class='day'>28</span></td><td class='row_5 col_6 sat day_29'><span class='day'>29</span></td></tr><tr class='row_5'><td class='row_6 col_0 sun holiday day_30'><span class='day'>30</span></td><td class='row_6 col_1 mon day_31'><span class='day'>31</span></td></tr></table>"
193
+ end
194
+ it { Jpcalendar.calendar(Date.new(2012, 12, 31)).should eql @expect_str}
195
+ end
196
+
197
+ context "対象月:2008年9月 (タグ指定なし)" do
198
+ before do
199
+ @expect_str="<table><tr class='header'><th class='header header_0 sun'>日</th><th class='header header_1 mon'>月</th><th class='header header_2 tue'>火</th><th class='header header_3 wed'>水</th><th class='header header_4 thu'>木</th><th class='header header_5 fri'>金</th><th class='header header_6 sat'>土</th></tr><tr class='row_0'><td><span class='day'></span></td><td class='row_1 col_1 mon day_1'><span class='day'>01</span></td><td class='row_1 col_2 tue day_2'><span class='day'>02</span></td><td class='row_1 col_3 wed day_3'><span class='day'>03</span></td><td class='row_1 col_4 thu day_4'><span class='day'>04</span></td><td class='row_1 col_5 fri day_5'><span class='day'>05</span></td><td class='row_1 col_6 sat day_6'><span class='day'>06</span></td></tr><tr class='row_1'><td class='row_2 col_0 sun holiday day_7'><span class='day'>07</span></td><td class='row_2 col_1 mon day_8'><span class='day'>08</span></td><td class='row_2 col_2 tue day_9'><span class='day'>09</span></td><td class='row_2 col_3 wed day_10'><span class='day'>10</span></td><td class='row_2 col_4 thu day_11'><span class='day'>11</span></td><td class='row_2 col_5 fri day_12'><span class='day'>12</span></td><td class='row_2 col_6 sat day_13'><span class='day'>13</span></td></tr><tr class='row_2'><td class='row_3 col_0 sun holiday day_14'><span class='day'>14</span></td><td class='row_3 col_1 mon holiday day_15'><span class='day'>15</span><span class='holiday_name'>敬老の日</span></td><td class='row_3 col_2 tue day_16'><span class='day'>16</span></td><td class='row_3 col_3 wed day_17'><span class='day'>17</span></td><td class='row_3 col_4 thu day_18'><span class='day'>18</span></td><td class='row_3 col_5 fri day_19'><span class='day'>19</span></td><td class='row_3 col_6 sat day_20'><span class='day'>20</span></td></tr><tr class='row_3'><td class='row_4 col_0 sun holiday day_21'><span class='day'>21</span></td><td class='row_4 col_1 mon day_22'><span class='day'>22</span></td><td class='row_4 col_2 tue holiday day_23'><span class='day'>23</span><span class='holiday_name'>秋分の日</span></td><td class='row_4 col_3 wed day_24'><span class='day'>24</span></td><td class='row_4 col_4 thu day_25'><span class='day'>25</span></td><td class='row_4 col_5 fri day_26'><span class='day'>26</span></td><td class='row_4 col_6 sat day_27'><span class='day'>27</span></td></tr><tr class='row_4'><td class='row_5 col_0 sun holiday day_28'><span class='day'>28</span></td><td class='row_5 col_1 mon day_29'><span class='day'>29</span></td><td class='row_5 col_2 tue day_30'><span class='day'>30</span></td></tr></table>"
200
+ end
201
+ it { Jpcalendar.calendar(Date.new(2008, 9, 1)).should eql @expect_str}
202
+ end
203
+
204
+ context "対象月:2008年9月 (タグ指定あり)" do
205
+ before do
206
+ @options = {wrap_tag: :section, row_tag: :ul, header_cell_tag: :li, body_cell_tag: :li}
207
+ @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 class='row_1 col_1 mon day_1'><span class='day'>01</span></li><li class='row_1 col_2 tue day_2'><span class='day'>02</span></li><li class='row_1 col_3 wed day_3'><span class='day'>03</span></li><li class='row_1 col_4 thu day_4'><span class='day'>04</span></li><li class='row_1 col_5 fri day_5'><span class='day'>05</span></li><li class='row_1 col_6 sat day_6'><span class='day'>06</span></li></ul><ul class='row_1'><li class='row_2 col_0 sun holiday day_7'><span class='day'>07</span></li><li class='row_2 col_1 mon day_8'><span class='day'>08</span></li><li class='row_2 col_2 tue day_9'><span class='day'>09</span></li><li class='row_2 col_3 wed day_10'><span class='day'>10</span></li><li class='row_2 col_4 thu day_11'><span class='day'>11</span></li><li class='row_2 col_5 fri day_12'><span class='day'>12</span></li><li class='row_2 col_6 sat day_13'><span class='day'>13</span></li></ul><ul class='row_2'><li class='row_3 col_0 sun holiday day_14'><span class='day'>14</span></li><li class='row_3 col_1 mon holiday day_15'><span class='day'>15</span><span class='holiday_name'>敬老の日</span></li><li class='row_3 col_2 tue day_16'><span class='day'>16</span></li><li class='row_3 col_3 wed day_17'><span class='day'>17</span></li><li class='row_3 col_4 thu day_18'><span class='day'>18</span></li><li class='row_3 col_5 fri day_19'><span class='day'>19</span></li><li class='row_3 col_6 sat day_20'><span class='day'>20</span></li></ul><ul class='row_3'><li class='row_4 col_0 sun holiday day_21'><span class='day'>21</span></li><li class='row_4 col_1 mon day_22'><span class='day'>22</span></li><li class='row_4 col_2 tue holiday day_23'><span class='day'>23</span><span class='holiday_name'>秋分の日</span></li><li class='row_4 col_3 wed day_24'><span class='day'>24</span></li><li class='row_4 col_4 thu day_25'><span class='day'>25</span></li><li class='row_4 col_5 fri day_26'><span class='day'>26</span></li><li class='row_4 col_6 sat day_27'><span class='day'>27</span></li></ul><ul class='row_4'><li class='row_5 col_0 sun holiday day_28'><span class='day'>28</span></li><li class='row_5 col_1 mon day_29'><span class='day'>29</span></li><li class='row_5 col_2 tue day_30'><span class='day'>30</span></li></ul></section>"
208
+ end
209
+ it { Jpcalendar.calendar(Date.new(2008, 9, 1), @options).should eql @expect_str }
210
+ end
211
+
212
+ context "対象月:2008年9月 (スペース詰め)" do
213
+ before do
214
+ @options = {padding: " ",wrap_tag: :section, row_tag: :ul, header_cell_tag: :li, body_cell_tag: :li}
215
+ @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'>&nbsp;1</span><span class='holiday_name'>元日</span></li><li class='row_1 col_3 wed day_2'><span class='day'>&nbsp;2</span></li><li class='row_1 col_4 thu day_3'><span class='day'>&nbsp;3</span></li><li class='row_1 col_5 fri day_4'><span class='day'>&nbsp;4</span></li><li class='row_1 col_6 sat day_5'><span class='day'>&nbsp;5</span></li></ul><ul class='row_1'><li class='row_2 col_0 sun holiday day_6'><span class='day'>&nbsp;6</span></li><li class='row_2 col_1 mon day_7'><span class='day'>&nbsp;7</span></li><li id='today' class='row_2 col_2 tue day_8'><span class='day'>&nbsp;8</span></li><li class='row_2 col_3 wed day_9'><span class='day'>&nbsp;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
+ end
217
+
218
+ it { Jpcalendar.calendar(Date.new(2013, 1, 20), @options).should eql @expect_str }
219
+ end
220
+
221
+
222
+ context "対象月:2008年9月 (nbsp詰め)" do
223
+ before do
224
+ @options = {padding: "&nbsp;",wrap_tag: :section, row_tag: :ul, header_cell_tag: :li, body_cell_tag: :li}
225
+ @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'>&nbsp;1</span><span class='holiday_name'>元日</span></li><li class='row_1 col_3 wed day_2'><span class='day'>&nbsp;2</span></li><li class='row_1 col_4 thu day_3'><span class='day'>&nbsp;3</span></li><li class='row_1 col_5 fri day_4'><span class='day'>&nbsp;4</span></li><li class='row_1 col_6 sat day_5'><span class='day'>&nbsp;5</span></li></ul><ul class='row_1'><li class='row_2 col_0 sun holiday day_6'><span class='day'>&nbsp;6</span></li><li class='row_2 col_1 mon day_7'><span class='day'>&nbsp;7</span></li><li id='today' class='row_2 col_2 tue day_8'><span class='day'>&nbsp;8</span></li><li class='row_2 col_3 wed day_9'><span class='day'>&nbsp;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>"
226
+ end
227
+
228
+ it { Jpcalendar.calendar(Date.new(2013, 1, 20), @options).should eql @expect_str }
229
+ end
230
+ end
231
+ #}}}
232
+ end