diff --git a/CHANGES.md b/CHANGES.md index e5e3074..3deaea8 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,6 @@ +# 0.0.30 +* Add Logger to Trailblazer Developer + # 0.0.20 * Ruby 2.7 support diff --git a/LICENSE b/LICENSE index a9772e9..e3a684c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2018-2020 Trailblazer GmbH +Copyright (c) 2018-2021 Trailblazer GmbH Trailblazer is an Open Source project licensed under the terms of the LGPLv3 license. Please see diff --git a/lib/trailblazer/developer.rb b/lib/trailblazer/developer.rb index dc91798..a309c41 100644 --- a/lib/trailblazer/developer.rb +++ b/lib/trailblazer/developer.rb @@ -1,8 +1,11 @@ require "trailblazer/developer/version" +require "dry-configurable" +require "logger" module Trailblazer module Developer - # Your code goes here... + extend Dry::Configurable + setting(:logger, Logger.new($stdout), reader: true ) end end diff --git a/lib/trailblazer/developer/wtf.rb b/lib/trailblazer/developer/wtf.rb index 16ba658..7df2a60 100644 --- a/lib/trailblazer/developer/wtf.rb +++ b/lib/trailblazer/developer/wtf.rb @@ -25,7 +25,7 @@ def invoke(activity, (ctx, flow_options), **circuit_options) return signal, [ctx, flow_options], circuit_options ensure - puts Trace::Present.( + Trailblazer::Developer.logger.info Trace::Present.( flow_options[:stack], renderer: Wtf::Renderer, color_map: Wtf::Renderer::DEFAULT_COLOR_MAP.merge( flow_options[:color_map] || {} ), diff --git a/test/docs/developer_test.rb b/test/docs/developer_test.rb index a0f71ad..25c2d6a 100644 --- a/test/docs/developer_test.rb +++ b/test/docs/developer_test.rb @@ -42,7 +42,7 @@ def create(ctx, input:, **) _(signal.inspect).must_equal %{#} _(ctx.inspect).must_equal %{{:params=>{:text=>\"Hydrate!\"}, :input=>{:text=>\"Hydrate!\"}}} - output, _ = capture_io do + output, _ = capture_subprocess_io do #:wtf-focus-steps Dev.wtf?(Memo::Create, [ctx, { focus_on: { steps: [:validate, :create_memo] } }]) #:wtf-focus-steps end @@ -67,7 +67,7 @@ def create(ctx, input:, **) `-- End.success } - output, _ = capture_io do + output, _ = capture_subprocess_io do #:wtf-focus-steps-with-variables Dev.wtf?(Memo::Create, [ctx, { focus_on: { variables: [:params], steps: :validate } }]) #:wtf-focus-steps-with-variables end @@ -84,7 +84,7 @@ def create(ctx, input:, **) `-- End.success } - output, _ = capture_io do + output, _ = capture_subprocess_io do #:wtf-default-inspector Dev.wtf?( Memo::Create, diff --git a/test/test_helper.rb b/test/test_helper.rb index cd230c5..6de1932 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -9,6 +9,10 @@ require "trailblazer/activity/dsl/linear" puts "Running in Ruby #{RUBY_VERSION}" +Trailblazer::Developer.config.logger = Logger.new($stdout, formatter: proc do |severity, datetime, progname, msg| + "#{msg}\n" +end) + T = Trailblazer::Activity::Testing Minitest::Spec.class_eval do diff --git a/test/trace/wtf_test.rb b/test/trace/wtf_test.rb index 666d569..4fda2e4 100644 --- a/test/trace/wtf_test.rb +++ b/test/trace/wtf_test.rb @@ -39,7 +39,7 @@ def <<(value) end it "traces until charlie, 3-level and exception occurs" do - output, _ = capture_io do + output, _ = capture_subprocess_io do assert_raises RuntimeError do Trailblazer::Developer.wtf?(alpha, [{ seq: Raiser.new(raise_in: :c) }]) end @@ -58,7 +58,7 @@ def <<(value) end it "traces until charlie, 3-level and step takes left track" do - output, _ = capture_io do + output, _ = capture_subprocess_io do Trailblazer::Developer.wtf?(alpha, [{ seq: [], c: false }]) end @@ -78,7 +78,7 @@ def <<(value) end it "traces alpha and it's subprocesses, for successful execution" do - output, _ = capture_io do + output, _ = capture_subprocess_io do Trailblazer::Developer.wtf?(alpha, [{ seq: [] }]) end @@ -101,7 +101,7 @@ def <<(value) end it "overrides default color map of entities" do - output, _ = capture_io do + output, _ = capture_subprocess_io do Trailblazer::Developer.wtf?( alpha, [ @@ -158,7 +158,7 @@ def <<(value) end it "captures input & output for given step and ctx (captures whole ctx by default)" do - output, _ = capture_io do + output, _ = capture_subprocess_io do Trailblazer::Developer.wtf?( alpha, [ @@ -200,7 +200,7 @@ def <<(value) step method(:b) end - output, _ = capture_io do + output, _ = capture_subprocess_io do Trailblazer::Developer.wtf?( alpha, [ @@ -256,7 +256,7 @@ def <<(value) end it "captures input & output inspect for given step and variable within ctx" do - output, _ = capture_io do + output, _ = capture_subprocess_io do Trailblazer::Developer.wtf?( alpha, [ @@ -294,7 +294,7 @@ def <<(value) end it "captures input & output for given 1/more steps and selected variables witin ctx" do - output, _ = capture_io do + output, _ = capture_subprocess_io do Trailblazer::Developer.wtf?( alpha, [ @@ -337,7 +337,7 @@ def <<(value) end it "allows passing custom inspector" do - output, _ = capture_io do + output, _ = capture_subprocess_io do Trailblazer::Developer.wtf?( alpha, [ @@ -377,7 +377,7 @@ def <<(value) flow_options = { flow: true } circuit_options = { circuit: true } - capture_io do + capture_subprocess_io do Trailblazer::Developer.wtf?( alpha, [ctx, flow_options], diff --git a/trailblazer-developer.gemspec b/trailblazer-developer.gemspec index 8b97182..d7992d5 100644 --- a/trailblazer-developer.gemspec +++ b/trailblazer-developer.gemspec @@ -18,13 +18,14 @@ Gem::Specification.new do |spec| end spec.require_paths = ["lib"] - spec.add_development_dependency "bundler" - spec.add_development_dependency "minitest" - spec.add_development_dependency "minitest-line" - spec.add_development_dependency "rake" - spec.add_dependency "trailblazer-activity", ">= 0.11.0", "< 1.0.0" spec.add_dependency "trailblazer-activity-dsl-linear" spec.add_dependency "representable" spec.add_dependency "hirb" + spec.add_dependency "dry-configurable", "~> 0.11" + + spec.add_development_dependency "bundler" + spec.add_development_dependency "minitest" + spec.add_development_dependency "minitest-line" + spec.add_development_dependency "rake" end