Sha256: ea411e36d12135ded8881a7f1e050d4d09d8e5e0bb1d1c3deb21a1849202a5ef

Contents?: true

Size: 743 Bytes

Versions: 5

Compression:

Stored size: 743 Bytes

Contents

module ReportsKit
  module Reports
    module FilterTypes
      class Number < Base
        def apply_conditions(records)
          case criteria[:operator]
          when '>'
            records.where("#{column} > #{value.to_i}")
          when '>='
            records.where("#{column} >= #{value.to_i}")
          when '<'
            records.where("#{column} < #{value.to_i}")
          when '<='
            records.where("#{column} <= #{value.to_i}")
          when '='
            records.where("#{column} = #{value.to_i}")
          else
            raise ArgumentError.new("Unsupported operator: '#{criteria[:operator]}'")
          end
        end

        def valid?
          value.present?
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
reports_kit-0.1.0 lib/reports_kit/reports/filter_types/number.rb
reports_kit-0.0.4 lib/reports_kit/reports/filter_types/number.rb
reports_kit-0.0.3 lib/reports_kit/reports/filter_types/number.rb
reports_kit-0.0.2 lib/reports_kit/reports/filter_types/number.rb
reports_kit-0.0.1 lib/reports_kit/reports/filter_types/number.rb