Module: ColumnsOnDemand::BaseMethods

Defined in:
lib/columns_on_demand.rb

Instance Method Summary collapse

Instance Method Details

#blob_and_text_columnsObject



21
22
23
24
25
26
# File 'lib/columns_on_demand.rb', line 21

def blob_and_text_columns
  columns.inject([]) do |blob_and_text_columns, column|
    blob_and_text_columns << column.name if column.type == :binary || column.type == :text
    blob_and_text_columns
  end
end

#columns_on_demand(*columns_to_load_on_demand) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
# File 'lib/columns_on_demand.rb', line 3

def columns_on_demand(*columns_to_load_on_demand)
  class_attribute :columns_to_load_on_demand, :instance_writer => false
  self.columns_to_load_on_demand = columns_to_load_on_demand.empty? ? blob_and_text_columns : columns_to_load_on_demand.collect(&:to_s)

  extend ClassMethods
  prepend InstanceMethods

  class <<self
    alias reset_column_information_without_columns_on_demand reset_column_information
    alias reset_column_information reset_column_information_with_columns_on_demand
  end
end

#reset_column_information_with_columns_on_demandObject



16
17
18
19
# File 'lib/columns_on_demand.rb', line 16

def reset_column_information_with_columns_on_demand
  @columns_to_select = @columns_to_load_by_default = nil
  reset_column_information_without_columns_on_demand
end