Module: Datagrid::Core::ClassMethods

Defined in:
lib/datagrid/core.rb

Overview

self.included

Instance Method Summary collapse

Instance Method Details

#datagrid_attribute(name, &block) ⇒ Object

:nodoc:



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/datagrid/core.rb', line 19

def datagrid_attribute(name, &block) #:nodoc:
  unless datagrid_attributes.include?(name)
    block ||= lambda do |value|
      value
    end
    datagrid_attributes << name
    define_method name do
      instance_variable_get("@#{name}")
    end

    define_method :"#{name}=" do |value|
      instance_variable_set("@#{name}", instance_exec(value, &block))
    end
  end
end

#driverObject

:nodoc:



45
46
47
# File 'lib/datagrid/core.rb', line 45

def driver #:nodoc:
  @driver ||= Drivers::AbstractDriver.guess_driver(scope).new
end

#scope(&block) ⇒ Object

Defines a scope at class level



36
37
38
39
40
41
42
43
# File 'lib/datagrid/core.rb', line 36

def scope(&block)
  if block
    self.scope_value = block
  else
    check_scope_defined!
    scope_value.call
  end
end