class Albacore::Sql::SqlTask
a task that handles the execution of sql scripts.
Public Class Methods
new(work_dir, opts)
click to toggle source
# File lib/albacore/task_types/sql_cmd.rb, line 95 def initialize work_dir, opts raise ArgumentError, 'opts is not a map' unless opts.is_a? Map raise ArgumentError, 'no scripts given' unless opts.get(:scripts).length > 0 raise ArgumentError, 'no parameters given' unless opts.get(:parameters).length > 0 @opts = opts.apply :work_dir => work_dir @scripts = opts.get :scripts end
Public Instance Methods
execute()
click to toggle source
# File lib/albacore/task_types/sql_cmd.rb, line 104 def execute @scripts.each do |s| execute_inner! @opts.get(:work_dir), s end end
execute_inner!(work_dir, script)
click to toggle source
execute, for each sql script
# File lib/albacore/task_types/sql_cmd.rb, line 111 def execute_inner! work_dir, script exe = path_to(@opts.get(:exe), work_dir) parameters = @opts.get(:parameters) parameters.add("-i#{script.gsub('/','\\')}") cmd = Albacore::Sql::Cmd.new(work_dir, exe, parameters) cmd.execute fail "SqlCmd.exe is not installed.\nPlease download and install Microsoft SQL Server 2012 Command Line Utilities: https://www.microsoft.com/en-gb/download/confirmation.aspx?id=29065\nAnd add the location of SqlCmd.exe to the PATH system varible." unless exe end
path_to(path, work_dir)
click to toggle source
# File lib/albacore/task_types/sql_cmd.rb, line 125 def path_to path, work_dir if (Pathname.new path).absolute? return path else return File.expand_path( File.join(@opts.get(:original_path), path), work_dir ) end end