Sha256: 2fa228f1722f25b8f181d29f5fc92c651829dcda20f900273a2790979481c415
Contents?: true
Size: 1 KB
Versions: 1
Compression:
Stored size: 1 KB
Contents
# frozen_string_literal: true module QueryFilter module Utils # Usage: # # range = Utils::ScopeRange.new(:orders, { orders_from: 1, orders_to: 44 }) # range.query('orders_count') # class ScopeRange def initialize(name, options = {}) @name = name @options = options end def name_from @name_from ||= "#{@name}_from".to_sym end def name_to @name_to ||= "#{@name}_to".to_sym end def value_from @options[name_from] end def value_to @options[name_to] end def valid? @options && (value_from.present? || value_to.present?) end def query(column) if value_from.present? && value_to.present? ["#{column} BETWEEN ? AND ?", value_from.to_f, value_to.to_f] elsif value_from.present? ["#{column} >= ?", value_from.to_f] elsif value_to.present? ["#{column} <= ?", value_to.to_f] end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
query_filter-0.2.3 | lib/query_filter/utils/scope_range.rb |