Sha256: 6ed310547aca42c068d2bf914fa737257fa9e4a4caefe3e4d63c266c8b224e79

Contents?: true

Size: 1 KB

Versions: 62

Compression:

Stored size: 1 KB

Contents

module Workarea
  module Search
    class DateFilter < Filter
      def query_clause
        return {} unless current_value.present?
        { range: { name => { options => query_value.to_s(:iso8601) } } }
      end

      def query_value
        result = Time.zone.parse(current_value.to_s)

        if greater_than? && !time_specified?
          result.beginning_of_day
        elsif less_than? && !time_specified?
          result.end_of_day
        else
          result
        end
      end

      def system_name
        @system_name ||= name + suffix
      end

      def less_than?
        %w(lt lte).include?(options.to_s)
      end

      def greater_than?
        %w(gt gte).include?(options.to_s)
      end

      def time_specified?
        parsed = Time.zone.parse(current_value.to_s)
        parsed != parsed.beginning_of_day
      end

      private

      def suffix
        if less_than?
          '_less_than'
        elsif greater_than?
          '_greater_than'
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
workarea-core-3.5.27 app/queries/workarea/search/date_filter.rb
workarea-core-3.5.26 app/queries/workarea/search/date_filter.rb
workarea-core-3.4.45 app/queries/workarea/search/date_filter.rb
workarea-core-3.5.25 app/queries/workarea/search/date_filter.rb
workarea-core-3.5.23 app/queries/workarea/search/date_filter.rb
workarea-core-3.4.44 app/queries/workarea/search/date_filter.rb
workarea-core-3.5.22 app/queries/workarea/search/date_filter.rb
workarea-core-3.4.43 app/queries/workarea/search/date_filter.rb
workarea-core-3.5.21 app/queries/workarea/search/date_filter.rb
workarea-core-3.4.42 app/queries/workarea/search/date_filter.rb
workarea-core-3.5.20 app/queries/workarea/search/date_filter.rb
workarea-core-3.4.41 app/queries/workarea/search/date_filter.rb
workarea-core-3.5.19 app/queries/workarea/search/date_filter.rb
workarea-core-3.4.40 app/queries/workarea/search/date_filter.rb
workarea-core-3.5.18 app/queries/workarea/search/date_filter.rb
workarea-core-3.4.39 app/queries/workarea/search/date_filter.rb
workarea-core-3.5.17 app/queries/workarea/search/date_filter.rb
workarea-core-3.4.38 app/queries/workarea/search/date_filter.rb
workarea-core-3.5.16 app/queries/workarea/search/date_filter.rb
workarea-core-3.4.37 app/queries/workarea/search/date_filter.rb