calendar_helper 0.2.4 → 0.2.5

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.
@@ -28,4 +28,3 @@
28
28
 
29
29
  * Converted to hoe and a rubygem
30
30
  * Renamed to README.txt for Hoe compatibility
31
-
@@ -1,10 +1,23 @@
1
1
  = CalendarHelper
2
2
 
3
+ {<img src="https://secure.travis-ci.org/topfunky/calendar_helper.png?branch=master" alt="Build Status" />}[http://travis-ci.org/topfunky/calendar_helper]
4
+
3
5
  == DESCRIPTION:
4
6
 
5
- A simple helper for creating an HTML calendar. The "calendar" method will be automatically available to your Rails view templates, or can be used with Sinatra or other webapps.
7
+ A simple helper for creating an HTML calendar. The "calendar" method will be
8
+ automatically available to your Rails view templates, or can be used with
9
+ Sinatra or other webapps.
10
+
11
+ Some example stylesheets are provided via the Rails asset pipeline. Add to
12
+ your main stylesheet with one of the following:
6
13
 
7
- There is also a Rails generator that copies some stylesheets for use alone or alongside existing stylesheets.
14
+ /*
15
+ *= require 'calendar_styles/grey'
16
+ * OR
17
+ *= require 'calendar_styles/red'
18
+ * OR
19
+ *= require 'calendar_styles/blue'
20
+ */
8
21
 
9
22
  == SYNOPSIS:
10
23
 
@@ -41,6 +54,14 @@ In Sinatra, include the CalendarHelper module in your helpers:
41
54
  include CalendarHelper
42
55
  end
43
56
 
57
+
58
+ == Accessibility & 508 Compliance:
59
+
60
+ * The table tag has a summary attribute (overridable).
61
+ * Each th has an id.
62
+ * Each td as a headers attribute, containing the element id of the appropriate th.
63
+
64
+
44
65
  == AUTHORS:
45
66
 
46
67
  Jeremy Voorhis -- http://jvoorhis.com
@@ -54,6 +75,7 @@ Test suite and conversion to a Rails plugin
54
75
  * Jarkko Laine http://jlaine.net/
55
76
  * Tom Armitage http://infovore.org
56
77
  * Bryan Larsen http://larsen.st
78
+ * Eric Anderson http://saveyourcall.com
57
79
 
58
80
  == USAGE:
59
81
 
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  require 'date'
2
3
 
3
4
  # CalendarHelper allows you to draw a databound calendar with fine-grained CSS formatting
@@ -9,35 +10,36 @@ module CalendarHelper
9
10
  # calendar (which can then be customized using CSS) for a given month and year.
10
11
  # However, this may be customized in a variety of ways -- changing the default CSS
11
12
  # classes, generating the individual day entries yourself, and so on.
12
- #
13
+ #
13
14
  # The following options are required:
14
15
  # :year # The year number to show the calendar for.
15
16
  # :month # The month number to show the calendar for.
16
- #
17
+ #
17
18
  # The following are optional, available for customizing the default behaviour:
19
+ # :table_id => "calendar-2008-08" # The id for the <table> tag.
18
20
  # :table_class => "calendar" # The class for the <table> tag.
21
+ # :summary => "Calendar for August 2008" # The summary attribute for the <table> tag. Required for 508 compliance.
19
22
  # :month_name_class => "monthName" # The class for the name of the month, at the top of the table.
20
- # :other_month_class => "otherMonth" # Not implemented yet.
23
+ # :other_month_class => "otherMonth" # The class for individual day cells for previous and next months.
21
24
  # :day_name_class => "dayName" # The class is for the names of the weekdays, at the top.
22
25
  # :day_class => "day" # The class for the individual day number cells.
23
26
  # This may or may not be used if you specify a block (see below).
24
- # :abbrev => (0..2) # This option specifies how the day names should be abbreviated.
25
- # Use (0..2) for the first three letters, (0..0) for the first, and
26
- # (0..-1) for the entire name.
27
+ # :abbrev => true # This option specifies whether day names should be displayed abbrevidated (true)
28
+ # or in full (false)
27
29
  # :first_day_of_week => 0 # Renders calendar starting on Sunday. Use 1 for Monday, and so on.
28
30
  # :accessible => true # Turns on accessibility mode. This suffixes dates within the
29
- # # calendar that are outside the range defined in the <caption> with
31
+ # # calendar that are outside the range defined in the <caption> with
30
32
  # # <span class="hidden"> MonthName</span>
31
33
  # # Defaults to false.
32
- # # You'll need to define an appropriate style in order to make this disappear.
34
+ # # You'll need to define an appropriate style in order to make this disappear.
33
35
  # # Choose your own method of hiding content appropriately.
34
36
  #
35
- # :show_today => false # Highlights today on the calendar using the CSS class 'today'.
37
+ # :show_today => false # Highlights today on the calendar using the CSS class 'today'.
36
38
  # # Defaults to true.
37
39
  # :previous_month_text => nil # Displayed left of the month name if set
38
40
  # :next_month_text => nil # Displayed right of the month name if set
39
41
  # :month_header => false # If you use false, the current month header will disappear.
40
- # :calendar_title => Date::MONTHNAMES[options[:month]] # Pass in a custom title for the calendar. Defaults to month name
42
+ # :calendar_title => month_names[options[:month]] # Pass in a custom title for the calendar. Defaults to month name
41
43
  #
42
44
  # For more customization, you can pass a code block to this method, that will get one argument, a Date object,
43
45
  # and return a values for the individual table cells. The block can return an array, [cell_text, cell_attrs],
@@ -45,7 +47,7 @@ module CalendarHelper
45
47
  # (this can be used to change the <td>'s class for customization with CSS).
46
48
  # This block can also return the cell_text only, in which case the <td>'s class defaults to the value given in
47
49
  # +:day_class+. If the block returns nil, the default options are used.
48
- #
50
+ #
49
51
  # Example usage:
50
52
  # calendar(:year => 2005, :month => 6) # This generates the simplest possible calendar.
51
53
  # calendar({:year => 2005, :month => 6, :table_class => "calendar_helper"}) # This generates a calendar, as
@@ -62,30 +64,39 @@ module CalendarHelper
62
64
  # end
63
65
  # end
64
66
  #
65
- # An additional 'weekend' class is applied to weekend days.
67
+ # An additional 'weekend' class is applied to weekend days.
66
68
  #
67
69
  # For consistency with the themes provided in the calendar_styles generator, use "specialDay" as the CSS class for marked days.
68
- #
70
+ #
71
+ # Accessibility & 508 Compliance:
72
+ # The table tag has a summary attribute (overridable).
73
+ # Each th has an id.
74
+ # Each td has a headers attribute, containing the element id of the appropriate th.
75
+ #
69
76
  def calendar(options = {}, &block)
70
77
  raise(ArgumentError, "No year given") unless options.has_key?(:year)
71
78
  raise(ArgumentError, "No month given") unless options.has_key?(:month)
72
79
 
73
80
  block ||= Proc.new {|d| nil}
74
81
 
82
+ month_names = (!defined?(I18n) || I18n.t("date.month_names").include?("missing")) ? Date::MONTHNAMES.dup : I18n.t("date.month_names")
83
+
75
84
  defaults = {
85
+ :table_id => "calendar-#{options[:year]}-#{"%02d" % options[:month]}",
76
86
  :table_class => 'calendar',
77
87
  :month_name_class => 'monthName',
78
88
  :other_month_class => 'otherMonth',
79
89
  :day_name_class => 'dayName',
80
90
  :day_class => 'day',
81
- :abbrev => (0..2),
91
+ :abbrev => true,
82
92
  :first_day_of_week => 0,
83
93
  :accessible => false,
84
94
  :show_today => true,
85
95
  :previous_month_text => nil,
86
96
  :next_month_text => nil,
87
97
  :month_header => true,
88
- :calendar_title => Date::MONTHNAMES[options[:month]]
98
+ :calendar_title => month_names[options[:month]],
99
+ :summary => "Calendar for #{month_names[options[:month]]} #{options[:year]}"
89
100
  }
90
101
  options = defaults.merge options
91
102
 
@@ -94,16 +105,18 @@ module CalendarHelper
94
105
 
95
106
  first_weekday = first_day_of_week(options[:first_day_of_week])
96
107
  last_weekday = last_day_of_week(options[:first_day_of_week])
97
-
98
- day_names = Date::DAYNAMES.dup
108
+
109
+ day_names = (!defined?(I18n) || I18n.t("date.day_names").include?("missing")) ? Date::DAYNAMES : I18n.t("date.day_names")
110
+ abbr_day_names = (!defined?(I18n) || I18n.t("date.abbr_day_names").include?("missing")) ? Date::ABBR_DAYNAMES : I18n.t("date.abbr_day_names")
111
+ week_days = (0..6).to_a
99
112
  first_weekday.times do
100
- day_names.push(day_names.shift)
113
+ week_days.push(week_days.shift)
101
114
  end
102
115
 
103
116
  # TODO Use some kind of builder instead of straight HTML
104
- cal = %(<table class="#{options[:table_class]}" border="0" cellspacing="0" cellpadding="0">)
117
+ cal = %(<table id="#{options[:table_id]}" class="#{options[:table_class]}" border="0" cellspacing="0" cellpadding="0" summary="#{options[:summary]}">)
105
118
  cal << %(<thead>)
106
-
119
+
107
120
  if (options[:month_header])
108
121
  cal << %(<tr>)
109
122
  if options[:previous_month_text] or options[:next_month_text]
@@ -116,56 +129,51 @@ module CalendarHelper
116
129
  cal << %(<th colspan="2">#{options[:next_month_text]}</th>) if options[:next_month_text]
117
130
  cal << %(</tr>)
118
131
  end
119
-
132
+
120
133
  cal << %(<tr class="#{options[:day_name_class]}">)
121
-
122
- day_names.each do |d|
123
- unless d[options[:abbrev]].eql? d
124
- cal << "<th scope='col'><abbr title='#{d}'>#{d[options[:abbrev]]}</abbr></th>"
125
- else
126
- cal << "<th scope='col'>#{d[options[:abbrev]]}</th>"
127
- end
134
+
135
+ week_days.each do |wday|
136
+ cal << %(<th id="#{th_id(Date::DAYNAMES[wday], options[:table_id])}" scope="col">)
137
+ cal << (options[:abbrev] ? %(<abbr title="#{day_names[wday]}">#{abbr_day_names[wday]}</abbr>) : day_names[wday])
138
+ cal << %(</th>)
128
139
  end
140
+
129
141
  cal << "</tr></thead><tbody><tr>"
142
+
143
+ # previous month
130
144
  beginning_of_week(first, first_weekday).upto(first - 1) do |d|
131
- cal << %(<td class="#{options[:other_month_class]})
132
- cal << " weekendDay" if weekend?(d)
133
- if options[:accessible]
134
- cal << %(">#{d.day}<span class="hidden"> #{Date::MONTHNAMES[d.month]}</span></td>)
135
- else
136
- cal << %(">#{d.day}</td>)
137
- end
145
+ cal << generate_other_month_cell(d, options)
138
146
  end unless first.wday == first_weekday
147
+
139
148
  first.upto(last) do |cur|
140
149
  cell_text, cell_attrs = block.call(cur)
141
150
  cell_text ||= cur.mday
142
151
  cell_attrs ||= {}
152
+ cell_attrs[:headers] = th_id(cur, options[:table_id])
143
153
  cell_attrs[:class] ||= options[:day_class]
144
154
  cell_attrs[:class] += " weekendDay" if [0, 6].include?(cur.wday)
145
155
  today = (Time.respond_to?(:zone) && !(zone = Time.zone).nil? ? zone.now.to_date : Date.today)
146
156
  cell_attrs[:class] += " today" if (cur == today) and options[:show_today]
147
- cell_attrs = cell_attrs.map {|k, v| %(#{k}="#{v}") }.join(" ")
148
- cal << "<td #{cell_attrs}>#{cell_text}</td>"
157
+
158
+ cal << generate_cell(cell_text, cell_attrs)
149
159
  cal << "</tr><tr>" if cur.wday == last_weekday
150
160
  end
161
+
162
+ # next month
151
163
  (last + 1).upto(beginning_of_week(last + 7, first_weekday) - 1) do |d|
152
- cal << %(<td class="#{options[:other_month_class]})
153
- cal << " weekendDay" if weekend?(d)
154
- if options[:accessible]
155
- cal << %(">#{d.day}<span class='hidden'> #{Date::MONTHNAMES[d.mon]}</span></td>)
156
- else
157
- cal << %(">#{d.day}</td>)
158
- end
164
+ cal << generate_other_month_cell(d, options)
159
165
  end unless last.wday == last_weekday
166
+
160
167
  cal << "</tr></tbody></table>"
168
+ cal.respond_to?(:html_safe) ? cal.html_safe : cal
161
169
  end
162
-
170
+
163
171
  private
164
-
172
+
165
173
  def first_day_of_week(day)
166
174
  day
167
175
  end
168
-
176
+
169
177
  def last_day_of_week(day)
170
178
  if day > 0
171
179
  day - 1
@@ -173,7 +181,7 @@ module CalendarHelper
173
181
  6
174
182
  end
175
183
  end
176
-
184
+
177
185
  def days_between(first, second)
178
186
  if first > second
179
187
  second + (7 - first)
@@ -181,14 +189,48 @@ module CalendarHelper
181
189
  second - first
182
190
  end
183
191
  end
184
-
192
+
185
193
  def beginning_of_week(date, start = 1)
186
194
  days_to_beg = days_between(start, date.wday)
187
195
  date - days_to_beg
188
196
  end
189
-
197
+
198
+ def generate_cell(cell_text, cell_attrs)
199
+ cell_attrs = cell_attrs.map {|k, v| %(#{k}="#{v}") }.join(" ")
200
+ "<td #{cell_attrs}>#{cell_text}</td>"
201
+ end
202
+
203
+ def generate_other_month_cell(date, options)
204
+ cell_attrs = {}
205
+ cell_attrs[:headers] = th_id(date, options[:table_id])
206
+ cell_attrs[:class] = options[:other_month_class]
207
+ cell_attrs[:class] += " weekendDay" if weekend?(date)
208
+
209
+ cell_text = date.day
210
+ if options[:accessible]
211
+ cell_text += %(<span class="hidden"> #{month_names[date.month]}</span>)
212
+ end
213
+
214
+ generate_cell(date.day, cell_attrs)
215
+ end
216
+
217
+ # Calculates id for th element.
218
+ # derived from calendar_id and dow.
219
+ #
220
+ # Params:
221
+ # `day` can be either Date or DOW('Sunday', 'Monday')
222
+ def th_id(day, calendar_id)
223
+ return th_id(Date::DAYNAMES[day.wday], calendar_id) if day.is_a?(Date)
224
+ "#{calendar_id}-#{day[0..2].downcase}"
225
+ end
226
+
190
227
  def weekend?(date)
191
228
  [0, 6].include?(date.wday)
192
229
  end
193
-
230
+
231
+ class Engine < Rails::Engine # :nodoc:
232
+ ActiveSupport.on_load(:action_view) do
233
+ include CalendarHelper
234
+ end
235
+ end if defined? Rails::Engine
194
236
  end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  require 'rubygems'
2
3
  require 'test/unit'
3
4
  require 'fileutils'
@@ -42,11 +43,11 @@ class CalendarHelperTest < Test::Unit::TestCase
42
43
  end
43
44
 
44
45
  def test_default_css_classes
45
- # :other_month_class is not implemented yet
46
46
  { :table_class => "calendar",
47
47
  :month_name_class => "monthName",
48
48
  :day_name_class => "dayName",
49
- :day_class => "day"
49
+ :day_class => "day",
50
+ :other_month_class => "otherMonth"
50
51
  }.each do |key, value|
51
52
  assert_correct_css_class_for_default value
52
53
  end
@@ -54,21 +55,19 @@ class CalendarHelperTest < Test::Unit::TestCase
54
55
 
55
56
  def test_custom_css_classes
56
57
  # Uses the key name as the CSS class name
57
- # :other_month_class is not implemented yet
58
- [:table_class, :month_name_class, :day_name_class, :day_class].each do |key|
58
+ [:table_class, :month_name_class, :day_name_class, :day_class, :other_month_class].each do |key|
59
59
  assert_correct_css_class_for_key key.to_s, key
60
60
  end
61
61
  end
62
62
 
63
63
  def test_abbrev
64
- assert_match %r{>Mon<}, calendar_with_defaults(:abbrev => (0..2))
65
- assert_match %r{>M<}, calendar_with_defaults(:abbrev => (0..0))
66
- assert_match %r{>Monday<}, calendar_with_defaults(:abbrev => (0..-1))
64
+ assert_match %r{>Mon<}, calendar_with_defaults()
65
+ assert_match %r{>Monday<}, calendar_with_defaults(:abbrev => false)
67
66
  end
68
67
 
69
68
  def test_block
70
69
  # Even days are special
71
- assert_match %r{class="special_day">2<}, calendar(:year => 2006, :month => 8) { |d|
70
+ assert_match %r{class="special_day"[^>]*>2<}, calendar(:year => 2006, :month => 8) { |d|
72
71
  if d.mday % 2 == 0
73
72
  [d.mday, {:class => 'special_day'}]
74
73
  end
@@ -76,15 +75,15 @@ class CalendarHelperTest < Test::Unit::TestCase
76
75
  end
77
76
 
78
77
  def test_first_day_of_week
79
- assert_match %r{<tr class="dayName">\s*<th scope='col'><abbr title='Sunday'>Sun}, calendar_with_defaults
78
+ assert_match %r{<tr class="dayName">\s*<th [^>]*scope="col"><abbr title="Sunday">Sun}, calendar_with_defaults
80
79
  # testing that if the abbrev and contracted version are the same, there should be no abbreviation.
81
- assert_match %r{<tr class="dayName">\s*<th scope='col'>Sunday}, calendar_with_defaults(:abbrev => (0..8))
82
- assert_match %r{<tr class="dayName">\s*<th scope='col'><abbr title='Monday'>Mon}, calendar_with_defaults(:first_day_of_week => 1)
80
+ assert_match %r{<tr class="dayName">\s*<th [^>]*scope="col">Sunday}, calendar_with_defaults(:abbrev => false)
81
+ assert_match %r{<tr class="dayName">\s*<th [^>]*scope="col"><abbr title="Monday">Mon}, calendar_with_defaults(:first_day_of_week => 1)
83
82
  end
84
83
 
85
84
  def test_today_is_in_calendar
86
85
  todays_day = Date.today.day
87
- assert_match %r{class="day.+today">#{todays_day}<}, calendar_for_this_month
86
+ assert_match %r{class="day.+today"[^>]*>#{todays_day}<}, calendar_for_this_month
88
87
  end
89
88
 
90
89
  def test_should_not_show_today
@@ -100,6 +99,67 @@ class CalendarHelperTest < Test::Unit::TestCase
100
99
  assert_match %r{<thead><tr>.*</tr><tr.*</tr></thead>}, html
101
100
  end
102
101
 
102
+ def test_table_summary_defaults_to_calendar_period
103
+ html = calendar_with_defaults(:year => 1967, :month => 4)
104
+ assert_match %r{<table [^>]*summary="Calendar for April 1967"}, html
105
+ end
106
+
107
+ def test_custom_summary_attribute
108
+ html = calendar_with_defaults(:summary => 'TEST SUMMARY')
109
+ assert_match %r{<table [^>]*summary="TEST SUMMARY">}, html
110
+ end
111
+
112
+ def test_table_id_defaults_calendar_year_single_digit_month
113
+ html = calendar_with_defaults(:year => 1967, :month => 4)
114
+ assert_match %r{<table [^>]*id="calendar-1967-04"}, html
115
+ end
116
+
117
+ def test_table_id_defaults_calendar_year_double_digit_month
118
+ html = calendar_with_defaults(:year => 1967, :month => 12)
119
+ assert_match %r{<table [^>]*id="calendar-1967-12"}, html
120
+ end
121
+
122
+ def test_custom_table_id
123
+ html = calendar_with_defaults(:year => 1967, :month => 4, :table_id => 'test-the-id')
124
+ assert_match %r{<table [^>]*id="test-the-id"}, html
125
+ end
126
+
127
+ def test_th_id_defaults_calendar_year_month_dow
128
+ html = calendar_with_defaults(:year => 1967, :month => 4)
129
+ assert_match %r{<tr class=\"dayName\"><th [^>]*id=\"calendar-1967-04-sun\"}, html
130
+ end
131
+
132
+ def test_each_td_is_associated_with_appriopriate_th
133
+ html = calendar_with_defaults(:year => 2011, :month => 8)
134
+ assert_match %r{<td [^>]*headers=\"calendar-2011-08-sun\"[^>]*>31</td>}, html
135
+ assert_match %r{<td [^>]*headers=\"calendar-2011-08-mon\"[^>]*>1</td>}, html
136
+ end
137
+
138
+ def test_non_english_language
139
+ # mock I18n.t to simulate internationalized setting
140
+ CalendarHelper.const_set :I18n, Class.new {
141
+ def self.t(key)
142
+ if key == "date.day_names"
143
+ ["Neděle", "Pondělí", "Úterý", "Středa", "Čtvrtek", "Pátek", "Sobota"]
144
+ elsif key == "date.abbr_day_names"
145
+ ["Ne", "Po", "Út", "St", "Čt", "Pá", "So"]
146
+ elsif key == "date.month_names"
147
+ ["", "Leden", "Únor", "Březen", "Duben", "Květen", "Červen", "Červenec", "Srpen", "Září", "Říjen", "Listopad", "Prosinec"]
148
+ end
149
+ end
150
+ }
151
+
152
+ html = calendar_with_defaults(:year => 2012, :month => 4)
153
+
154
+ # unmock I18n.t again
155
+ CalendarHelper.send(:remove_const, :I18n)
156
+
157
+ # make sure all the labels are in english and don't use i18n abbreviation (Neděle)
158
+ assert_no_match %r(calendar-2012-04-ned), html
159
+ assert_equal 6, html.scan("calendar-2012-04-sun").size # 6 = 5 + header
160
+ end
161
+
162
+
103
163
  private
104
164
 
105
165
  def assert_correct_css_class_for_key(css_class, key)
metadata CHANGED
@@ -1,99 +1,125 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: calendar_helper
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.5
4
5
  prerelease:
5
- version: 0.2.4
6
6
  platform: ruby
7
- authors:
7
+ authors:
8
8
  - Geoffrey Grosenbach
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2011-04-04 00:00:00 -07:00
14
- default_executable:
15
- dependencies:
16
- - !ruby/object:Gem::Dependency
12
+ date: 2013-02-26 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
17
15
  name: open4
18
- prerelease: false
19
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
20
17
  none: false
21
- requirements:
22
- - - ">="
23
- - !ruby/object:Gem::Version
24
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
25
22
  type: :runtime
26
- version_requirements: *id001
27
- - !ruby/object:Gem::Dependency
28
- name: hoe
29
23
  prerelease: false
30
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rake
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rdoc
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '3.10'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
31
57
  none: false
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: 2.9.4
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '3.10'
62
+ - !ruby/object:Gem::Dependency
63
+ name: flexmock
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
36
70
  type: :development
37
- version_requirements: *id002
38
- description: |-
39
- A simple helper for creating an HTML calendar. The "calendar" method will be automatically available to your Rails view templates, or can be used with Sinatra or other webapps.
40
-
41
- There is also a Rails generator that copies some stylesheets for use alone or alongside existing stylesheets.
42
- email:
43
- - boss@topfunky.com
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ description: ! " A simple helper for creating an HTML calendar. The \"calendar\"
79
+ method will\n be automatically available to your Rails view templates, or can
80
+ be used\n with Sinatra or other webapps.\n\n There is also a Rails generator
81
+ that copies some stylesheets for use alone\n or alongside existing stylesheets.\n"
82
+ email: boss@topfunky.com
44
83
  executables: []
45
-
46
84
  extensions: []
47
-
48
- extra_rdoc_files:
49
- - History.txt
50
- - Manifest.txt
51
- - README.txt
52
- files:
53
- - History.txt
85
+ extra_rdoc_files:
86
+ - README.rdoc
87
+ - History.rdoc
88
+ files:
54
89
  - MIT-LICENSE
55
- - Manifest.txt
56
- - README.txt
57
- - Rakefile
58
- - generators/calendar_styles/calendar_styles_generator.rb
59
- - generators/calendar_styles/templates/blue/style.css
60
- - generators/calendar_styles/templates/grey/style.css
61
- - generators/calendar_styles/templates/red/style.css
90
+ - README.rdoc
91
+ - History.rdoc
62
92
  - init.rb
63
93
  - lib/calendar_helper.rb
94
+ - app/assets/stylesheets/calendar_styles/blue.css
95
+ - app/assets/stylesheets/calendar_styles/grey.css
96
+ - app/assets/stylesheets/calendar_styles/red.css
64
97
  - test/test_calendar_helper.rb
65
- - .gemtest
66
- has_rdoc: true
67
98
  homepage:
68
99
  licenses: []
69
-
70
100
  post_install_message:
71
- rdoc_options:
101
+ rdoc_options:
72
102
  - --main
73
- - README.txt
74
- require_paths:
103
+ - README.rdoc
104
+ require_paths:
75
105
  - lib
76
- required_ruby_version: !ruby/object:Gem::Requirement
106
+ required_ruby_version: !ruby/object:Gem::Requirement
77
107
  none: false
78
- requirements:
79
- - - ">="
80
- - !ruby/object:Gem::Version
81
- hash: -4579174070457573062
82
- segments:
83
- - 0
84
- version: "0"
85
- required_rubygems_version: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ! '>='
110
+ - !ruby/object:Gem::Version
111
+ version: '0'
112
+ required_rubygems_version: !ruby/object:Gem::Requirement
86
113
  none: false
87
- requirements:
88
- - - ">="
89
- - !ruby/object:Gem::Version
90
- version: "0"
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
91
118
  requirements: []
92
-
93
- rubyforge_project: calendar_helper
94
- rubygems_version: 1.6.2
119
+ rubyforge_project:
120
+ rubygems_version: 1.8.23
95
121
  signing_key:
96
122
  specification_version: 3
97
123
  summary: A simple helper for creating an HTML calendar
98
- test_files:
124
+ test_files:
99
125
  - test/test_calendar_helper.rb
data/.gemtest DELETED
File without changes
@@ -1,12 +0,0 @@
1
- History.txt
2
- MIT-LICENSE
3
- Manifest.txt
4
- README.txt
5
- Rakefile
6
- generators/calendar_styles/calendar_styles_generator.rb
7
- generators/calendar_styles/templates/blue/style.css
8
- generators/calendar_styles/templates/grey/style.css
9
- generators/calendar_styles/templates/red/style.css
10
- init.rb
11
- lib/calendar_helper.rb
12
- test/test_calendar_helper.rb
data/Rakefile DELETED
@@ -1,40 +0,0 @@
1
- require 'rubygems'
2
- require 'isolate/now'
3
- require 'rake'
4
- require 'rake/rdoctask'
5
- require 'hoe'
6
- require './lib/calendar_helper.rb'
7
-
8
- Hoe.spec 'calendar_helper' do
9
- developer('Geoffrey Grosenbach', 'boss@topfunky.com')
10
-
11
- extra_deps << ['open4']
12
-
13
- # self.rubyforge_name = 'osxscreenshotx' # if different than 'osxscreenshot'
14
- end
15
-
16
-
17
- # Hoe.new('calendar_helper', CalendarHelper::VERSION) do |p|
18
- # p.rubyforge_name = 'seattlerb'
19
- # p.summary = 'Generates a configurable, CSS-tagged HTML calendar.'
20
- # p.description = "A simple method to create an HTML calendar for a single month. Can be styled with CSS. Usable with Ruby on Rails."
21
- # p.url = "http://rubyforge.org/projects/seattlerb"
22
- # p.changes = p.paragraphs_of('History.txt', 0..1).join("\n\n")
23
- # p.clean_globs = ['test/output']
24
- # end
25
-
26
- # desc "Test task (actually runs specs)"
27
- # task "test" do
28
- # system "spec --format specdoc --color spec/*_spec.rb"
29
- # end
30
-
31
- # -- Rails-specific --
32
-
33
- desc 'Generate documentation for the calendar_helper plugin.'
34
- Rake::RDocTask.new(:rdoc) do |rdoc|
35
- rdoc.rdoc_dir = 'rdoc'
36
- rdoc.title = 'CalendarHelper'
37
- rdoc.options << '--line-numbers' << '--inline-source'
38
- rdoc.rdoc_files.include('README.txt')
39
- rdoc.rdoc_files.include('lib/**/*.rb')
40
- end
@@ -1,20 +0,0 @@
1
- class CalendarStylesGenerator < Rails::Generator::Base
2
-
3
- def manifest
4
- record do |m|
5
- calendar_themes_dir = "public/stylesheets/calendar"
6
- m.directory calendar_themes_dir
7
-
8
- # Copy files
9
- %w(red blue grey).each do |dir|
10
- m.directory File.join(calendar_themes_dir, dir)
11
- m.file File.join("#{dir}/style.css"), File.join(calendar_themes_dir, "#{dir}/style.css")
12
- end
13
-
14
- # Dir.read("vendor/public/calendar_helper/generators/calendar_styles/templates").each do |dir|
15
- # m.file "orig", File.join(calendar_themes_dir, dir.name, "some_file.css")
16
- # end
17
-
18
- end
19
- end
20
- end