Sha256: 182bfe0830ee62aa75caef49a080e011248eb2109b1bcab6fd2366b129be4c6a

Contents?: true

Size: 997 Bytes

Versions: 6

Compression:

Stored size: 997 Bytes

Contents

# encoding: UTF-8

module Spontaneous::Field
  class Date < Base
    has_editor

    DEFAULT_FORMAT = "%A, %-d %B, %Y"

    def self.export(user)
      super.merge({
        :date_format => prototype.options[:format] || DEFAULT_FORMAT
      })
    end

    def value(output = :html, *args)
      return date if date.is_a?(::String)
      case output
      when :html
        date.strftime(html_format)
      else
        date.strftime(format)
      end
    end

    def outputs
      [:julian]
    end

    def preprocess(value, site)
      return value if value.blank?
      ::Date.parse(value)
    end

    def html_format
      %(<time datetime="%Y-%m-%d">#{ format }</time>)
    end

    def generate_julian(date, site)
      return date.jd if date.is_a?(::Date)
      date.to_s
    end

    def date
      return "" if values[:julian].blank?
      ::Date.jd values[:julian].to_i
    end

    def format
      prototype.options[:format] ||  DEFAULT_FORMAT
    end

    self.register
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
spontaneous-0.2.0.beta10 lib/spontaneous/field/date.rb
spontaneous-0.2.0.beta9 lib/spontaneous/field/date.rb
spontaneous-0.2.0.beta8 lib/spontaneous/field/date.rb
spontaneous-0.2.0.beta7 lib/spontaneous/field/date.rb
spontaneous-0.2.0.beta6 lib/spontaneous/field/date.rb
spontaneous-0.2.0.beta5 lib/spontaneous/field/date.rb