class ActionView::Helpers::Tags::DateSelect
:nodoc:
:nodoc:
def datetime_selector(options, html_options)
def datetime_selector(options, html_options) datetime = options.fetch(:selected) { value || default_datetime(options) } @auto_index ||= nil options = options.dup options[:field_name] = @method_name options[:include_position] = true options[:prefix] ||= @object_name options[:index] = @auto_index if @auto_index && !options.has_key?(:index) DateTimeSelector.new(datetime, options, html_options) end
def default_datetime(options)
def default_datetime(options) return if options[:include_blank] || options[:prompt] case options[:default] when nil Time.current when Date, Time options[:default] else default = options[:default].dup # Rename :minute and :second to :min and :sec default[:min] ||= default[:minute] default[:sec] ||= default[:second] time = Time.current [:year, :month, :day, :hour, :min, :sec].each do |key| default[key] ||= time.public_send(key) end Time.utc( default[:year], default[:month], default[:day], default[:hour], default[:min], default[:sec] ) end end
def initialize(object_name, method_name, template_object, options, html_options)
def initialize(object_name, method_name, template_object, options, html_options) @html_options = html_options super(object_name, method_name, template_object, options) end
def render
def render error_wrapping(datetime_selector(@options, @html_options).public_send("select_#{select_type}").html_safe) end
def select_type
def select_type @select_type ||= name.split("::").last.sub("Select", "").downcase end
def select_type
def select_type self.class.select_type end