rake-performance 0.1.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.
@@ -0,0 +1 @@
1
+ require 'autotest/growl'
data/.rspec ADDED
@@ -0,0 +1,2 @@
1
+ --color
2
+ --format nested
@@ -0,0 +1,13 @@
1
+ require 'jeweler'
2
+ Jeweler::Tasks.new do |gem|
3
+ gem.name = "rake-performance"
4
+ gem.summary = %{Hooks into the rake task and display performance times}
5
+ gem.description = %{Hooks into the rake task and display performance times}
6
+ gem.email = "andrew.vos@gmail.com"
7
+ gem.homepage = "http://github.com/AndrewVos/rake-performance"
8
+ gem.authors = "Andrew Vos"
9
+ gem.add_development_dependency "rspec"
10
+ gem.add_development_dependency "rake"
11
+ end
12
+
13
+ Jeweler::RubygemsDotOrgTasks.new
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 0.1.0
@@ -0,0 +1 @@
1
+ Autotest.add_discovery { "rspec2" }
@@ -0,0 +1,16 @@
1
+ require_relative 'time_helper'
2
+
3
+ module Rake
4
+ class Task
5
+ alias :old_invoke :invoke
6
+
7
+ def invoke(*args)
8
+ start_time = Time.now
9
+ puts "Task '#{@name}' started at #{start_time}"
10
+ old_invoke(args)
11
+ end_time = Time.now
12
+ puts "Task '#{@name}' ended at #{end_time}"
13
+ puts "Total time taken: #{TimeHelper.time_difference(start_time, end_time)}"
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,15 @@
1
+ class TimeHelper
2
+ class << self
3
+ def time_difference(a, b)
4
+ a, b = b, a if a < b
5
+ difference = Integer(a - b)
6
+ seconds = difference % 60
7
+ difference = (difference - seconds) / 60
8
+ minutes = difference % 60
9
+ difference = (difference - minutes) / 60
10
+ hours = difference % 24
11
+ result = [hours, minutes, seconds].map { |value| value.to_s.rjust(2, "0") }
12
+ result.join(":")
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,52 @@
1
+ # Generated by jeweler
2
+ # DO NOT EDIT THIS FILE DIRECTLY
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
+ # -*- encoding: utf-8 -*-
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = %q{rake-performance}
8
+ s.version = "0.1.0"
9
+
10
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
+ s.authors = ["Andrew Vos"]
12
+ s.date = %q{2011-01-30}
13
+ s.description = %q{Hooks into the rake task and display performance times}
14
+ s.email = %q{andrew.vos@gmail.com}
15
+ s.files = [
16
+ ".autotest",
17
+ ".rspec",
18
+ "Rakefile",
19
+ "VERSION",
20
+ "autotest/discover.rb",
21
+ "lib/rake_performance.rb",
22
+ "lib/time_helper.rb",
23
+ "rake-performance.gemspec",
24
+ "spec/rake_performance_spec.rb",
25
+ "spec/time_helper_spec.rb"
26
+ ]
27
+ s.homepage = %q{http://github.com/AndrewVos/rake-performance}
28
+ s.require_paths = ["lib"]
29
+ s.rubygems_version = %q{1.3.7}
30
+ s.summary = %q{Hooks into the rake task and display performance times}
31
+ s.test_files = [
32
+ "spec/rake_performance_spec.rb",
33
+ "spec/time_helper_spec.rb"
34
+ ]
35
+
36
+ if s.respond_to? :specification_version then
37
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
38
+ s.specification_version = 3
39
+
40
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
41
+ s.add_development_dependency(%q<rspec>, [">= 0"])
42
+ s.add_development_dependency(%q<rake>, [">= 0"])
43
+ else
44
+ s.add_dependency(%q<rspec>, [">= 0"])
45
+ s.add_dependency(%q<rake>, [">= 0"])
46
+ end
47
+ else
48
+ s.add_dependency(%q<rspec>, [">= 0"])
49
+ s.add_dependency(%q<rake>, [">= 0"])
50
+ end
51
+ end
52
+
@@ -0,0 +1,35 @@
1
+ require 'rake'
2
+ require 'rspec'
3
+ require 'stringio'
4
+ require File.join(File.dirname(__FILE__), "..", "lib", "rake_performance")
5
+
6
+ task :do_something_useful do
7
+ puts 'This is a rake task!'
8
+ end
9
+
10
+ describe "rake-performance" do
11
+ before :each do
12
+ task = Rake::Task[:do_something_useful]
13
+ Time.stub(:now).and_return Time.new(1983, 10, 23, 10, 10, 23), Time.new(1983, 10, 23, 11, 11, 28)
14
+ $stdout = StringIO.new
15
+ task.invoke
16
+ @output = $stdout.string
17
+ task.reenable
18
+ end
19
+
20
+ it "displays the task start time" do
21
+ @output.should include "Task \'do_something_useful\' started at 1983-10-23 10:10:23"
22
+ end
23
+
24
+ it "displays the task end time" do
25
+ @output.should include "Task \'do_something_useful\' ended at 1983-10-23 11:11:28"
26
+ end
27
+
28
+ it "displays a the total time taken" do
29
+ @output.should include "Total time taken: 01:01:05"
30
+ end
31
+
32
+ it "invokes the task" do
33
+ @output.should include "This is a rake task!"
34
+ end
35
+ end
@@ -0,0 +1,31 @@
1
+ require File.join(File.dirname(__FILE__), "..", "lib", "time_helper")
2
+
3
+ describe TimeHelper do
4
+ describe ".time_difference" do
5
+ def test_time_difference(time1, time2, expected_result)
6
+ time1 = Time.new(1983, 10, 23, time1[0], time1[1], time1[2])
7
+ time2 = Time.new(1983, 10, 23, time2[0], time2[1], time2[2])
8
+ TimeHelper.time_difference(time1, time2).should == expected_result
9
+ end
10
+
11
+ it "displays the time difference for seconds" do
12
+ test_time_difference([10, 10, 20], [10, 10, 40], "00:00:20")
13
+ end
14
+
15
+ it "displays the time difference for minutes" do
16
+ test_time_difference([10, 5, 40], [10, 8, 40], "00:03:00")
17
+ end
18
+
19
+ it "displays the time difference for hours" do
20
+ test_time_difference([5, 0, 0], [8, 0, 0], "03:00:00")
21
+ end
22
+
23
+ it "displays the time difference for hours, minutes and seconds" do
24
+ test_time_difference([1, 1, 1], [4, 5, 6], "03:04:05")
25
+ end
26
+
27
+ it "displays the time difference when the first time is greater than the second time" do
28
+ test_time_difference([4, 5, 6], [1, 1, 1], "03:04:05")
29
+ end
30
+ end
31
+ end
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rake-performance
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Andrew Vos
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2011-01-30 00:00:00 +00:00
18
+ default_executable:
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
21
+ name: rspec
22
+ prerelease: false
23
+ requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ segments:
29
+ - 0
30
+ version: "0"
31
+ type: :development
32
+ version_requirements: *id001
33
+ - !ruby/object:Gem::Dependency
34
+ name: rake
35
+ prerelease: false
36
+ requirement: &id002 !ruby/object:Gem::Requirement
37
+ none: false
38
+ requirements:
39
+ - - ">="
40
+ - !ruby/object:Gem::Version
41
+ segments:
42
+ - 0
43
+ version: "0"
44
+ type: :development
45
+ version_requirements: *id002
46
+ description: Hooks into the rake task and display performance times
47
+ email: andrew.vos@gmail.com
48
+ executables: []
49
+
50
+ extensions: []
51
+
52
+ extra_rdoc_files: []
53
+
54
+ files:
55
+ - .autotest
56
+ - .rspec
57
+ - Rakefile
58
+ - VERSION
59
+ - autotest/discover.rb
60
+ - lib/rake_performance.rb
61
+ - lib/time_helper.rb
62
+ - rake-performance.gemspec
63
+ - spec/rake_performance_spec.rb
64
+ - spec/time_helper_spec.rb
65
+ has_rdoc: true
66
+ homepage: http://github.com/AndrewVos/rake-performance
67
+ licenses: []
68
+
69
+ post_install_message:
70
+ rdoc_options: []
71
+
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ segments:
80
+ - 0
81
+ version: "0"
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ segments:
88
+ - 0
89
+ version: "0"
90
+ requirements: []
91
+
92
+ rubyforge_project:
93
+ rubygems_version: 1.3.7
94
+ signing_key:
95
+ specification_version: 3
96
+ summary: Hooks into the rake task and display performance times
97
+ test_files:
98
+ - spec/rake_performance_spec.rb
99
+ - spec/time_helper_spec.rb