Sha256: e24913c1e3c33c334499600ed1e10a4e4c2a7d6c576cb9052119204f35806cc8

Contents?: true

Size: 786 Bytes

Versions: 3

Compression:

Stored size: 786 Bytes

Contents

require 'gridify/grid'

module Gridify
  
  def self.included(base)
    base.extend(ClassMethods)
  end
  
  module ClassMethods
    attr_accessor :grids
    
    def gridify(*args, &block)
      # debugger
      grid = Gridify::Grid.new( self, *args, &block)
      @grids ||= {}
      @grids[grid.name.to_sym] = grid 
      
      unless self.respond_to?(:find_for_grid)
        class_eval <<-EOV
            named_scope :find_for_grid, lambda {|name, params|
              grid = grids[name]
              grid.update_from_params( params )
              grid.current_scope
            }    
        EOV
      end
    end
    
    def grids
      @grids || {}
    end
    
    def grid
      grids[:grid]  
    end
    
    
  end
end
 
class ActiveRecord::Base
  include Gridify
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gridify-0.1.2 lib/gridify.rb
gridify-0.1.1 lib/gridify.rb
gridify-0.1.0 lib/gridify.rb