nyan-cat-formatter 0.0.8.1 → 0.0.9

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.
@@ -171,5 +171,19 @@ NyanCatFormatter = Class.new(parent_class) do
171
171
  else mark
172
172
  end
173
173
  end
174
+
175
+ # Converts a float of seconds into a minutes/seconds string
176
+ #
177
+ # @return [String]
178
+ def format_duration(duration)
179
+ seconds = ((duration % 60) * 100.0).round / 100.0 # 1.8.7 safe .round(2)
180
+ seconds = seconds.to_i if seconds.to_i == seconds # drop that zero if it's not needed
181
+
182
+ message = "#{seconds} second#{seconds == 1 ? "" : "s"}"
183
+ message = "#{(duration / 60).to_i} minute#{(duration / 60).to_i == 1 ? "" : "s"} and " + message if duration >= 60
184
+
185
+ message
186
+ end
187
+
174
188
  end
175
189
 
@@ -41,7 +41,7 @@ module RSpec1
41
41
 
42
42
  def dump_summary(duration, example_count, failure_count, pending_count)
43
43
  system("killall -9 afplay") if File.exists?(File.expand_path("~/.nyan-cat.mp3")) && RUBY_PLATFORM.downcase.include?("darwin")
44
- @output.puts "\nYou've Nyaned for #{duration} seconds\n".each_char.map {|c| rainbowify(c)}.join
44
+ @output.puts "\nYou've Nyaned for #{format_duration(duration)}\n".each_char.map {|c| rainbowify(c)}.join
45
45
  summary = "#{example_count} example#{'s' unless example_count == 1}, #{failure_count} failure#{'s' unless failure_count == 1}"
46
46
  summary << ", #{pending_count} pending" if pending_count > 0
47
47
 
@@ -31,7 +31,7 @@ module RSpec2
31
31
  mp3_file = File.expand_path( File.join( File.dirname(__FILE__), "../../data/nyan-cat.mp3"))
32
32
  system("killall -9 afplay") if File.exists?(mp3_file) && RUBY_PLATFORM.downcase.include?("darwin")
33
33
  dump_profile if profile_examples? && failure_count == 0
34
- summary = "\nYou've Nyaned for #{format_seconds(duration)} seconds\n".split(//).map { |c| rainbowify(c) }
34
+ summary = "\nYou've Nyaned for #{format_duration(duration)}\n".split(//).map { |c| rainbowify(c) }
35
35
  output.puts summary.join
36
36
  output.puts colorise_summary(summary_line(example_count, failure_count, pending_count))
37
37
  if respond_to?(:dump_commands_to_rerun_failed_examples)
@@ -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.0.8.1"
5
+ s.version = "0.0.9"
6
6
  s.authors = ["Matt Sears"]
7
7
  s.email = ["matt@mattsears.com"]
8
8
  s.homepage = "http://mtts.rs/nyancat"
@@ -151,4 +151,25 @@ describe NyanCatFormatter do
151
151
 
152
152
  end
153
153
 
154
+ describe "#format_duration" do
155
+ it "should return just seconds for sub 60 seconds" do
156
+ @formatter.format_duration(5.3).should eq("5.3 seconds")
157
+ end
158
+
159
+ it "should remove that extra zero if it is not needed" do
160
+ @formatter.format_duration(1.0).should eq("1 second")
161
+ end
162
+
163
+ it "should plurlaize seconds" do
164
+ @formatter.format_duration(1.1).should eq("1.1 seconds")
165
+ end
166
+
167
+ it "add a minute if it is just over 60 seconds" do
168
+ @formatter.format_duration(63.2543456456).should eq("1 minute and 3.25 seconds")
169
+ end
170
+
171
+ it "should pluralize minutes" do
172
+ @formatter.format_duration(987.34).should eq("16 minutes and 27.34 seconds")
173
+ end
174
+ end
154
175
  end
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.0.8.1
4
+ version: 0.0.9
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: 2012-08-19 00:00:00.000000000 Z
12
+ date: 2012-08-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake