Sha256: 730b21d61ddfcdbb6dd504d243024a8e8b0242d95e5191b8f449fa3637c8a5a2
Contents?: true
Size: 939 Bytes
Versions: 1
Compression:
Stored size: 939 Bytes
Contents
require 'json' require_relative "ruby_selector" require_relative "gemfile_selector" module SchemaDev class Executor attr_reader :ruby, :rails, :db, :error def initialize(ruby:, rails:, db: nil) @ruby_selector = RubySelector.command(ruby) @gemfile_selector = GemfileSelector.command(rails: rails, db: db) env = {ruby: ruby, rails: rails, db: db}.reject{|k,val| val.nil?} @dev_env = "SCHEMA_DEV_ENV='#{env.to_json}'" end def run(cmd, dry_run: false) fullcommand = ["/usr/bin/env", @dev_env, @gemfile_selector, @ruby_selector, cmd].compact.join(' ') puts "* #{fullcommand}" return true if dry_run Tempfile.open('SchemaDev') do |file| @error = !system(%Q[ (#{fullcommand}) 2>& 1 | tee #{file.path} ]) file.rewind @error ||= file.readlines.grep(/(^Failed examples)|(rake aborted)|(LoadError)/).any? end return !@error end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
schema_dev-0.0.1 | lib/schema_dev/executor.rb |