smooth-jazz-nyan-cat-formatter 0.1.1 → 0.1.3
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.
- data/README.md +1 -1
- data/demo.rb +2 -2
- data/lib/nyan_cat_formatter.rb +5 -4
- data/lib/nyan_cat_formatter/padded_string_io.rb +5 -7
- data/lib/nyan_cat_formatter/rspec1.rb +1 -1
- data/lib/nyan_cat_formatter/rspec2.rb +1 -22
- data/lib/nyan_cat_music_formatter.rb +15 -2
- data/nyan-cat-formatter.gemspec +1 -1
- data/spec/nyan_cat_music_formatter_spec.rb +1 -0
- data/spec/padded_string_io_spec.rb +11 -0
- metadata +4 -2
data/README.md
CHANGED
@@ -73,7 +73,7 @@ Make sure your .rspec file in your application's root directory contains the fol
|
|
73
73
|
|
74
74
|
Then run `rspec spec` and enjoy Nyan Cat formatted text output accompanied by the Nyan Cat song by default!
|
75
75
|
|
76
|
-
**This currently only works on Mac OS X or on Linux (if you have mpg321 installed).**
|
76
|
+
**This currently only works on Mac OS X or on Linux (if you have mpg321 or mpg123 installed).**
|
77
77
|
|
78
78
|
Contributing
|
79
79
|
----------
|
data/demo.rb
CHANGED
@@ -9,8 +9,8 @@ describe NyanCatFormatter do
|
|
9
9
|
@formatter.start(2)
|
10
10
|
@example = RSpec::Core::ExampleGroup.describe.example
|
11
11
|
|
12
|
-
@samples = [0,0,0,0,0,0,0,0,0,0,0,1,
|
13
|
-
0]
|
12
|
+
@samples = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
|
13
|
+
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
|
14
14
|
|
15
15
|
sleep(0.1) # Just to slow it down a little :-)
|
16
16
|
end
|
data/lib/nyan_cat_formatter.rb
CHANGED
@@ -29,7 +29,7 @@ NyanCatFormatter = Class.new(parent_class) do
|
|
29
29
|
:failure_count, :example_count
|
30
30
|
|
31
31
|
def initialize(args)
|
32
|
-
super PaddedStringIO.new
|
32
|
+
super PaddedStringIO.new
|
33
33
|
end
|
34
34
|
|
35
35
|
# Increments the example count and displays the current progress
|
@@ -76,8 +76,9 @@ NyanCatFormatter = Class.new(parent_class) do
|
|
76
76
|
# @return [String]
|
77
77
|
def eol
|
78
78
|
return "\n" if @current == @example_count
|
79
|
-
|
80
|
-
|
79
|
+
number_of_lines = (nyan_cat.split("\n").length - 1)
|
80
|
+
move_cursor_up = "\e[1A"
|
81
|
+
number_of_lines > 0 ? format(move_cursor_up * number_of_lines + "\r") : "\r"
|
81
82
|
end
|
82
83
|
|
83
84
|
# Calculates the current flight length
|
@@ -96,7 +97,7 @@ NyanCatFormatter = Class.new(parent_class) do
|
|
96
97
|
if defined? JRUBY_VERSION
|
97
98
|
default_width = 80
|
98
99
|
else
|
99
|
-
default_width = `stty size`.split.
|
100
|
+
default_width = `stty size`.split[-1].to_i - 1
|
100
101
|
end
|
101
102
|
@terminal_width ||= default_width
|
102
103
|
end
|
@@ -1,19 +1,17 @@
|
|
1
1
|
class PaddedStringIO
|
2
|
-
def initialize
|
2
|
+
def initialize
|
3
3
|
@output = $stdout
|
4
|
-
@terminal_size = terminal_size
|
5
4
|
end
|
6
|
-
|
5
|
+
|
7
6
|
def puts(output_strings = '')
|
8
7
|
unless output_strings.is_a?(Array)
|
9
8
|
output_strings = [output_strings]
|
10
9
|
end
|
11
|
-
output_strings.each do |output_string|
|
12
|
-
@output.puts output_string
|
13
|
-
# super 'foo'
|
10
|
+
output_strings.each do |output_string|
|
11
|
+
@output.puts output_string + "\e[0K"
|
14
12
|
end
|
15
13
|
end
|
16
|
-
|
14
|
+
|
17
15
|
def method_missing(*args)
|
18
16
|
@output.send(*args)
|
19
17
|
end
|
@@ -43,7 +43,7 @@ module RSpec1
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def dump_summary(duration, example_count, failure_count, pending_count)
|
46
|
-
NyanCatMusicFormatter.new(NyanCatFormatter).kill_music if NyanCatMusicFormatter
|
46
|
+
NyanCatMusicFormatter.new(NyanCatFormatter).kill_music if defined?(NyanCatMusicFormatter)
|
47
47
|
@output.puts "\nYou've Nyaned for #{format_duration(duration)}\n".each_char.map {|c| rainbowify(c)}.join
|
48
48
|
summary = "#{example_count} example#{'s' unless example_count == 1}, #{failure_count} failure#{'s' unless failure_count == 1}"
|
49
49
|
summary << ", #{pending_count} pending" if pending_count > 0
|
@@ -35,7 +35,7 @@ module RSpec2
|
|
35
35
|
end
|
36
36
|
|
37
37
|
def dump_summary(duration, example_count, failure_count, pending_count)
|
38
|
-
NyanCatMusicFormatter.new(NyanCatFormatter).kill_music if NyanCatMusicFormatter
|
38
|
+
NyanCatMusicFormatter.new(NyanCatFormatter).kill_music if defined?(NyanCatMusicFormatter)
|
39
39
|
dump_profile if profile_examples? && failure_count == 0
|
40
40
|
summary = "\nYou've Nyaned for #{format_duration(duration)}\n".split(//).map { |c| rainbowify(c) }
|
41
41
|
output.puts summary.join
|
@@ -49,24 +49,3 @@ module RSpec2
|
|
49
49
|
@instafail ||= RSpec::Instafail.new(output)
|
50
50
|
end
|
51
51
|
end
|
52
|
-
|
53
|
-
=begin
|
54
|
-
module RSpec
|
55
|
-
module Core
|
56
|
-
module Formatters
|
57
|
-
class BaseTextFormatter < BaseFormatter
|
58
|
-
def dump_failure(example, index)
|
59
|
-
output.puts "#{short_padding}#{index.next}) #{example.full_description} "
|
60
|
-
exception = example.execution_result[:exception]
|
61
|
-
output.puts "#{long_padding}#{red("Failure/Error:")} #{red(read_failed_line(exception, example).strip)} "
|
62
|
-
output.puts "#{long_padding}#{red(exception.class.name << ":")} " unless exception.class.name =~ /RSpec/
|
63
|
-
exception.message.to_s.split("\n").each { |line| output.puts "#{long_padding} #{red(line)} " } if exception.message
|
64
|
-
if shared_group = find_shared_group(example)
|
65
|
-
dump_shared_failure_info(shared_group)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|
70
|
-
end
|
71
|
-
end
|
72
|
-
=end
|
@@ -33,13 +33,26 @@ class NyanCatMusicFormatter < NyanCatFormatter
|
|
33
33
|
def start input
|
34
34
|
super
|
35
35
|
kernel.system("afplay #{nyan_mp3} &") if osx?
|
36
|
-
|
36
|
+
play_on_linux if linux?
|
37
37
|
end
|
38
38
|
|
39
39
|
def kill_music
|
40
40
|
if File.exists? nyan_mp3
|
41
41
|
system("killall -9 afplay &>/dev/null") if osx?
|
42
|
-
|
42
|
+
kill_music_on_linux if linux?
|
43
43
|
end
|
44
44
|
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
def play_on_linux
|
49
|
+
kernel.system("[ -e #{nyan_mp3} ] && type mpg321 &>/dev/null && mpg321 #{nyan_mp3} &>/dev/null &") if kernel.system('which mpg321 &>/dev/null && type mpg321 &>/dev/null')
|
50
|
+
kernel.system("[ -e #{nyan_mp3} ] && type mpg123 &>/dev/null && mpg123 #{nyan_mp3} &>/dev/null &") if kernel.system('which mpg123 &>/dev/null && type mpg123 &>/dev/null')
|
51
|
+
end
|
52
|
+
|
53
|
+
def kill_music_on_linux
|
54
|
+
system("killall -9 mpg321 &>/dev/null") if kernel.system("which mpg321 &>/dev/null && type mpg321 &>/dev/null")
|
55
|
+
system("killall -9 mpg123 &>/dev/null") if kernel.system("which mpg123 &>/dev/null && type mpg123 &>/dev/null")
|
56
|
+
end
|
57
|
+
|
45
58
|
end
|
data/nyan-cat-formatter.gemspec
CHANGED
@@ -2,7 +2,7 @@ $:.push File.expand_path("../lib", __FILE__)
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = "smooth-jazz-nyan-cat-formatter"
|
5
|
-
s.version = "0.1.
|
5
|
+
s.version = "0.1.3"
|
6
6
|
s.authors = ["Ryan Spore"]
|
7
7
|
s.email = ["ry@nspore.com"]
|
8
8
|
s.summary = %q{Nyan Cat inspired RSpec formatter! Now with more Jazz! }
|
@@ -59,6 +59,7 @@ describe NyanCatMusicFormatter do
|
|
59
59
|
it 'plays the song for linux too' do
|
60
60
|
formatter.start 10
|
61
61
|
mock_kernel.seen.any? { |entry| entry. end_with? "mpg321 #{path_to_mp3} &>/dev/null &" }.should be
|
62
|
+
mock_kernel.seen.any? { |entry| entry. end_with? "mpg123 #{path_to_mp3} &>/dev/null &" }.should be
|
62
63
|
end
|
63
64
|
end
|
64
65
|
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe PaddedStringIO do
|
4
|
+
let(:subject) { PaddedStringIO.new }
|
5
|
+
|
6
|
+
it 'every puts clears the line to the right so no cat parts show up' do
|
7
|
+
arg = "this is a test string"
|
8
|
+
$stdout.should_receive(:puts).with(arg + "\e[0K")
|
9
|
+
subject.puts(arg)
|
10
|
+
end
|
11
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smooth-jazz-nyan-cat-formatter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
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:
|
12
|
+
date: 2013-02-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -89,6 +89,7 @@ files:
|
|
89
89
|
- nyan-cat-formatter.gemspec
|
90
90
|
- spec/nyan_cat_formatter_spec.rb
|
91
91
|
- spec/nyan_cat_music_formatter_spec.rb
|
92
|
+
- spec/padded_string_io_spec.rb
|
92
93
|
- spec/smooth_jazz_nyan_cat_formatter_spec.rb
|
93
94
|
- spec/smooth_jazz_nyan_cat_music_formatter_spec.rb
|
94
95
|
- spec/spec_helper.rb
|
@@ -119,6 +120,7 @@ summary: Nyan Cat inspired RSpec formatter! Now with more Jazz!
|
|
119
120
|
test_files:
|
120
121
|
- spec/nyan_cat_formatter_spec.rb
|
121
122
|
- spec/nyan_cat_music_formatter_spec.rb
|
123
|
+
- spec/padded_string_io_spec.rb
|
122
124
|
- spec/smooth_jazz_nyan_cat_formatter_spec.rb
|
123
125
|
- spec/smooth_jazz_nyan_cat_music_formatter_spec.rb
|
124
126
|
- spec/spec_helper.rb
|