dotpretty 0.7.0 → 0.8.0

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
  SHA256:
3
- metadata.gz: 8205f1decc125ec0d793587399cc4ff3f7969a7eef4af49f329417bb7242e857
4
- data.tar.gz: 87de6c2d74f51077c24148848494b89409dfc468423bb9689f043370110cf6e2
3
+ metadata.gz: f1d0018b1e41f70563e11d4c495a357e8df1b355f02df5e5663dc2d6062f2757
4
+ data.tar.gz: 7280f945df62f089cb2a53735cc464613400ffab68783a7a4f57c0d25a19dee4
5
5
  SHA512:
6
- metadata.gz: 5f4f1bdadaf2d027fcb3390e65e9f4dd2b40f403efe9c345b6448090c0fe5e33ddaef5a87e2a87075a17e7e33cc1e959e742d90cc5bbfdb77674e3bdf3fbe22d
7
- data.tar.gz: 31208e1b8de1e11b30c7c3281f2e9677a2c8021fd593c6e85f8f620cdacf217a82e118123ca2f5d5b93e332dd00777c56c081f596e4bb63a3e8faa59e826109f
6
+ metadata.gz: 1973ccb7c3a07c2b6f36fff91b1446577c0aa58b7180060a2186f06a929d379f52f92bf181f3d3081768edf93ec4cf73b702247841594daea2d9d68a05f23121
7
+ data.tar.gz: 896f15d3c8f1d9dd79cd8844ce32be59cdca11ee211ca0c5cef178bff90033b6f64c8a09ee8fa43a60b76ea1a975246f3274912c0d72c30e9ba1d33035dc1628
data/bin/dotpretty CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "dotpretty/colorers/bash"
4
- require "dotpretty/colorers/null"
3
+ require "dotpretty/color_palettes/bash"
4
+ require "dotpretty/color_palettes/null"
5
5
  require "dotpretty/reporters/names"
6
6
  require "dotpretty/runner"
7
7
  require "optparse"
@@ -33,9 +33,9 @@ OptionParser.new do |opts|
33
33
 
34
34
  end.parse!
35
35
 
36
- colorer = options[:color] ? Dotpretty::Colorers::Bash : Dotpretty::Colorers::Null
36
+ color_palette = options[:color] ? Dotpretty::ColorPalettes::Bash : Dotpretty::ColorPalettes::Null
37
37
  runner = Dotpretty::Runner.new({
38
- colorer: colorer,
38
+ color_palette: color_palette,
39
39
  output: STDOUT,
40
40
  reporter_name: options[:reporter_name]
41
41
  })
@@ -1,5 +1,5 @@
1
1
  module Dotpretty
2
- module Colorers
2
+ module ColorPalettes
3
3
  module Bash
4
4
 
5
5
  RESET="\e[0m"
@@ -1,5 +1,5 @@
1
1
  module Dotpretty
2
- module Colorers
2
+ module ColorPalettes
3
3
  module Null
4
4
 
5
5
  def green(text)
@@ -1,13 +1,13 @@
1
1
  require "dotpretty/aggregator"
2
2
  require "dotpretty/reporters/basic"
3
- require "dotpretty/state_machine_builder"
3
+ require "dotpretty/state_machine/state_machine_builder"
4
4
 
5
5
  module Dotpretty
6
6
  class Parser
7
7
 
8
8
  def initialize(reporter:)
9
9
  self.aggregator = Dotpretty::Aggregator.new({ reporter: reporter })
10
- self.state_machine = Dotpretty::StateMachineBuilder.build(aggregator) do
10
+ self.state_machine = Dotpretty::StateMachine::StateMachineBuilder.build(aggregator) do
11
11
  state :waiting do
12
12
  transition :build_started, :build_in_progress, :build_started
13
13
  end
@@ -4,9 +4,9 @@ module Dotpretty
4
4
  module Reporters
5
5
  class Basic
6
6
 
7
- def initialize(colorer:, output:)
8
- self.colorer = colorer
9
- self.extend(colorer)
7
+ def initialize(color_palette:, output:)
8
+ self.color_palette = color_palette
9
+ self.extend(color_palette)
10
10
  self.output = output
11
11
  end
12
12
 
@@ -55,12 +55,12 @@ module Dotpretty
55
55
 
56
56
  def colored_message(summary)
57
57
  return Dotpretty::Reporters::TestSummaryFormatter.new({
58
- colorer: colorer,
58
+ color_palette: color_palette,
59
59
  summary: summary
60
60
  }).colored_message
61
61
  end
62
62
 
63
- attr_accessor :colorer, :output
63
+ attr_accessor :color_palette, :output
64
64
 
65
65
  end
66
66
  end
@@ -1,4 +1,4 @@
1
- require "dotpretty/colorers/null"
1
+ require "dotpretty/color_palettes/null"
2
2
  require "dotpretty/reporters/basic"
3
3
  require "dotpretty/reporters/json"
4
4
  require "dotpretty/reporters/names"
@@ -14,12 +14,12 @@ module Dotpretty
14
14
  return Dotpretty::Reporters::Json.new(options.fetch(:output))
15
15
  when Dotpretty::Reporters::Names::PROGRESS
16
16
  return Dotpretty::Reporters::Progress.new({
17
- colorer: options.fetch(:colorer),
17
+ color_palette: options.fetch(:color_palette),
18
18
  output: options.fetch(:output)
19
19
  })
20
20
  else
21
21
  return Dotpretty::Reporters::Basic.new({
22
- colorer: options.fetch(:colorer),
22
+ color_palette: options.fetch(:color_palette),
23
23
  output: options.fetch(:output)
24
24
  })
25
25
  end
@@ -2,9 +2,9 @@ module Dotpretty
2
2
  module Reporters
3
3
  class Progress
4
4
 
5
- def initialize(colorer:, output:)
6
- self.colorer = colorer
7
- self.extend(colorer)
5
+ def initialize(color_palette:, output:)
6
+ self.color_palette = color_palette
7
+ self.extend(color_palette)
8
8
  self.failing_tests = []
9
9
  self.skipped_test_names = []
10
10
  self.output = output
@@ -56,7 +56,7 @@ module Dotpretty
56
56
 
57
57
  def formatted_test_summary(summary)
58
58
  return Dotpretty::Reporters::TestSummaryFormatter.new({
59
- colorer: colorer,
59
+ color_palette: color_palette,
60
60
  summary: summary
61
61
  }).colored_message
62
62
  end
@@ -84,7 +84,7 @@ module Dotpretty
84
84
  output.puts("")
85
85
  end
86
86
 
87
- attr_accessor :colorer, :failing_tests, :output, :skipped_test_names
87
+ attr_accessor :color_palette, :failing_tests, :output, :skipped_test_names
88
88
 
89
89
  end
90
90
  end
@@ -2,8 +2,8 @@ module Dotpretty
2
2
  module Reporters
3
3
  class TestSummaryFormatter
4
4
 
5
- def initialize(colorer:, summary:)
6
- self.extend(colorer)
5
+ def initialize(color_palette:, summary:)
6
+ self.extend(color_palette)
7
7
  self.summary = summary
8
8
  end
9
9
 
@@ -4,10 +4,10 @@ require "dotpretty/reporters/factory"
4
4
  module Dotpretty
5
5
  class Runner
6
6
 
7
- def initialize(colorer:, output:, reporter_name:)
7
+ def initialize(color_palette:, output:, reporter_name:)
8
8
  reporter = Dotpretty::Reporters::Factory.build_reporter(reporter_name, {
9
9
  output: output,
10
- colorer: colorer
10
+ color_palette: color_palette
11
11
  })
12
12
  self.parser = Dotpretty::Parser.new({ reporter: reporter })
13
13
  end
@@ -0,0 +1,26 @@
1
+ module Dotpretty
2
+ module StateMachine
3
+ class StateDetails
4
+
5
+ def initialize(transitions:, exit_action:, entry_action:)
6
+ self.entry_action = entry_action
7
+ self.exit_action = exit_action
8
+ self.transitions = transitions
9
+ end
10
+
11
+ attr_reader :entry_action
12
+
13
+
14
+ def trigger(event, &block)
15
+ transition = transitions[event]
16
+ block.call(transition, exit_action) if transition
17
+ end
18
+
19
+ private
20
+
21
+ attr_accessor :exit_action, :transitions
22
+ attr_writer :entry_action
23
+
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,45 @@
1
+ require "dotpretty/state_machine/state_details"
2
+
3
+ module Dotpretty
4
+ module StateMachine
5
+ class StateMachine
6
+
7
+ def initialize(initial_state:, observer:, states:)
8
+ self.current_state_name = initial_state
9
+ self.observer = observer
10
+ self.states = states
11
+ end
12
+
13
+ attr_reader :current_state_name
14
+
15
+ def trigger(event, *args)
16
+ current_state.trigger(event) do |transition, exit_action|
17
+ perform(exit_action, *args) if current_state_name != transition[:next_state_name]
18
+ perform(transition[:action], *args)
19
+ if current_state_name != transition[:next_state_name]
20
+ self.current_state_name = transition[:next_state_name]
21
+ perform(current_state.entry_action, *args)
22
+ end
23
+ end
24
+ end
25
+
26
+ private
27
+
28
+ def perform(action, *args)
29
+ observer.send(action, *args) if action
30
+ end
31
+
32
+ def current_state
33
+ states[current_state_name] || StateDetails.new({
34
+ entry_action: nil,
35
+ exit_action: nil,
36
+ transitions: {}
37
+ })
38
+ end
39
+
40
+ attr_accessor :observer, :states
41
+ attr_writer :current_state_name
42
+
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,80 @@
1
+ require "dotpretty/state_machine/state_details"
2
+ require "dotpretty/state_machine/state_machine"
3
+
4
+ module Dotpretty
5
+ module StateMachine
6
+ class StateMachineBuilder
7
+ class StateDetailsBuilder
8
+
9
+ def self.build(name, &definition)
10
+ builder = StateDetailsBuilder.new(name)
11
+ builder.instance_eval(&definition)
12
+ return builder.build
13
+ end
14
+
15
+ def initialize(name)
16
+ self.name = name
17
+ self.transitions = {}
18
+ end
19
+
20
+ def build
21
+ StateDetails.new({
22
+ entry_action: entry_action,
23
+ exit_action: exit_action,
24
+ transitions: transitions
25
+ })
26
+ end
27
+
28
+ def transition(event, next_state_name, action = nil)
29
+ transitions[event] = {
30
+ action: action,
31
+ next_state_name: next_state_name
32
+ }
33
+ end
34
+
35
+ def on_entry(action)
36
+ self.entry_action = action
37
+ end
38
+
39
+ def on_exit(action)
40
+ self.exit_action = action
41
+ end
42
+
43
+ private
44
+
45
+ attr_accessor :entry_action, :exit_action, :name, :transitions
46
+
47
+ end
48
+
49
+ def self.build(observer, &definition)
50
+ builder = Dotpretty::StateMachine::StateMachineBuilder.new(observer)
51
+ builder.instance_eval(&definition)
52
+ return builder.build
53
+ end
54
+
55
+ def initialize(observer)
56
+ self.observer = observer
57
+ self.states = {}
58
+ end
59
+
60
+ def state(name, &definition)
61
+ state = StateDetailsBuilder.build(name, &definition)
62
+ states[name] = state
63
+ self.initial_state = name if !initial_state
64
+ end
65
+
66
+ def build
67
+ Dotpretty::StateMachine::StateMachine.new({
68
+ initial_state: initial_state,
69
+ observer: observer,
70
+ states: states
71
+ })
72
+ end
73
+
74
+ private
75
+
76
+ attr_accessor :initial_state, :observer, :states
77
+
78
+ end
79
+ end
80
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dotpretty
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Meyer
@@ -18,10 +18,9 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - bin/dotpretty
21
- - lib/dotpretty.rb
22
21
  - lib/dotpretty/aggregator.rb
23
- - lib/dotpretty/colorers/bash.rb
24
- - lib/dotpretty/colorers/null.rb
22
+ - lib/dotpretty/color_palettes/bash.rb
23
+ - lib/dotpretty/color_palettes/null.rb
25
24
  - lib/dotpretty/parser.rb
26
25
  - lib/dotpretty/reporters/basic.rb
27
26
  - lib/dotpretty/reporters/factory.rb
@@ -30,9 +29,9 @@ files:
30
29
  - lib/dotpretty/reporters/progress.rb
31
30
  - lib/dotpretty/reporters/test_summary_formatter.rb
32
31
  - lib/dotpretty/runner.rb
33
- - lib/dotpretty/state_details.rb
34
- - lib/dotpretty/state_machine.rb
35
- - lib/dotpretty/state_machine_builder.rb
32
+ - lib/dotpretty/state_machine/state_details.rb
33
+ - lib/dotpretty/state_machine/state_machine.rb
34
+ - lib/dotpretty/state_machine/state_machine_builder.rb
36
35
  homepage: https://github.com/ericmeyer/dotpretty
37
36
  licenses:
38
37
  - MIT
@@ -1,23 +0,0 @@
1
- module Dotpretty
2
- class StateDetails
3
-
4
- def initialize(transitions:, exit_action:, entry_action:)
5
- self.entry_action = entry_action
6
- self.exit_action = exit_action
7
- self.transitions = transitions
8
- end
9
-
10
- attr_reader :entry_action
11
-
12
- def trigger(event, &block)
13
- transition = transitions[event]
14
- block.call(transition, exit_action) if transition
15
- end
16
-
17
- private
18
-
19
- attr_accessor :exit_action, :transitions
20
- attr_writer :entry_action
21
-
22
- end
23
- end
@@ -1,43 +0,0 @@
1
- require "dotpretty/state_details"
2
-
3
- module Dotpretty
4
- class StateMachine
5
-
6
- def initialize(initial_state:, observer:, states:)
7
- self.current_state_name = initial_state
8
- self.observer = observer
9
- self.states = states
10
- end
11
-
12
- attr_reader :current_state_name
13
-
14
- def trigger(event, *args)
15
- current_state.trigger(event) do |transition, exit_action|
16
- perform(exit_action, *args) if current_state_name != transition[:next_state_name]
17
- perform(transition[:action], *args)
18
- if current_state_name != transition[:next_state_name]
19
- self.current_state_name = transition[:next_state_name]
20
- perform(current_state.entry_action, *args)
21
- end
22
- end
23
- end
24
-
25
- private
26
-
27
- def perform(action, *args)
28
- observer.send(action, *args) if action
29
- end
30
-
31
- def current_state
32
- states[current_state_name] || StateDetails.new({
33
- entry_action: nil,
34
- exit_action: nil,
35
- transitions: {}
36
- })
37
- end
38
-
39
- attr_accessor :observer, :states
40
- attr_writer :current_state_name
41
-
42
- end
43
- end
@@ -1,79 +0,0 @@
1
- require "dotpretty/state_details"
2
- require "dotpretty/state_machine"
3
-
4
- module Dotpretty
5
- class StateMachineBuilder
6
-
7
- class StateDetailsBuilder
8
-
9
- def self.build(name, &definition)
10
- builder = StateDetailsBuilder.new(name)
11
- builder.instance_eval(&definition)
12
- return builder.build
13
- end
14
-
15
- def initialize(name)
16
- self.name = name
17
- self.transitions = {}
18
- end
19
-
20
- def build
21
- StateDetails.new({
22
- entry_action: entry_action,
23
- exit_action: exit_action,
24
- transitions: transitions
25
- })
26
- end
27
-
28
- def transition(event, next_state_name, action = nil)
29
- transitions[event] = {
30
- action: action,
31
- next_state_name: next_state_name
32
- }
33
- end
34
-
35
- def on_entry(action)
36
- self.entry_action = action
37
- end
38
-
39
- def on_exit(action)
40
- self.exit_action = action
41
- end
42
-
43
- private
44
-
45
- attr_accessor :entry_action, :exit_action, :name, :transitions
46
-
47
- end
48
-
49
- def self.build(observer, &definition)
50
- builder = Dotpretty::StateMachineBuilder.new(observer)
51
- builder.instance_eval(&definition)
52
- return builder.build
53
- end
54
-
55
- def initialize(observer)
56
- self.observer = observer
57
- self.states = {}
58
- end
59
-
60
- def state(name, &definition)
61
- state = StateDetailsBuilder.build(name, &definition)
62
- states[name] = state
63
- self.initial_state = name if !initial_state
64
- end
65
-
66
- def build
67
- Dotpretty::StateMachine.new({
68
- initial_state: initial_state,
69
- observer: observer,
70
- states: states
71
- })
72
- end
73
-
74
- private
75
-
76
- attr_accessor :initial_state, :observer, :states
77
-
78
- end
79
- end
data/lib/dotpretty.rb DELETED
@@ -1 +0,0 @@
1
- require "dotpretty/parser"