Sha256: a2c94d2de84654f9c6ef2e6399b2da46e2360ecfddf4b9504ad4827043858891

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 KB

Contents

module RecordFilter
  module DSL
    class ConjunctionDSL

      attr_reader :conjunction

      def initialize(model_class, conjunction)
        @model_class = model_class
        @conjunction = conjunction
      end

      # restriction
      def with(column, value=Restriction::DEFAULT_VALUE)
        return @conjunction.add_restriction(column, value)
      end

      # conjunction
      def any_of(&block)
        @conjunction.add_conjunction(:any_of, &block)
        nil
      end

      # conjunction
      def all_of(&block)
        @conjunction.add_conjunction(:all_of, &block)
        nil
      end

      def none_of(&block)
        @conjunction.add_conjunction(:none_of, &block)
        nil
      end

      def not_all_of(&block)
        @conjunction.add_conjunction(:not_all_of, &block)
        nil
      end

      # join
      def having(association, &block)
        @conjunction.add_join(association, &block)
      end

      def join(clazz, join_type, table_alias=nil, &block)
        @conjunction.add_class_join(clazz, join_type, table_alias, &block)
      end

      def filter_class
        @model_class
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aub-record_filter-0.1.4 lib/record_filter/dsl/conjunction_dsl.rb