factory_trace 0.1.1 → 0.1.2

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: 7f8ffd7275b885d4354634c3a47c9697d96e40774e065526631c229263a52a80
4
- data.tar.gz: 392e63586adb5d09b04f44ff80f3bd71606508e58ed21dc72525e10454f0b705
3
+ metadata.gz: 26b7253d7d994cb1f591977dc3bcadc38d6f6cfe80526ef4377d85d411fbd380
4
+ data.tar.gz: bcde5b14ecfcfbe16b9cada40618ae0c79e38be424b96b9b2967996a6ab1f1c2
5
5
  SHA512:
6
- metadata.gz: 3017d866a2b4d76f812e9ebf14a2c476a2d716fea6c5696b03ce83947e008431f340186caff533be69fe73d7da95b7f2f2b7c08d9cf257af4921ebbdf5d33d2f
7
- data.tar.gz: 601ae2b6b8d370a3be34abe13404b50a3516789519548de30b15a60c66c712c3b4e2ad6bedd128dd75b53b7e08954d783142e85eca1e89e1f7cc4b70110f7e54
6
+ metadata.gz: 83ef3b6436248a5ed5c440966337b89e7e1dcbd72b025bbcfb6448cbee188aac24f57d3122c0f41e81f2d9af138aed04ed24d4d5ac5ec0a87ad0ba068dce085a
7
+ data.tar.gz: fa02e34299d009aea40d99368e67e575152b30479e79a903464f45279ee33afdaa59d5bc51fd42fa1edee3ca7ecfea171705278778c0b1aa41522c81ce203a7f
@@ -1,10 +1,11 @@
1
1
  module FactoryTrace
2
2
  class Configuration
3
- attr_accessor :path, :enabled
3
+ attr_accessor :path, :enabled, :color
4
4
 
5
5
  def initialize
6
6
  @enabled = ENV.key?('FB_TRACE') || ENV.key?('FB_TRACE_FILE')
7
7
  @path = ENV['FB_TRACE_FILE']
8
+ @color = path.nil?
8
9
  end
9
10
 
10
11
  def out
@@ -8,6 +8,9 @@ module FactoryTrace
8
8
 
9
9
  # @return [Array<Hash>]
10
10
  def check!
11
+ # This is required to exclude parent traits from +defined_traits+
12
+ FactoryBot.reload
13
+
11
14
  data = prepare(initial_data)
12
15
 
13
16
  output = []
@@ -1,32 +1,48 @@
1
1
  module FactoryTrace
2
2
  class Printer
3
- def initialize(io)
3
+ COLORS = {
4
+ blue: "\e[34m",
5
+ green: "\e[32m",
6
+ red: "\e[31m"
7
+ }.freeze
8
+
9
+ def initialize(io, config: Configuration.new)
4
10
  @io = io
11
+ @config = config
5
12
  end
6
13
 
7
14
  # @param [Array<Hash>] results
8
15
  def print(results)
16
+ total_color = results.size == 2 ? :green : :red
17
+
9
18
  results.each do |result|
10
- io.puts(convert(result))
19
+ io.puts(convert(result, total_color: total_color))
11
20
  end
12
21
  end
13
22
 
14
23
  private
15
24
 
16
25
  # @param [Hash<Symbol, Object>] result
17
- def convert(result)
26
+ # @param [Symbol] total_color
27
+ def convert(result, total_color:)
18
28
  case
19
29
  when result[:value]
20
- "total number of unique #{result[:code]} factories & traits: #{result[:value]}"
30
+ colorize(total_color, "total number of unique #{result[:code]} factories & traits: #{result[:value]}")
21
31
  when result[:factory] && result[:trait]
22
- "#{result[:code]} trait '#{result[:trait].name}' of factory '#{result[:factory].name}'"
32
+ "#{result[:code]} trait #{colorize(:blue, result[:trait].name)} of factory #{colorize(:blue, result[:factory].name)}"
23
33
  when result[:factory]
24
- "#{result[:code]} factory '#{result[:factory].name}'"
34
+ "#{result[:code]} factory #{colorize(:blue, result[:factory].name)}"
25
35
  else
26
- "#{result[:code]} global trait '#{result[:trait].name}'"
36
+ "#{result[:code]} global trait #{colorize(:blue, result[:trait].name)}"
27
37
  end
28
38
  end
29
39
 
30
- attr_reader :io
40
+ def colorize(color, msg)
41
+ return msg unless config.color
42
+
43
+ "#{COLORS[color]}#{msg}\e[0m"
44
+ end
45
+
46
+ attr_reader :io, :config
31
47
  end
32
48
  end
@@ -1,3 +1,3 @@
1
1
  module FactoryTrace
2
- VERSION = '0.1.1'
2
+ VERSION = '0.1.2'
3
3
  end
data/lib/factory_trace.rb CHANGED
@@ -36,7 +36,7 @@ module FactoryTrace
36
36
  end
37
37
 
38
38
  def printer
39
- @printer ||= Printer.new(configuration.out)
39
+ @printer ||= Printer.new(configuration.out, config: configuration)
40
40
  end
41
41
 
42
42
  def configuration
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: factory_trace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - djezzzl
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-28 00:00:00.000000000 Z
11
+ date: 2019-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: factory_bot