Sha256: d6e8ab3a83818902a20dab7797f23ac5037ae9d20483be61873e3f0809d2f58f

Contents?: true

Size: 1.14 KB

Versions: 12

Compression:

Stored size: 1.14 KB

Contents

#  This class might appear in a controller like this:
#  
#  class CalendarController < ApplicationController
#    def show
#      @presenter = CalendarPresenter.new(params[:calendar])
#    end
#  end
#
#  but in documentation, makes more sense this way :)  
#  
#  >> @presenter = CalendarPresenter.new # first pageload
#  
#  >> @presenter.start_date
#  => Tue, 01 Dec 2009
#  
#  >> @presenter.end_date
#  => Thu, 31 Dec 2009
#  
#  >> # User selects some other month and year; the next request looks like...
#  
#  >> @presenter = CalendarPresenter.new({:month => '2', :year => '2002'})
#  
#  >> @presenter.start_date
#  => Fri, 01 Feb 2002
#  
#  >> @presenter.end_date
#  => Thu, 28 Feb 2002
#  
#  ...
#  
class CalenderPresenter < Valuable
  has_value :month, :klass => Integer, :default => Time.now.month
  has_value :year, :klass => Integer, :default => Time.now.year

  def start_date
    Date.civil( year, month, 1)
  end

  def end_date
    Date.civil( year, month, -1) #strange I know
  end

  def events
    Event.find(:all, :conditions => event_conditions)
  end

  def event_conditions
    ['starts_at between ? and ?', start_date, end_date]
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
valuable-0.9.14 examples/rails_presenter.rb
valuable-0.9.13 examples/rails_presenter.rb
valuable-0.9.12 examples/rails_presenter.rb
valuable-0.9.11 examples/rails_presenter.rb
valuable-0.9.10 examples/rails_presenter.rb
valuable-0.9.9 examples/rails_presenter.rb
valuable-0.9.8 examples/rails_presenter.rb
valuable-0.9.7 examples/rails_presenter.rb
valuable-0.9.6 examples/rails_presenter.rb
valuable-0.9.5 examples/rails_presenter.rb
valuable-0.9.4 examples/rails_presenter.rb
valuable-0.9.3 examples/rails_presenter.rb