Class: Ansr::Arel::BigTable

Inherits:
Arel::Table
  • Object
show all
Defined in:
lib/ansr/arel/big_table.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(klass, engine = nil) ⇒ BigTable

Returns a new instance of BigTable.



20
21
22
23
24
25
26
27
# File 'lib/ansr/arel/big_table.rb', line 20

def initialize(klass, engine=nil)
  super(klass.name, engine.nil? ? klass.engine : engine)
  @klass = klass.model
  @fields = []
  @facets = []
  @sorts = []
  @field_configs = {}
end

Instance Attribute Details

#facetsObject (readonly)

Returns the value of attribute facets.



6
7
8
# File 'lib/ansr/arel/big_table.rb', line 6

def facets
  @facets
end

#fieldsObject (readonly)

Returns the value of attribute fields.



6
7
8
# File 'lib/ansr/arel/big_table.rb', line 6

def fields
  @fields
end

#klassObject (readonly) Also known as: model

Returns the value of attribute klass.



9
10
11
# File 'lib/ansr/arel/big_table.rb', line 9

def klass
  @klass
end

#primary_keyObject



29
30
31
# File 'lib/ansr/arel/big_table.rb', line 29

def primary_key
  @primary_key ||= ::Arel::Attribute.new( self, self.class.primary_key )
end

#sortsObject (readonly)

Returns the value of attribute sorts.



6
7
8
# File 'lib/ansr/arel/big_table.rb', line 6

def sorts
  @sorts
end

Class Method Details

.primary_keyObject



12
13
14
# File 'lib/ansr/arel/big_table.rb', line 12

def self.primary_key
  @primary_key ||= 'id'
end

.primary_key=(key) ⇒ Object



16
17
18
# File 'lib/ansr/arel/big_table.rb', line 16

def self.primary_key=(key)
  @primary_key = key
end

Instance Method Details

#[](name) ⇒ Object



37
38
39
40
# File 'lib/ansr/arel/big_table.rb', line 37

def [] name
  name = (name.respond_to? :name) ? name.name.to_sym : name.to_sym
  (@field_configs.include? name) ? Ansr::Arel::ConfiguredField.new(self, name, @field_configs[name]) : ::Arel::Attribute.new( self, name)
end

#configure_fieldsObject



42
43
44
45
46
47
# File 'lib/ansr/arel/big_table.rb', line 42

def configure_fields
  if block_given?
    yield @field_configs
  end
  @field_configs
end