Sha256: 5ddf4c33e9c312af398ac641579383fc36f81016b01824920afae4194b094dbf

Contents?: true

Size: 703 Bytes

Versions: 3

Compression:

Stored size: 703 Bytes

Contents

module RecordFilter
  class Query

    def initialize(clazz, dsl_conjunction)
      @table = RecordFilter::Table.new(clazz)
      @conjunction = RecordFilter::Conjunctions::Base.create_from(dsl_conjunction, @table)
    end

    def to_find_params
      params = { :conditions => @conjunction.to_conditions }
      joins = @table.all_joins
      params[:joins] = joins.map { |join| join.to_sql } * ' ' unless joins.empty?
      orders = @table.all_orders
      params[:order] = orders.map { |order| order.to_sql } * ', ' unless orders.empty?
      params[:limit] = @conjunction.limit if @conjunction.limit
      params[:offset] = @conjunction.offset if @conjunction.offset
      params
    end
  end
end

Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
aub-record_filter-0.1.0 lib/record_filter/query.rb
aub-record_filter-0.1.1 lib/record_filter/query.rb
outoftime-record_filter-0.1.0 lib/record_filter/query.rb