Class: AutomaticCalendar
- Inherits:
-
Object
- Object
- AutomaticCalendar
- Defined in:
- lib/helpers/default-helpers.rb
Instance Attribute Summary collapse
-
#day_pagename(date = Time.now) ⇒ Object
readonly
Returns the value of attribute day_pagename.
-
#month_pagename(month = Time.now.month) ⇒ Object
readonly
Returns the value of attribute month_pagename.
Instance Method Summary collapse
- #calendar_for(month) ⇒ Object
-
#initialize(wiki, month_pagename = '%Y %b', day_pagename = '%Y %b %d', author = "AutomaticCalendar") ⇒ AutomaticCalendar
constructor
A new instance of AutomaticCalendar.
- #render_coming_year ⇒ Object
- #render_month(month) ⇒ Object
- #time_for(month, day = 1) ⇒ Object
Constructor Details
#initialize(wiki, month_pagename = '%Y %b', day_pagename = '%Y %b %d', author = "AutomaticCalendar") ⇒ AutomaticCalendar
Returns a new instance of AutomaticCalendar.
273 274 275 276 277 |
# File 'lib/helpers/default-helpers.rb', line 273 def initialize( wiki, month_pagename = '%Y %b', day_pagename = '%Y %b %d', = "AutomaticCalendar" ) @wiki, @month_pagename, @day_pagename, @author = wiki, month_pagename, day_pagename, render_coming_year @wiki.watch_for(:month) { render_coming_year } end |
Instance Attribute Details
#day_pagename(date = Time.now) ⇒ Object (readonly)
Returns the value of attribute day_pagename.
271 272 273 |
# File 'lib/helpers/default-helpers.rb', line 271 def day_pagename @day_pagename end |
#month_pagename(month = Time.now.month) ⇒ Object (readonly)
Returns the value of attribute month_pagename.
271 272 273 |
# File 'lib/helpers/default-helpers.rb', line 271 def month_pagename @month_pagename end |
Instance Method Details
#calendar_for(month) ⇒ Object
287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 |
# File 'lib/helpers/default-helpers.rb', line 287 def calendar_for( month ) content = "<div class='calendar'>\n\n" content << "|_. Su |_. Mo |_. Tu |_. We |_. Th |_. Fr |_. Sa |\n" 1.upto( time_for( month, 1 ).wday ) { content << "| . " } day = nil 1.upto( 31 ) do |day_no| day = time_for( month, day_no ) break if day.month > month content << "| [[ #{day_no} => #{day_pagename( day )} ]] " content << "|\n" if day.wday == 6 end day.wday.upto( 5 ) { content << "| . " } content << "|\n" content << "\n\n#{month_pagename( month-1 )} #{month_pagename( month+1 )} \n" content << "\n</div>" end |
#render_coming_year ⇒ Object
279 280 281 |
# File 'lib/helpers/default-helpers.rb', line 279 def render_coming_year Time.now.month.upto( Time.now.month+12 ) { |m| render_month( m ) } end |
#render_month(month) ⇒ Object
283 284 285 |
# File 'lib/helpers/default-helpers.rb', line 283 def render_month( month ) @wiki.revise( month_pagename( month ), calendar_for( month ) , @author ) unless @wiki.exists?( month_pagename( month ) ) end |
#time_for(month, day = 1) ⇒ Object
304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 |
# File 'lib/helpers/default-helpers.rb', line 304 def time_for( month, day = 1 ) year = Time.now.year if month > 12 year +=1 month -= 12 elsif month < 1 year -= 1 month = month + 12 end if day > 31 month += 1 day -= 31 end Time.local( year, month, day, 8, 0 ) end |