module Monocle
An in-memory representation of the view
Constants
- VERSION
Public Class Methods
bump(view_name)
click to toggle source
# File lib/monocle.rb, line 46 def bump(view_name) BumpCommand.new(fetch(view_name)).call end
configure() { |configuration| ... }
click to toggle source
Enables you to configure things in a block, i.e Monocle.configure
do |config|
config.logger = MyLogger.new config.path_to_views = "my/different/path/to/my/sql/files"
end
# File lib/monocle.rb, line 66 def configure yield configuration if block_given? end
create(view_name)
click to toggle source
# File lib/monocle.rb, line 29 def create(view_name) fetch(view_name).create end
drop(view_name)
click to toggle source
# File lib/monocle.rb, line 25 def drop(view_name) fetch(view_name).drop end
fetch(view_name)
click to toggle source
# File lib/monocle.rb, line 84 def fetch(view_name) view_name = symbolize_name(view_name) list.fetch(view_name) end
gem_root()
click to toggle source
# File lib/monocle.rb, line 79 def gem_root # Get the absolute path of our gem root File.expand_path(File.dirname(__dir__)) end
list()
click to toggle source
# File lib/monocle.rb, line 21 def list @list ||= ListCommand.new.call end
migrate()
click to toggle source
# File lib/monocle.rb, line 37 def migrate logger.info "Starting materialized views migrations..." list.each do |key, view| logger.debug "Checking if #{key} is up to date..." view.migrate end logger.info "All done!" end
refresh(view_name, concurrently: false)
click to toggle source
# File lib/monocle.rb, line 50 def refresh(view_name, concurrently: false) fetch(view_name).refresh concurrently: concurrently end
refresh_all()
click to toggle source
# File lib/monocle.rb, line 54 def refresh_all list.each do |key, view| logger.info "Refreshing view #{key}..." view.refresh # this will be a noop for non matviews end end
root()
click to toggle source
# File lib/monocle.rb, line 74 def root # Get the absolute path of the project who is using us File.expand_path(Dir.pwd) end
versions()
click to toggle source
# File lib/monocle.rb, line 33 def versions Migration.versions end
views_path()
click to toggle source
# File lib/monocle.rb, line 70 def views_path File.join(root, path_to_views) end
Protected Class Methods
configuration()
click to toggle source
# File lib/monocle.rb, line 91 def configuration @configuration ||= Configuration.new end
symbolize_name(name)
click to toggle source
# File lib/monocle.rb, line 96 def symbolize_name(name) name.is_a?(String) ? name.to_sym : name end