active_mocker 2.2.1 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 64d309a30e487afad4c2626da86f5d5a99d28837
4
- data.tar.gz: 583c4618977589f04cfb27a34b90edf1b73a4432
3
+ metadata.gz: 6e14ca018eff8f1c0f6c575322ae1cf79d48a3c9
4
+ data.tar.gz: 71fd81a8740ccd5d08a71186b096a1bef03a0b97
5
5
  SHA512:
6
- metadata.gz: 195803c199368d5b89d0122ee28d060853640a7a0dfeae93d9ec3bd074c79d1d99df8c7c33dc956c04fb72a68651b652d006c5ccccf91f4cd7b03320641d1f2b
7
- data.tar.gz: 89352aca6e35d772696bec48de7ffc334e8c367e2ec551da5b24066236e288cacfab23393c583a5bcb6022b8b35df52837f7576e1b2da658c4f9cd690c3f4b49
6
+ metadata.gz: 4c9e9c1b8bfd686ed562218d52f8324fd50f642ce29f105a61ea384745dcadf99d4764a18352771e1b387232d056186aba8b5bc62f5623078cba43ec86db7185
7
+ data.tar.gz: 217ec8087dedb24510a5ecd6e95b2b1e1da24853b830c922292fe8f74ccdafc7c23bde72a0e788e2dfa8c6e6c559d1c094540574f521e73f3f4500af614bc152
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+ require "colorize"
2
3
  module ActiveMocker
3
4
  class DisplayErrors
4
5
  attr_reader :errors, :model_count, :out
@@ -28,43 +29,92 @@ module ActiveMocker
28
29
  @uniq_errors ||= errors.flatten.compact.uniq.sort_by(&:class_name)
29
30
  end
30
31
 
32
+ def any_errors?
33
+ uniq_errors.count > 0
34
+ end
35
+
31
36
  def display_errors
32
37
  uniq_errors.each do |e|
33
38
  next unless ENV["DEBUG"] || !(e.level == :debug)
34
- if ActiveMocker::Config.error_verbosity == 3
35
- out.puts "#{e.class_name} has the following errors:"
36
- out.puts e.message.colorize(e.level_color)
37
- out.puts e.level
38
- out.puts e.original_error.message.colorize(e.level_color) if e.original_error?
39
- out.puts e.original_error.backtrace if e.original_error?
40
- out.puts e.original_error.class.name.colorize(e.level_color) if e.original_error?
41
- elsif ActiveMocker::Config.error_verbosity == 2
42
- out.puts "#{e.class_name} has the following errors:"
43
- out.puts e.message.colorize(e.level_color)
44
- end
45
- end
46
- if ActiveMocker::Config.error_verbosity > 0 && uniq_errors.count > 0
47
- out.puts "Error Summary"
48
- error_summary
49
- end
50
- failure_count_message
51
- if ActiveMocker::Config.error_verbosity > 0 && uniq_errors.count > 0
52
- out.puts "To see more/less detail set error_verbosity = 0, 1, 2, 3"
39
+
40
+ display_verbosity_three(e) || display_verbosity_two(e)
53
41
  end
42
+
43
+ display_verbosity_one
54
44
  end
55
45
 
56
46
  def error_summary
57
- error_count = uniq_errors.count { |e| [:red].include?(e.level_color) }
58
- warn = uniq_errors.count { |e| [:yellow].include?(e.level_color) }
59
- info = uniq_errors.count { |e| [:default].include?(e.level_color) }
60
- out.puts "errors: #{error_count}, warn: #{warn}, info: #{info}"
61
- out.puts "Failed models: #{failed_models.join(", ")}" if failed_models.count > 0
47
+ display "Error Summary"
48
+ display "errors: #{error_count}, warn: #{warn}, info: #{info}"
49
+ display "Failed models: #{failed_models.join(", ")}" if failed_models.count > 0
62
50
  end
63
51
 
64
52
  def failure_count_message
65
- if ActiveMocker::Config.error_verbosity > 0 && (success_count < model_count || uniq_errors.count > 0)
66
- out.puts "#{model_count - success_count} mock(s) out of #{model_count} failed."
53
+ if success_count < model_count || any_errors?
54
+ display "#{model_count - success_count} mock(s) out of #{model_count} failed."
67
55
  end
68
56
  end
57
+
58
+ private
59
+
60
+ def display(msg)
61
+ out.puts(msg)
62
+ end
63
+
64
+ def display_verbosity_three(error)
65
+ return unless ActiveMocker::Config.error_verbosity == 3
66
+
67
+ display_error_header(error)
68
+ display error.level
69
+
70
+ display_original_error(error)
71
+ end
72
+
73
+ def display_original_error(e)
74
+ original = e.original_error
75
+ return unless original
76
+
77
+ display original.message.colorize(e.level_color)
78
+ display original.backtrace
79
+ display original.class.name.colorize(e.level_color)
80
+ end
81
+
82
+ def display_verbosity_two(e)
83
+ return unless ActiveMocker::Config.error_verbosity == 2
84
+
85
+ display_error_header(e)
86
+ end
87
+
88
+ def display_error_header(e)
89
+ display "#{e.class_name} has the following errors:"
90
+ display e.message.colorize(e.level_color)
91
+ end
92
+
93
+ def display_verbosity_one
94
+ return unless ActiveMocker::Config.error_verbosity > 0
95
+
96
+ error_summary if any_errors?
97
+
98
+ failure_count_message
99
+
100
+ return unless any_errors?
101
+ display "To see more/less detail set error_verbosity = 0, 1, 2, 3"
102
+ end
103
+
104
+ def error_count
105
+ errors_for(:red)
106
+ end
107
+
108
+ def warn
109
+ errors_for(:yellow)
110
+ end
111
+
112
+ def info
113
+ errors_for(:default)
114
+ end
115
+
116
+ def errors_for(level)
117
+ uniq_errors.count { |e| [level].include? e.level_color }
118
+ end
69
119
  end
70
120
  end
@@ -7,7 +7,7 @@ module ActiveMocker
7
7
  extend AliasAttribute
8
8
 
9
9
  def self.inherited(subclass)
10
- return ActiveMocker::LoadedMocks.send(:add, subclass) if subclass.superclass == Base
10
+ ActiveMocker::LoadedMocks.send(:add, subclass)
11
11
  end
12
12
 
13
13
  class << self
@@ -58,12 +58,10 @@ module ActiveMocker
58
58
  # Post.limit(100).delete_all
59
59
  # # => ActiveMocker::Error: delete_all doesn't support limit scope
60
60
  def delete_all(conditions = nil)
61
- raise ActiveMocker::Error.new("delete_all doesn't support limit scope") if from_limit?
62
- if conditions.nil?
63
- to_a.map(&:delete)
64
- return to_a.clear
65
- end
66
- where(conditions).map(&:delete).count
61
+ check_for_limit_scope!
62
+
63
+ collection = conditions.nil? ? to_a.each(&:delete).clear : where(conditions)
64
+ collection.map(&:delete).count
67
65
  end
68
66
 
69
67
  alias destroy_all delete_all
@@ -346,6 +344,10 @@ module ActiveMocker
346
344
 
347
345
  private
348
346
 
347
+ def check_for_limit_scope!
348
+ raise ActiveMocker::Error.new("delete_all doesn't support limit scope") if from_limit?
349
+ end
350
+
349
351
  def values_by_key(key)
350
352
  all.map { |obj| obj.send(key) }
351
353
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ActiveMocker
3
- VERSION = "2.2.1"
3
+ VERSION = "2.2.2"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_mocker
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.2.1
4
+ version: 2.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Zeisler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-03 00:00:00.000000000 Z
11
+ date: 2016-05-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport