Module: RemoteDb::Concerns::RestrictedColumns::ClassMethods

Defined in:
lib/remote_db/concerns/restricted_columns.rb

Instance Method Summary collapse

Instance Method Details

#original_columnsObject



36
37
38
# File 'lib/remote_db/concerns/restricted_columns.rb', line 36

def original_columns
  @original_columns ||= []
end

#table_columns=(visible_columns) ⇒ Object

Note: This is a hack that relies on ActiveRecord’s internals. Most of the logic is originally from: ActiveRecord::ModelSchema#reset_column_information`



43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/remote_db/concerns/restricted_columns.rb', line 43

def table_columns=(visible_columns)
  unless abstract_class?
    @visible_columns  = visible_columns
    @original_columns = columns.map(&:name).map(&:to_sym)
    @columns.reject! do |column|
      !visible_columns.include?(column.name.to_sym)
    end

    @column_names = @content_columns = @column_defaults = @columns_hash = nil
    @dynamic_methods_hash = nil
    @inheritance_column = nil unless defined?(@explicit_inheritance_column) && @explicit_inheritance_column
    @arel_engine = @relation = nil
  end
end

#visible_columnsObject



32
33
34
# File 'lib/remote_db/concerns/restricted_columns.rb', line 32

def visible_columns
  @visible_columns ||= []
end