Class: RailsDb::Table
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods included from Connection
#column_names, #column_properties, #columns, #connection, #to_param
Constructor Details
#initialize(table_name) ⇒ Table
Returns a new instance of Table.
Instance Attribute Details
#data ⇒ Object
Returns the value of attribute data.
8
9
10
|
# File 'lib/rails_db/table.rb', line 8
def data
@data
end
|
#name ⇒ Object
Returns the value of attribute name.
8
9
10
|
# File 'lib/rails_db/table.rb', line 8
def name
@name
end
|
Instance Method Details
#as_model ⇒ Object
68
69
70
|
# File 'lib/rails_db/table.rb', line 68
def as_model
@model ||= create_model(name)
end
|
#create_model(table_name, &block) ⇒ Object
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/rails_db/table.rb', line 49
def create_model(table_name, &block)
begin
klass = Class.new(ActiveRecord::Base) do
def self.model_name
ActiveModel::Name.new(self, nil, table_name)
end
self.table_name = table_name
self.inheritance_column = nil
end
klass.count rescue
klass = ActiveRecord::Base.descendants.detect { |c| c.table_name == table_name }
end
klass.class_eval(&block) if block_given?
klass
end
|
#delete(id) ⇒ Object
45
46
47
|
# File 'lib/rails_db/table.rb', line 45
def delete(id)
RailsDb::Database.delete(name, primary_key, id)
end
|
#indexes ⇒ Object
33
34
35
|
# File 'lib/rails_db/table.rb', line 33
def indexes
RailsDb::Database.indexes(name)
end
|
#primary_key ⇒ Object
41
42
43
|
# File 'lib/rails_db/table.rb', line 41
def primary_key
RailsDb::Database.primary_key(name)
end
|
#to_csv ⇒ Object
24
25
26
27
28
29
30
31
|
# File 'lib/rails_db/table.rb', line 24
def to_csv
CSV.generate do |csv|
csv << column_names
data.data.rows.each do |row|
csv << row
end
end
end
|
#truncate ⇒ Object
37
38
39
|
# File 'lib/rails_db/table.rb', line 37
def truncate
RailsDb::Database.truncate(name)
end
|