Sha256: 392dc389c36ae6058c8862319cf7a98c8f84cf51b2136f79519b9eb863c5fea5
Contents?: true
Size: 988 Bytes
Versions: 2
Compression:
Stored size: 988 Bytes
Contents
require 'open3' module Lamby class Runner class Error < StandardError ; end class UnknownCommandPattern < Error ; end PATTERNS = [ %r{\A\./bin/(rails|rake) db:migrate.*} ] class << self def handle?(event) event.dig 'lamby', 'runner' end def call(event) new(event).call end end def initialize(event) @event = event end def call validate! status = Open3.popen3(command, chdir: chdir) do |_stdin, stdout, stderr, thread| puts stdout.read puts stderr.read thread.value.exitstatus end [status, {}, StringIO.new('')] end def command @event.dig 'lamby', 'runner' end private def chdir defined?(::Rails) ? ::Rails.root : Dir.pwd end def validate! return if pattern? raise UnknownCommandPattern.new(command) end def pattern? PATTERNS.any? { |p| p === command } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
lamby-3.0.1 | lib/lamby/runner.rb |
lamby-3.0.0 | lib/lamby/runner.rb |