Class: ActiveScaffold::Tableless

Inherits:
ActiveRecord::Base show all
Defined in:
lib/active_scaffold/tableless.rb

Defined Under Namespace

Classes: Relation

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from ActiveRecord::Base

#associated_valid?, #no_errors_in_associated?, #save_associated, #save_associated!, #save_with_unsaved_flag, #to_label, #unsaved=, #unsaved?

Class Method Details

.column(name, sql_type = nil, options = {}) ⇒ Object



59
60
61
62
# File 'lib/active_scaffold/tableless.rb', line 59

def self.column(name, sql_type = nil, options = {})
  column = ActiveRecord::ConnectionAdapters::Column.new(name.to_s, options[:default], sql_type.to_s, options.has_key?(:null) ? options[:null] : true)
  column.tap { columns << column }
end

.columnsObject



47
# File 'lib/active_scaffold/tableless.rb', line 47

def self.columns; @columns ||= []; end

.execute_simple_calculation(relation, operation, column_name, distinct) ⇒ Object



72
73
74
75
76
77
78
# File 'lib/active_scaffold/tableless.rb', line 72

def self.execute_simple_calculation(relation, operation, column_name, distinct)
  if operation == 'count' && column_name == :all && !distinct
    find_all(relation).size
  else
    raise "self.execute_simple_calculation must be implemented in a Tableless model to support #{operation} #{column_name} #{' distinct' if distinct} columns"
  end
end

.find_all(relation) ⇒ Object



64
65
66
# File 'lib/active_scaffold/tableless.rb', line 64

def self.find_all(relation)
  raise 'self.find_all must be implemented in a Tableless model'
end

.find_one(id, relation) ⇒ Object



68
69
70
# File 'lib/active_scaffold/tableless.rb', line 68

def self.find_one(id, relation)
  raise 'self.find_one must be implemented in a Tableless model'
end

.table_exists?Boolean

Returns:

  • (Boolean)


49
# File 'lib/active_scaffold/tableless.rb', line 49

def self.table_exists?; true; end

.table_nameObject



48
# File 'lib/active_scaffold/tableless.rb', line 48

def self.table_name; @table_name ||= ActiveModel::Naming.plural(self); end

Instance Method Details

#destroyObject



80
81
82
# File 'lib/active_scaffold/tableless.rb', line 80

def destroy
  raise 'destroy must be implemented in a Tableless model'
end