class SchemaDev::Executor
Attributes
activerecord[R]
db[R]
error[R]
ruby[R]
Public Class Methods
new(ruby:, activerecord:, db:)
click to toggle source
# File lib/schema_dev/executor.rb, line 13 def initialize(ruby:, activerecord:, db:) @ruby_selector = RubySelector.command(ruby) @gemfile_selector = GemfileSelector.command(activerecord: activerecord, db: db) end
Public Instance Methods
run(cmd, dry_run: false)
click to toggle source
# File lib/schema_dev/executor.rb, line 18 def run(cmd, dry_run: false) fullcommand = ['/usr/bin/env', @gemfile_selector, @ruby_selector, cmd].compact.join(' ') puts "* #{fullcommand}" return true if dry_run @error = false Open3.popen2e(fullcommand) do |_i, oe, t| oe.each do |line| puts line @error ||= (line =~ /(^Failed examples)|(rake aborted)|(LoadError)/) end @error ||= !t.value.success? end !@error end