Sha256: 322bd6270b1075b4c182f1611bb4b1159fc6ffe24c145ebee5730f28e69a0620
Contents?: true
Size: 857 Bytes
Versions: 3
Compression:
Stored size: 857 Bytes
Contents
module QueryFilter::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 && value_to ["#{column} BETWEEN ? AND ?", value_from, value_to] elsif value_from ["#{column} >= ?", value_from] elsif value_to ["#{column} <= ?", value_to] end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
query_filter-0.1.2 | lib/query_filter/utils/scope_range.rb |
query_filter-0.1.1 | lib/query_filter/utils/scope_range.rb |
query_filter-0.1.0 | lib/query_filter/utils/scope_range.rb |