class ActiveScaffold::Tableless

Public Class Methods

column(name, sql_type = nil, options = {}) click to toggle source
# File lib/active_scaffold/tableless.rb, line 189
def self.column(name, sql_type = nil, options = {})
  column = Column.new(name.to_s, options[:default], sql_type.to_s, options.key?(:null) ? options[:null] : true)
  column.tap { columns << column }
end
columns() click to toggle source
# File lib/active_scaffold/tableless.rb, line 172
def self.columns
  @tableless_columns ||= []
end
connection() click to toggle source
# File lib/active_scaffold/tableless.rb, line 185
def self.connection
  @connection ||= Connection.new(self)
end
execute_simple_calculation(relation, operation, column_name, distinct) click to toggle source
# File lib/active_scaffold/tableless.rb, line 202
def self.execute_simple_calculation(relation, operation, column_name, distinct)
  unless operation == 'count' && [relation.klass.primary_key, :all].include?(column_name)
    raise "self.execute_simple_calculation must be implemented in a Tableless model to support #{operation} #{column_name}#{' distinct' if distinct} columns"
  end
  find_all(relation).size
end
find_all(relation) click to toggle source
# File lib/active_scaffold/tableless.rb, line 194
def self.find_all(relation)
  raise 'self.find_all must be implemented in a Tableless model'
end
find_one(id, relation) click to toggle source
# File lib/active_scaffold/tableless.rb, line 198
def self.find_one(id, relation)
  raise 'self.find_one must be implemented in a Tableless model'
end
table_exists?() click to toggle source
# File lib/active_scaffold/tableless.rb, line 180
def self.table_exists?
  true
end
table_name() click to toggle source
# File lib/active_scaffold/tableless.rb, line 176
def self.table_name
  @table_name ||= ActiveModel::Naming.plural(self)
end

Private Class Methods

cached_find_by_statement(key, &block) click to toggle source
# File lib/active_scaffold/tableless.rb, line 156
def cached_find_by_statement(key, &block)
  StatementCache.new(key, self, &block)
end
relation() click to toggle source
# File lib/active_scaffold/tableless.rb, line 152
def relation
  ActiveScaffold::Tableless::Relation.new(self)
end

Public Instance Methods

destroy() click to toggle source
# File lib/active_scaffold/tableless.rb, line 209
def destroy
  raise 'destroy must be implemented in a Tableless model'
end