GitHub Sale: sign up for any paid plan this week and pay nothing until January 1, 2009!  [ hide ]

public
Description: A Rails plugin that is making months smarter in Ruby (and Rails).
Homepage: http://www.derekperez.com
Clone URL: git://github.com/perezd/smartmonth.git
name age message
file MIT-LICENSE Wed Aug 13 16:14:42 -0700 2008 rest of it [perezd]
file README Thu Aug 14 11:46:49 -0700 2008 added the link to our documentation site. [perezd]
file Rakefile Wed Aug 13 16:14:42 -0700 2008 rest of it [perezd]
file init.rb Wed Aug 13 16:14:42 -0700 2008 rest of it [perezd]
directory lib/ Wed Oct 01 13:05:26 -0700 2008 fixed a problem I discovered in T-Mail when T-M... [Derek Perez]
directory rdoc/ Thu Aug 14 17:34:38 -0700 2008 updated the documentation [perezd]
directory tasks/ Wed Aug 13 16:14:42 -0700 2008 rest of it [perezd]
directory test/ Thu Aug 14 17:32:30 -0700 2008 added new functionality that allows access to m... [perezd]
README
SmartMonth is a "bodysnatcher" plugin that takes boring Date month fixnums and replaces them with a rich toolkit of 
functionality. You can use SmartMonth to:

- Determine the first tuesday of any month in any year.
- Determine all of the fridays of any month in any year.
- Iterate through all the days of a month.
- Determine how many days of the month there are.
- Determine the first and last days of the month.
- And other fun date/month related things!

This is designed to be an extension of not only Time.now.month, but adds a new Month class to the ruby object model.

Keep in mind, this is 1.0, and may break things that rely on Time.now.month being a Fixnum. I've tried to fix this by 
making sure #to_i works as expected, but it may be an issue, handle with care.

Examples:

  Time.now.month.every_tuesday #=> [array of tuesdays for the current month]
  Month.april.first_wednesday #=> Date object corresponding to the first wednesday of april.
  Month.may.every_monday_and_friday #=> {:monday=>[...],:friday=>[...]}
  Month.june(2012).last_monday #=> Date object corresponding to the last monday in june 2012.
  
  # iterator:
  Month.june(2004).each do |day|
    day.to_s #=> name of day (Saturday, Sunday, etc.)
    day.to_i #=> value between 1 and the last day of the month corresponding.
  end

Check the included documentation (rdoc) or our documentation site (http://code.panoctagon.com/projects/smartmonth) 
for more info on usage!

Copyright (c) 2008 Panoctagon, inc (Derek Perez | www.derekperez.com), released under the MIT license