Class: Charty::TableAdapters::ActiveRecordAdapter

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/charty/table_adapters/active_record_adapter.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ ActiveRecordAdapter

Returns a new instance of ActiveRecordAdapter.



12
13
14
15
16
# File 'lib/charty/table_adapters/active_record_adapter.rb', line 12

def initialize(data)
  @data = check_type(ActiveRecord::Relation, data, :data)
  @column_names = @data.column_names.freeze
  @columns = nil
end

Instance Attribute Details

#column_namesObject (readonly)

Returns the value of attribute column_names.



18
19
20
# File 'lib/charty/table_adapters/active_record_adapter.rb', line 18

def column_names
  @column_names
end

#dataObject (readonly)

Returns the value of attribute data.



18
19
20
# File 'lib/charty/table_adapters/active_record_adapter.rb', line 18

def data
  @data
end

Class Method Details

.supported?(data) ⇒ Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/charty/table_adapters/active_record_adapter.rb', line 8

def self.supported?(data)
  defined?(ActiveRecord::Relation) && data.is_a?(ActiveRecord::Relation)
end

Instance Method Details

#[](row, column) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/charty/table_adapters/active_record_adapter.rb', line 20

def [](row, column)
  fetch_records unless @columns
  if row
    @columns[resolve_column_index(column)][row]
  else
    @columns[resolve_column_index(column)]
  end
end