Sha256: 7ea1978ae1e30deff4012a0a1278da176820075899009366a33ed9f40c79a2bb
Contents?: true
Size: 785 Bytes
Versions: 7
Compression:
Stored size: 785 Bytes
Contents
module QueryFilter::Rules class SplitterRange < Scope class RangeParam SPLITTER = /[;-]/ def initialize(value) @value = value end def valid? @value.present? && items.size == 2 end def range ::Range.new(*items) end def items @items ||= @value.split(SPLITTER).map(&:strip).map(&:to_i) end end def name 'splitter_range'.freeze end def valid?(values) period = build_period_from_params(values) !period.nil? end def normalize_params(values) build_period_from_params(values) end protected def build_period_from_params(values) param = RangeParam.new(values[key]) return unless param.valid? param end end end
Version data entries
7 entries across 7 versions & 1 rubygems