paraduct 1.0.0.beta3 → 1.0.0.beta4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 44b857ff3d62610894f7bb2c251302415642bc22
4
- data.tar.gz: 4744fbe562d1a5ae56eca1ea85e46897e62ff682
3
+ metadata.gz: 07807e35ce22e33ca717c280bb70742acd00949b
4
+ data.tar.gz: 302097b3be4e8c2d9aee9eab2e1ecda5b0bebc18
5
5
  SHA512:
6
- metadata.gz: fc130e6be4ce56c7c1f0ae4ccda80790e88631fdd4d9c8f6c20e31ca6f27fe845749c8872d9190fb4faee843cdc9e96714de971d08651c4f927c8d1833551527
7
- data.tar.gz: e6a4990163c8a9e79c28cd1ee1836a4fbd41c331f8b5512e391842839fe553372d8abf1904bad80a4bc5f94636d6f3a2b4e051baae076bfb8b9c9161a640eabe
6
+ metadata.gz: 91d9a6f52dbad0e290f4880d23e0de5666ab21d65a94bcf8df6c0b1f6faf90f23b0c40a3e82c702d21f7cb59e0ced5e1688975d57d32ba56049c1b13c9288656
7
+ data.tar.gz: c71d31485ae44b9adcd4fabf260b3af876ed7ebd71382ba458ea488b05a2fcd15eab08a86986ef170e1f7c1c1b4a67846e47d134d7b7658996ea4dc11a2e9c30
@@ -3,18 +3,7 @@ module Paraduct
3
3
  def initialize(label_name, logdev = STDOUT)
4
4
  super(logdev)
5
5
  color = Paraduct::ColoredLabelLogger.next_color
6
- @label = "[#{label_name.to_s.colorize(color)}]"
7
- @formatter = ActiveSupport::Logger::SimpleFormatter.new
8
- end
9
-
10
- SEVERITIES = [:debug, :info, :warn, :error, :fatal]
11
- SEVERITIES.each do |severity|
12
- define_method "#{severity}_with_label" do |message|
13
- message.each_line do |line|
14
- send "#{severity}_without_label", "#{@label} #{line.strip}" unless line.blank?
15
- end
16
- end
17
- alias_method_chain severity, :label
6
+ @formatter = Formatter.new(label_name, color)
18
7
  end
19
8
 
20
9
  COLORS = [
@@ -33,9 +22,25 @@ module Paraduct
33
22
  :light_blue,
34
23
  ]
35
24
  def self.next_color
36
- @@color_index ||= -1
37
- @@color_index = (@@color_index + 1) % COLORS.length
38
- COLORS[@@color_index]
25
+ @color_index ||= -1
26
+ @color_index = (@color_index + 1) % COLORS.length
27
+ COLORS[@color_index]
28
+ end
29
+
30
+ class Formatter
31
+ def initialize(label_name, color)
32
+ @label = "[#{label_name.to_s.colorize(color)}]"
33
+ end
34
+
35
+ def call(severity, datetime, progname, message)
36
+ return "" if message.blank?
37
+
38
+ content = ""
39
+ message.each_line do |line|
40
+ content << "#{datetime} #{@label} #{line.strip}\n"
41
+ end
42
+ content
43
+ end
39
44
  end
40
45
  end
41
46
  end
@@ -48,7 +48,7 @@ module Paraduct
48
48
 
49
49
  def logger
50
50
  unless @logger
51
- stdout_logger = Paraduct::ColoredLabelLogger.new(object_id)
51
+ stdout_logger = Paraduct::ColoredLabelLogger.new(formatted_params)
52
52
  file_logger = Logger.new(Pathname(@base_job_dir).join("#{job_name}.log"))
53
53
  @logger = stdout_logger.extend(ActiveSupport::Logger.broadcast(file_logger))
54
54
  end
@@ -60,8 +60,12 @@ module Paraduct
60
60
 
61
61
  def run_command(command)
62
62
  full_stdout = ""
63
+ exit_status = nil
64
+
65
+ PTY.spawn(command) do |stdin, stdout, pid|
66
+ stdout.close_write
67
+ stdin.sync = true
63
68
 
64
- PTY.spawn(command) do |stdin, _stdout, pid|
65
69
  begin
66
70
  stdin.each do |line|
67
71
  line.strip!
@@ -69,11 +73,13 @@ module Paraduct
69
73
  full_stdout << "#{line}\n"
70
74
  end
71
75
  rescue Errno::EIO
76
+ ensure
77
+ _, exit_status = Process.waitpid2(pid)
72
78
  end
73
- exit_status = PTY.check(pid)
74
- raise Paraduct::Errors::ProcessError.new(full_stdout, exit_status) if exit_status && !exit_status.success?
75
79
  end
76
80
 
81
+ raise Paraduct::Errors::ProcessError.new(full_stdout, exit_status) unless exit_status.success?
82
+
77
83
  full_stdout
78
84
  end
79
85
  end
@@ -1,3 +1,3 @@
1
1
  module Paraduct
2
- VERSION = "1.0.0.beta3"
2
+ VERSION = "1.0.0.beta4"
3
3
  end
data/paraduct.gemspec CHANGED
@@ -33,7 +33,6 @@ Gem::Specification.new do |spec|
33
33
  spec.add_development_dependency "rspec", "~> 3.4"
34
34
  spec.add_development_dependency "rspec-collection_matchers"
35
35
  spec.add_development_dependency "rspec-its"
36
- spec.add_development_dependency "rspec-retry"
37
36
  spec.add_development_dependency "rspec-temp_dir"
38
37
  spec.add_development_dependency "yard"
39
38
 
@@ -65,9 +65,7 @@ describe Paraduct::CLI do
65
65
  }
66
66
  end
67
67
 
68
- it "should raise TestFailureError", with_retry do
69
- expect { subject }.to raise_error Paraduct::Errors::TestFailureError
70
- end
68
+ it { expect { subject }.to raise_error Paraduct::Errors::TestFailureError }
71
69
  end
72
70
  end
73
71
 
@@ -37,7 +37,7 @@ describe Paraduct::Runner do
37
37
  it { should match /DATABASE=mysql/ }
38
38
  end
39
39
 
40
- context "when error in script file", with_retry do
40
+ context "when error in script file" do
41
41
  let(:script){ "./script/build_error.sh" }
42
42
 
43
43
  let(:stdout) do
data/spec/spec_helper.rb CHANGED
@@ -21,7 +21,6 @@ require 'paraduct/cli'
21
21
  require 'rspec/collection_matchers'
22
22
  require 'rspec/temp_dir'
23
23
  require 'rspec/its'
24
- require 'rspec/retry'
25
24
  require 'pry'
26
25
 
27
26
  is_verbose = ENV["VERBOSE"].present?
@@ -32,11 +31,6 @@ end
32
31
 
33
32
  Dir["#{spec_dir}/support/**/*.rb"].sort.each { |f| require f }
34
33
 
35
- # rspec-retry option
36
- def with_retry
37
- {retry: 3, retry_wait: 10}
38
- end
39
-
40
34
  # This file was generated by the `rspec --init` command. Conventionally, all
41
35
  # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
42
36
  # The generated `.rspec` file contains `--require spec_helper` which will cause this
@@ -128,8 +122,6 @@ RSpec.configure do |config|
128
122
 
129
123
  config.order = :random
130
124
 
131
- config.verbose_retry = true
132
-
133
125
  config.before do
134
126
  unless is_verbose
135
127
  # quiet all logs
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paraduct
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.beta3
4
+ version: 1.0.0.beta4
5
5
  platform: ruby
6
6
  authors:
7
7
  - sue445
@@ -206,20 +206,6 @@ dependencies:
206
206
  - - ">="
207
207
  - !ruby/object:Gem::Version
208
208
  version: '0'
209
- - !ruby/object:Gem::Dependency
210
- name: rspec-retry
211
- requirement: !ruby/object:Gem::Requirement
212
- requirements:
213
- - - ">="
214
- - !ruby/object:Gem::Version
215
- version: '0'
216
- type: :development
217
- prerelease: false
218
- version_requirements: !ruby/object:Gem::Requirement
219
- requirements:
220
- - - ">="
221
- - !ruby/object:Gem::Version
222
- version: '0'
223
209
  - !ruby/object:Gem::Dependency
224
210
  name: rspec-temp_dir
225
211
  requirement: !ruby/object:Gem::Requirement