jpcalendar 0.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.
@@ -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