Sha256: ae115e5ca0e22b9c8e00532b48c5e9486ef03dfdc2f2cd5b8e44c80a38901f38

Contents?: true

Size: 697 Bytes

Versions: 5

Compression:

Stored size: 697 Bytes

Contents

module Tableficate
  class Base
    extend Tableficate::Finder

    def self.scope(model = nil)
      if block_given?
        @scope = yield
      else
        @scope = model.to_s.camelize.constantize
      end
    end

    def self.default_sort(name, dir = 'asc')
      @default_sort = [name, dir]
    end

    def self.column(name, options = {})
      @sort ||= {}

      @sort[name] = options[:sort] if options[:sort].present?
    end

    def self.filter(name, options = {}, &block)
      @filter ||= {}

      if block_given?
        @filter[name] = block
      else
        options.reverse_merge!(
          field: name
        )

        @filter[name] = options
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
tableficate-0.3.2 lib/tableficate/base.rb
tableficate-0.3.1 lib/tableficate/base.rb
tableficate-0.3.0 lib/tableficate/base.rb
tableficate-0.2.1 lib/tableficate/base.rb
tableficate-0.2.0 lib/tableficate/base.rb