class DoublecheckView::Doublecheck

Attributes

schema[R]
views[R]

Public Class Methods

new(schema: "doublecheck") click to toggle source
# File lib/doublecheck_view/doublecheck.rb, line 37
def initialize(schema: "doublecheck")
  @schema = schema
  @views = get_views
end

Public Instance Methods

check(views: self.views) click to toggle source
# File lib/doublecheck_view/doublecheck.rb, line 42
def check(views: self.views)
  view_results = views.map do |v|
    rows = conn.select_all("select * from #{quote_identifier schema}.#{quote_identifier v}").to_a
    ViewResult.new v, rows
  end

  CheckResult.new view_results
end

Private Instance Methods

conn() click to toggle source
# File lib/doublecheck_view/doublecheck.rb, line 59
def conn
  ActiveRecord::Base.connection
end
get_views() click to toggle source
# File lib/doublecheck_view/doublecheck.rb, line 53
    def get_views
      conn.select_values <<-SQL
        select table_name from information_schema.views where table_schema=#{quote_value schema} order by 1
      SQL
    end
quote_identifier(ident) click to toggle source
# File lib/doublecheck_view/doublecheck.rb, line 67
def quote_identifier(ident)
  conn.quote_column_name ident
end
quote_value(value) click to toggle source
# File lib/doublecheck_view/doublecheck.rb, line 63
def quote_value(value)
  conn.quote value
end