Sha256: 309bcf7456cf0cd3a8604517cc8d17a6baf69e95229adf9aa83753acbd5bfabe

Contents?: true

Size: 1.03 KB

Versions: 9

Compression:

Stored size: 1.03 KB

Contents

module Fancygrid
  module Orm
    class ActiveRecord
      include Fancygrid::Orm::SqlGenerator

      def execute resource_class, &block
        query = resource_class.where({})

        if self.query_options[:select].present?
          query = query.select(self.query_options[:select])
        end
        
        if self.query_options[:conditions].present?
          query = query.where(self.query_options[:conditions])
        end
        
        if self.query_options[:order].present?
          query = query.order(self.query_options[:order])
        end
        
        if block_given?
          wrapper = Fancygrid::ObjectWrapper.new(query)
          yield wrapper 
          query = wrapper.object
        end
        
        count = query.count
        
        if !self.query_options[:offset].nil? && !self.query_options[:limit].nil?
          query = query.offset(self.query_options[:offset])
          query = query.limit(self.query_options[:limit])
        end

        return query.to_a, count
      end
            
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
fancygrid-2.0.8 lib/fancygrid/orm/active_record.rb
fancygrid-2.0.7 lib/fancygrid/orm/active_record.rb
fancygrid-2.0.6 lib/fancygrid/orm/active_record.rb
fancygrid-2.0.5 lib/fancygrid/orm/active_record.rb
fancygrid-2.0.4 lib/fancygrid/orm/active_record.rb
fancygrid-2.0.3 lib/fancygrid/orm/active_record.rb
fancygrid-2.0.2 lib/fancygrid/orm/active_record.rb
fancygrid-2.0.1 lib/fancygrid/orm/active_record.rb
fancygrid-2.0.0 lib/fancygrid/orm/active_record.rb