Sha256: dfe51b8998f58646b88f9b9b61859371ca14a6f9cde8010516ebeabdd1d905c7

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

require 'set_builder/modifier/verb'


module SetBuilder
  module Modifiers
    class NumberModifier < Modifier::Verb
      
      
      
      def self.operators
        {
          :is => [:number],
          :is_less_than => [:number],
          :is_greater_than => [:number],
          :is_between => [:number, :number]
        }
      end
      
      
      
      def build_conditions_for(selector)
        case operator
        when :is
          ["#{selector}=?", value]
        when :is_less_than
          ["#{selector}<?", value]
        when :is_greater_than
          ["#{selector}>?", value]
        when :is_between
          ["#{selector}>=? AND #{selector}<=?", values[0], values[1]]
        end
      end
      
      
      
      def build_arel_for(selector)
        case operator
        when :is
          selector.eq(value)
        when :is_less_than
          selector.lt(value)
        when :is_greater_than
          selector.gt(value)
        when :is_between
          selector.gteq(value).and(selector.lteq(value))
        end
      end
      
      
      
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
set_builder-1.2.0.beta3 lib/set_builder/modifiers/number_modifier.rb