提交 a9a9e8a3 编写于 作者: C Carlos Galdino

Refactor date related helpers

上级 d7de7a79
module ActionView
module Helpers
module Tags
class DateField < TextField #:nodoc:
def render
options = @options.stringify_keys
options["value"] = @options.fetch("value") { value(object).try(:to_date) }
@options = options
super
end
class DateField < DatetimeField #:nodoc:
private
def format_date(value)
value.try(:strftime, "%Y-%m-%d")
end
end
end
end
......
......@@ -4,16 +4,16 @@ module Tags
class DatetimeField < TextField #:nodoc:
def render
options = @options.stringify_keys
options["value"] = @options.fetch("value") { format_global_date_time_string(value(object)) }
options["min"] = format_global_date_time_string(options["min"])
options["max"] = format_global_date_time_string(options["max"])
options["value"] = @options.fetch("value") { format_date(value(object)) }
options["min"] = format_date(options["min"])
options["max"] = format_date(options["max"])
@options = options
super
end
private
def format_global_date_time_string(value)
def format_date(value)
value.try(:strftime, "%Y-%m-%dT%T.%L%z")
end
end
......
module ActionView
module Helpers
module Tags
class DatetimeLocalField < TextField #:nodoc:
def render
options = @options.stringify_keys
options["type"] = "datetime-local"
options["value"] = @options.fetch("value") { format_local_date_time_string(value(object)) }
options["min"] = format_local_date_time_string(options["min"])
options["max"] = format_local_date_time_string(options["max"])
@options = options
super
class DatetimeLocalField < DatetimeField #:nodoc:
class << self
def field_type
@field_type ||= "datetime-local"
end
end
private
def format_local_date_time_string(value)
def format_date(value)
value.try(:strftime, "%Y-%m-%dT%T")
end
end
......
module ActionView
module Helpers
module Tags
class MonthField < TextField #:nodoc:
def render
options = @options.stringify_keys
options["value"] = @options.fetch("value") { format_month_string(value(object)) }
options["min"] = format_month_string(options["min"])
options["max"] = format_month_string(options["max"])
@options = options
super
end
class MonthField < DatetimeField #:nodoc:
private
def format_month_string(value)
def format_date(value)
value.try(:strftime, "%Y-%m")
end
end
......
module ActionView
module Helpers
module Tags
class TimeField < TextField #:nodoc:
def render
options = @options.stringify_keys
options["value"] = @options.fetch("value") { value(object).try(:strftime, "%T.%L") }
@options = options
super
end
class TimeField < DatetimeField #:nodoc:
private
def format_date(value)
value.try(:strftime, "%T.%L")
end
end
end
end
......
module ActionView
module Helpers
module Tags
class WeekField < TextField #:nodoc:
def render
options = @options.stringify_keys
options["value"] = @options.fetch("value") { format_week_string(value(object)) }
options["min"] = format_week_string(options["min"])
options["max"] = format_week_string(options["max"])
@options = options
super
end
class WeekField < DatetimeField #:nodoc:
private
def format_week_string(value)
def format_date(value)
value.try(:strftime, "%Y-W%W")
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册