Sha256: 37e854d29814b8d04f41f33ada61df834992332ecbd0b80b283946cab5932415

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

module RailsCalendar
  module ControllerExtensions

    FORMATS = {
      :natural => {
        :date => "ddmmyy",
        :time => "%I:%M %p"
      }
    }

    def self.date_format_string(time = false)
      format[:date] + (time ? format[:time] : "")
    end

    def self.format
      @calendar_date_select_format ||= FORMATS[:natural]
    end

    def self.format=(format)
      raise "Date format not recognized." unless FORMATS.has_key?format
      @calendar_date_select_format = FORMATS[format]
    end

    def self.format_date(date)
      if date.is_a?(Date)
        date.strftime(date_format_string(false))
      else
        date.strftime(date_format_string(true))
      end
    end

    def self.format_time(value, time_needed)
      return value unless value.respond_to?("strftime")

      if time_needed
        format_date(value)
      else
        format_date(value.to_date)
      end
    end

    # Detects the presence of time in a date, string
    def self.has_time?(value)
      case value
      when DateTime, Time then true
      when Date           then false
      else
        /[0-9]:[0-9]{2}/.match(value.to_s) ? true : false
      end
    end
    
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rails_calendar-0.0.1 lib/rails_calendar/controller_extensions.rb