class SqlView::ClassBuilder

Public Class Methods

create_model(parent) click to toggle source
# File lib/sql_view.rb, line 105
def ClassBuilder.create_model(parent)
  klass = Class.new(ActiveRecord::Base) do
    def self.model_name
      ActiveModel::Name.new(self, nil, parent.view_name)
    end
    def readonly?
      true
    end
    self.table_name = parent.view_name
    self.inheritance_column = nil
  end
  if parent.sql_view_options[:extend_model_with].present?
    klass.class_eval(&parent.sql_view_options[:extend_model_with])
  end
  # to use e.associations.count for example
  # because of the error undefined scan for nil class
  klass.class_eval %Q{
    def self.name
      "#{parent.class}"
    end
  }
  klass
end
model_name() click to toggle source
# File lib/sql_view.rb, line 107
def self.model_name
  ActiveModel::Name.new(self, nil, parent.view_name)
end

Public Instance Methods

readonly?() click to toggle source
# File lib/sql_view.rb, line 110
def readonly?
  true
end