class ActiveRecordViews::RegisteredView

Attributes

model_class_name[R]
sql_path[R]

Public Class Methods

new(model_class, sql_path) click to toggle source
# File lib/active_record_views/registered_view.rb, line 5
def initialize(model_class, sql_path)
  @model_class_name = model_class.name
  @sql_path = sql_path
  update_timestamp!
end

Public Instance Methods

dead?() click to toggle source
# File lib/active_record_views/registered_view.rb, line 19
def dead?
  !File.exist?(sql_path)
end
model_class() click to toggle source
# File lib/active_record_views/registered_view.rb, line 11
def model_class
  @model_class_name.constantize
end
reload!() click to toggle source
# File lib/active_record_views/registered_view.rb, line 23
def reload!
  if File.exist? sql_path
    ActiveRecordViews.create_view model_class.connection, model_class.table_name, model_class.name, ActiveRecordViews.read_sql_file(model_class, sql_path), model_class.view_options
    model_class.reset_column_information
  else
    ActiveRecordViews.drop_view model_class.connection, model_class.table_name
  end
  update_timestamp!
end
stale?() click to toggle source
# File lib/active_record_views/registered_view.rb, line 15
def stale?
  sql_timestamp != @cached_sql_timestamp
end

Private Instance Methods

sql_timestamp() click to toggle source
# File lib/active_record_views/registered_view.rb, line 35
def sql_timestamp
  File.exist?(sql_path) ? File.mtime(sql_path) : nil
end
update_timestamp!() click to toggle source
# File lib/active_record_views/registered_view.rb, line 39
def update_timestamp!
  @cached_sql_timestamp = sql_timestamp
end