nyan-cat-formatter 0.7.0 → 0.8.0

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.
@@ -1,4 +1,6 @@
1
- before_install: gem install bundler
1
+ before_script:
2
+ - gem install bundler
3
+ - bundle install
2
4
 
3
5
  rvm:
4
6
  - 1.8.7
@@ -1,4 +1,6 @@
1
- gem 'rspec', '~> 2.14'
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'rspec', '~> 2.99'
2
4
 
3
5
  group :development do
4
6
  gem 'rake'
@@ -1,19 +1,20 @@
1
1
  GEM
2
+ remote: https://rubygems.org/
2
3
  specs:
3
4
  diff-lcs (1.2.5)
4
- rake (10.1.1)
5
- rspec (2.14.1)
6
- rspec-core (~> 2.14.0)
7
- rspec-expectations (~> 2.14.0)
8
- rspec-mocks (~> 2.14.0)
9
- rspec-core (2.14.7)
10
- rspec-expectations (2.14.3)
5
+ rake (10.3.2)
6
+ rspec (2.99.0)
7
+ rspec-core (~> 2.99.0)
8
+ rspec-expectations (~> 2.99.0)
9
+ rspec-mocks (~> 2.99.0)
10
+ rspec-core (2.99.0)
11
+ rspec-expectations (2.99.0)
11
12
  diff-lcs (>= 1.1.3, < 2.0)
12
- rspec-mocks (2.14.4)
13
+ rspec-mocks (2.99.0)
13
14
 
14
15
  PLATFORMS
15
16
  ruby
16
17
 
17
18
  DEPENDENCIES
18
19
  rake
19
- rspec (~> 2.14)
20
+ rspec (~> 2.99)
@@ -0,0 +1,7 @@
1
+ module NyanCatFormat
2
+ module Helpers
3
+ def rspec_3_or_greater?
4
+ Gem::Version.new(RSpec::Core::Version::STRING).release >= Gem::Version.new('3.0.0')
5
+ end
6
+ end
7
+ end
@@ -1,6 +1,6 @@
1
1
  module NyanCatFormat
2
2
  module Music
3
-
3
+
4
4
  MUSIC_LENGTH = 27.06 # seconds
5
5
 
6
6
  def osx?
@@ -59,11 +59,11 @@ module NyanCatFormat
59
59
  end
60
60
  end
61
61
 
62
- def dump_summary(duration, example_count, failure_count, pending_count)
62
+ def dump_summary(*args)
63
63
  kill_music
64
64
  super
65
65
  end
66
-
66
+
67
67
  private
68
68
 
69
69
  def play_on_linux
@@ -9,10 +9,25 @@ module NyanCat
9
9
  ERROR = '!'
10
10
  PENDING = '+'
11
11
 
12
+ VT100_CODES =
13
+ {
14
+ :black => 30,
15
+ :red => 31,
16
+ :green => 32,
17
+ :yellow => 33,
18
+ :blue => 34,
19
+ :magenta => 35,
20
+ :cyan => 36,
21
+ :white => 37,
22
+ :bold => 1,
23
+ }
24
+
25
+ VT100_CODE_VALUES = VT100_CODES.invert
26
+
12
27
  def self.included(base)
13
28
  base.class_eval do
14
29
  attr_reader :current, :example_results, :color_index, :pending_count, :failure_count,
15
- :example_count
30
+ :example_count
16
31
  end
17
32
  end
18
33
 
@@ -48,7 +63,7 @@ module NyanCat
48
63
  def dump_progress
49
64
  output.print(progress_lines.join("\n") + eol)
50
65
  end
51
-
66
+
52
67
  def progress_lines
53
68
  padding = @example_count.to_s.length * 2 + 2
54
69
  [
@@ -131,15 +146,15 @@ module NyanCat
131
146
  # @return [Array] Nyan cats
132
147
  def ascii_cat(o = '^')
133
148
  [[ "_,------, ",
134
- "_| /\\_/\\ ",
135
- "~|_( #{o} .#{o}) ",
136
- " \"\" \"\" "
137
- ],
138
- [ "_,------, ",
139
- "_| /\\_/\\",
140
- "^|__( #{o} .#{o}) ",
141
- " \" \" \" \""
142
- ]]
149
+ "_| /\\_/\\ ",
150
+ "~|_( #{o} .#{o}) ",
151
+ " \"\" \"\" "
152
+ ],
153
+ [ "_,------, ",
154
+ "_| /\\_/\\",
155
+ "^|__( #{o} .#{o}) ",
156
+ " \" \" \" \""
157
+ ]]
143
158
  end
144
159
 
145
160
  # Colorizes the string with raindow colors of the rainbow
@@ -214,5 +229,36 @@ module NyanCat
214
229
  def cat_length
215
230
  nyan_cat.split("\n").group_by(&:size).max.first
216
231
  end
232
+
233
+ def success_color(text)
234
+ wrap(text, :success)
235
+ end
236
+
237
+ def pending_color(text)
238
+ wrap(text, :pending)
239
+ end
240
+
241
+ def failure_color(text)
242
+ wrap(text, :failure)
243
+ end
244
+
245
+ def console_code_for(code_or_symbol)
246
+ if VT100_CODE_VALUES.has_key?(code_or_symbol)
247
+ code_or_symbol
248
+ else
249
+ VT100_CODES.fetch(code_or_symbol) do
250
+ console_code_for(:white)
251
+ end
252
+ end
253
+ end
254
+
255
+ def wrap(text, code_or_symbol)
256
+ if RSpec.configuration.color_enabled?
257
+ "\e[#{console_code_for(code_or_symbol)}m#{text}\e[0m"
258
+ else
259
+ text
260
+ end
261
+ end
262
+
217
263
  end
218
264
  end
@@ -11,6 +11,8 @@ class RSpec3 < RSpec::Core::Formatters::BaseTextFormatter
11
11
 
12
12
  def initialize(output)
13
13
  super(output)
14
+ @failure_count = 0
15
+ @pending_count = 0
14
16
  end
15
17
 
16
18
  def start(notification)
@@ -37,25 +39,11 @@ class RSpec3 < RSpec::Core::Formatters::BaseTextFormatter
37
39
  end
38
40
 
39
41
  def example_pending(notification)
40
- if notification.respond_to?(:example)
41
- super(notification)
42
- else
43
- super(OpenStruct.new(:example => notification))
44
- end
45
-
46
42
  @pending_count += 1
47
-
48
43
  tick PENDING
49
44
  end
50
45
 
51
46
  def example_failed(notification)
52
- # TODO: Lazy fix for specs
53
- if notification.respond_to?(:example)
54
- super(notification)
55
- else
56
- super(OpenStruct.new(:example => notification))
57
- end
58
-
59
47
  @failure_count += 1
60
48
  tick FAIL
61
49
  end
@@ -67,10 +55,9 @@ class RSpec3 < RSpec::Core::Formatters::BaseTextFormatter
67
55
  def dump_summary(notification)
68
56
  duration = notification.duration
69
57
  failure_count = notification.failure_count
70
- dump_profile if profile_examples? && failure_count == 0
71
58
  summary = "\nYou've Nyaned for #{format_duration(duration)}\n".split(//).map { |c| rainbowify(c) }
72
59
  output.puts summary.join
73
- output.puts colorise_summary(notification)
60
+ output.puts notification.fully_formatted
74
61
  if respond_to?(:dump_commands_to_rerun_failed_examples)
75
62
  dump_commands_to_rerun_failed_examples
76
63
  end
@@ -1,7 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'nyan_cat_formatter'
3
3
  require 'nyan_cat_format/music'
4
+ require 'nyan_cat_format/helpers'
4
5
 
5
6
  NyanCatMusicFormatter = Class.new(NyanCatFormatter) do
7
+ extend NyanCatFormat::Helpers
6
8
  include NyanCatFormat::Music
9
+
10
+ RSpec::Core::Formatters.register(self, :example_passed, :example_pending,
11
+ :example_failed, :start_dump, :start) if rspec_3_or_greater?
7
12
  end
@@ -1,7 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'nyan_cat_formatter'
3
3
  require 'nyan_cat_format/verbose'
4
+ require 'nyan_cat_format/helpers'
4
5
 
5
6
  NyanCatVerboseFormatter = Class.new(NyanCatFormatter) do
7
+ extend NyanCatFormat::Helpers
6
8
  include NyanCatFormat::Verbose
9
+
10
+ RSpec::Core::Formatters.register(self, :example_passed, :example_pending,
11
+ :example_failed, :start_dump, :start) if rspec_3_or_greater?
7
12
  end
@@ -1,12 +1,12 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'nyan_cat_formatter'
3
3
  require 'nyan_cat_format/wide'
4
+ require 'nyan_cat_format/helpers'
4
5
 
5
6
  NyanCatWideFormatter = Class.new(NyanCatFormatter) do
7
+ extend NyanCatFormat::Helpers
6
8
  include NyanCatFormat::Wide
7
9
 
8
- rspec_3_or_greater = Gem::Version.new(RSpec::Core::Version::STRING).release >= Gem::Version.new('3.0.0')
9
-
10
10
  RSpec::Core::Formatters.register(self, :example_passed, :example_pending,
11
- :example_failed, :start_dump, :start) if rspec_3_or_greater
11
+ :example_failed, :start_dump, :start) if rspec_3_or_greater?
12
12
  end
@@ -1,9 +1,14 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  require 'nyan_cat_formatter'
3
+ require 'nyan_cat_format/helpers'
3
4
  require 'nyan_cat_format/wide'
4
5
  require 'nyan_cat_format/music'
5
6
 
6
7
  NyanCatWideMusicFormatter = Class.new(NyanCatFormatter) do
8
+ extend NyanCatFormat::Helpers
7
9
  include NyanCatFormat::Wide
8
10
  include NyanCatFormat::Music
11
+
12
+ RSpec::Core::Formatters.register(self, :example_passed, :example_pending,
13
+ :example_failed, :start_dump, :start) if rspec_3_or_greater?
9
14
  end
@@ -2,7 +2,7 @@ $:.push File.expand_path("../lib", __FILE__)
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "nyan-cat-formatter"
5
- s.version = "0.7.0"
5
+ s.version = "0.8.0"
6
6
  s.authors = ["Matt Sears"]
7
7
  s.email = ["matt@mattsears.com"]
8
8
  s.homepage = "https://github.com/mattsears/nyan-cat-formatter"
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
16
16
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
17
17
  s.require_paths = ["lib"]
18
18
 
19
- s.add_dependency "rspec", ">= 2.14.2", ">= 2.99.0.beta1", "< 4"
19
+ s.add_dependency "rspec", ">= 2.14.2", ">= 2.99", "< 4"
20
20
 
21
21
  s.add_development_dependency "rake"
22
22
  end
@@ -68,12 +68,8 @@ describe NyanCatMusicFormatter do
68
68
  before { formatter.platform = 'linux'}
69
69
  it 'plays the song for linux too' do
70
70
  formatter.start 10
71
- expect {
72
- mock_kernel.seen.any? { |entry| entry. end_with? "mpg321 #{path_to_mp3} &>/dev/null &" }
73
- }.to be
74
- expect {
75
- mock_kernel.seen.any? { |entry| entry. end_with? "mpg123 #{path_to_mp3} &>/dev/null &" }
76
- }.to be
71
+ expect(mock_kernel.seen.any? { |entry| entry. end_with? "mpg321 #{path_to_mp3} &>/dev/null &" }).to be
72
+ expect(mock_kernel.seen.any? { |entry| entry. end_with? "mpg123 #{path_to_mp3} &>/dev/null &" }).to be
77
73
  end
78
74
  end
79
75
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nyan-cat-formatter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-05-31 00:00:00.000000000 Z
12
+ date: 2014-06-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: 2.14.2
22
22
  - - ! '>='
23
23
  - !ruby/object:Gem::Version
24
- version: 2.99.0.beta1
24
+ version: '2.99'
25
25
  - - <
26
26
  - !ruby/object:Gem::Version
27
27
  version: '4'
@@ -35,7 +35,7 @@ dependencies:
35
35
  version: 2.14.2
36
36
  - - ! '>='
37
37
  - !ruby/object:Gem::Version
38
- version: 2.99.0.beta1
38
+ version: '2.99'
39
39
  - - <
40
40
  - !ruby/object:Gem::Version
41
41
  version: '4'
@@ -77,6 +77,7 @@ files:
77
77
  - gemfiles/rspec1.lock
78
78
  - gemfiles/rspec2
79
79
  - gemfiles/rspec2.lock
80
+ - lib/nyan_cat_format/helpers.rb
80
81
  - lib/nyan_cat_format/music.rb
81
82
  - lib/nyan_cat_format/verbose.rb
82
83
  - lib/nyan_cat_format/wide.rb