# File lib/action_view/helpers/text_field_date_helper.rb, line 31
      def text_field_date
        order = date_order.dup

        @options[:discard_hour]     = true
        @options[:discard_minute]   = true
        @options[:discard_second]   = true

        @options[:discard_year]   ||= true unless order.include?(:year)
        @options[:discard_month]  ||= true unless order.include?(:month)
        @options[:discard_day]    ||= true if @options[:discard_month] || !order.include?(:day)

        # Save this so we can restore it.
        original_datetime_separator_separator = @options[:datetime_separator]
        original_date_separator = @options[:date_separator]

        @options[:datetime_separator] = ""
        @options[:date_separator] = " "

        # If the day is hidden and the month is visible, the day should be set to the 1st so all month choices are
        # valid (otherwise it could be 31 and February wouldn't be a valid date)
        if @datetime && @options[:discard_day] && !@options[:discard_month]
          @datetime = @datetime.change(:day => 1)
        end

        [:day, :month, :year].each { |o| order.unshift(o) unless order.include?(o) }

        build_text_field_from_types(order).tap do
          # Restore.
          @options[:datetime_separator] = original_datetime_separator_separator
          @options[:date_separator] = original_date_separator
        end
      end