Sha256: 2c8fbd994e96ba8798e973591be3de718278eecac8d45a30673cf20a14d3e797

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

module Datagrid
  module Filters
    module CompositeFilters

      def self.included(base)
        base.extend         ClassMethods
        base.class_eval do

        end
        base.send :include, InstanceMethods
      end # self.included

      module ClassMethods


        def date_range_filters(field, from_name = :"from_#{field}", to_name = :"to_#{field}")
          filter(from_name, :date) do |date|
            self.scoped(:conditions => ["#{field} >= ?", date])
          end
          filter(to_name, :date) do |date|
            self.scoped(:conditions => ["#{field} <= ?", date])
          end
        end

        def integer_range_filters(field, from_name = :"from_#{field}", to_name = :"to_#{field}")
          filter(from_name, :integer) do |value|
            self.scoped(:conditions => "#{field} >= #{value}")
          end
          filter(to_name, :integer) do |value|
            self.scoped(:conditions => "#{field} <= #{value}")
          end
        end
      end # ClassMethods

      module InstanceMethods

      end # InstanceMethods

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
datagrid-0.3.6 lib/datagrid/filters/composite_filters.rb