timer 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (6) hide show
  1. data/Rakefile +25 -4
  2. data/VERSION +1 -1
  3. data/lib/timer.rb +9 -27
  4. data/spec/timer_spec.rb +1 -1
  5. data/timer.gemspec +5 -2
  6. metadata +12 -2
data/Rakefile CHANGED
@@ -14,6 +14,7 @@ begin
14
14
  gem.add_development_dependency "progressions-g", ">= 0"
15
15
  gem.add_development_dependency "rspec", ">= 0"
16
16
  gem.add_development_dependency "timecop", ">= 0"
17
+ gem.add_development_dependency "natural_time", ">= 0"
17
18
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
18
19
  end
19
20
  Jeweler::GemcutterTasks.new
@@ -22,8 +23,28 @@ rescue LoadError
22
23
  end
23
24
 
24
25
  require 'spec/rake/spectask'
25
- desc 'run all specs'
26
- Spec::Rake::SpecTask.new do |t|
27
- t.spec_files = FileList['spec/**/*_spec.rb']
28
- t.spec_opts = ['-c']
26
+ Spec::Rake::SpecTask.new(:spec) do |spec|
27
+ spec.libs << 'lib' << 'spec'
28
+ spec.spec_files = FileList['spec/**/*_spec.rb']
29
+ spec.spec_opts = ['-c']
30
+ end
31
+
32
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
33
+ spec.libs << 'lib' << 'spec'
34
+ spec.pattern = 'spec/**/*_spec.rb'
35
+ spec.rcov = true
36
+ end
37
+
38
+ task :spec => :check_dependencies
39
+
40
+ task :default => :spec
41
+
42
+ require 'rake/rdoctask'
43
+ Rake::RDocTask.new do |rdoc|
44
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
45
+
46
+ rdoc.rdoc_dir = 'rdoc'
47
+ rdoc.title = "translator #{version}"
48
+ rdoc.rdoc_files.include('README*')
49
+ rdoc.rdoc_files.include('lib/**/*.rb')
29
50
  end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.3
1
+ 0.1.4
data/lib/timer.rb CHANGED
@@ -1,15 +1,16 @@
1
1
  require 'rubygems'
2
2
  require 'g'
3
+ require 'natural_time'
3
4
 
4
5
  class Timer
5
6
  attr_accessor :title, :growl
6
7
 
8
+ DEFAULT_OPTIONS = { :growl => true }
9
+
7
10
  def initialize(options={})
11
+ options = DEFAULT_OPTIONS.merge(options)
8
12
  @title = options[:title]
9
- @growl = true
10
- if options.has_key?(:growl)
11
- @growl = options[:growl]
12
- end
13
+ @growl = options[:growl]
13
14
  end
14
15
 
15
16
  def time(message="", options={})
@@ -19,10 +20,9 @@ class Timer
19
20
  begin
20
21
  yield
21
22
  rescue StandardError => e
22
- put_elapsed_time(start_time, Time.now, message, current_title)
23
- raise e
24
23
  end
25
24
  put_elapsed_time(start_time, Time.now, message, current_title)
25
+ raise e if e
26
26
  end
27
27
 
28
28
  def growl?
@@ -32,7 +32,7 @@ class Timer
32
32
  private
33
33
 
34
34
  def put_elapsed_time(start_time, end_time, message="", current_title=nil)
35
- elapsed_time = format_time(start_time, end_time)
35
+ elapsed_time = format_time(end_time - start_time)
36
36
 
37
37
  e = ""
38
38
  if message.to_s.strip != ""
@@ -44,26 +44,8 @@ class Timer
44
44
  growl(e, current_title)
45
45
  end
46
46
 
47
- def format_time(start_time, end_time=nil)
48
- end_time ||= Time.now
49
- seconds = end_time - start_time
50
- if seconds > 59
51
- minutes = seconds / 60.0
52
- seconds = (minutes - minutes.to_i) * 60
53
- m = minutes.to_i
54
- s = seconds.to_i
55
-
56
- minutes_msg = m != 1 ? "minutes" : "minute"
57
- elapsed_time = "#{m} #{minutes_msg}"
58
- if s > 0
59
- seconds_msg = s != 1 ? "seconds" : "second"
60
- elapsed_time += ", #{s} #{seconds_msg}"
61
- end
62
- else
63
- s = seconds.to_i != 1 ? "seconds" : "second"
64
- elapsed_time = "#{seconds.to_i} #{s}"
65
- end
66
- elapsed_time
47
+ def format_time(duration)
48
+ NaturalTime.new(duration).to_sentence
67
49
  end
68
50
 
69
51
  def growl(message, current_title)
data/spec/timer_spec.rb CHANGED
@@ -158,7 +158,7 @@ describe "Timer" do
158
158
  end
159
159
 
160
160
  it "should report minutes and seconds" do
161
- @g.should_receive(:notify).with(anything, anything, /Elapsed time: 1 minute, 14 seconds\"\n$/, anything, anything)
161
+ @g.should_receive(:notify).with(anything, anything, /Elapsed time: 1 minute and 14 seconds\"\n$/, anything, anything)
162
162
  @timer.time("hello") do
163
163
  Timecop.freeze(Time.now + 74)
164
164
  end
data/timer.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{timer}
8
- s.version = "0.1.3"
8
+ s.version = "0.1.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jeff Coleman"]
12
- s.date = %q{2010-01-12}
12
+ s.date = %q{2010-01-13}
13
13
  s.description = %q{Simple timer to perform a block and display the elapsed time. Growls message if growl is turned on.}
14
14
  s.email = %q{progressions@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -45,17 +45,20 @@ Gem::Specification.new do |s|
45
45
  s.add_development_dependency(%q<progressions-g>, [">= 0"])
46
46
  s.add_development_dependency(%q<rspec>, [">= 0"])
47
47
  s.add_development_dependency(%q<timecop>, [">= 0"])
48
+ s.add_development_dependency(%q<natural_time>, [">= 0"])
48
49
  else
49
50
  s.add_dependency(%q<ruby-growl>, [">= 0"])
50
51
  s.add_dependency(%q<progressions-g>, [">= 0"])
51
52
  s.add_dependency(%q<rspec>, [">= 0"])
52
53
  s.add_dependency(%q<timecop>, [">= 0"])
54
+ s.add_dependency(%q<natural_time>, [">= 0"])
53
55
  end
54
56
  else
55
57
  s.add_dependency(%q<ruby-growl>, [">= 0"])
56
58
  s.add_dependency(%q<progressions-g>, [">= 0"])
57
59
  s.add_dependency(%q<rspec>, [">= 0"])
58
60
  s.add_dependency(%q<timecop>, [">= 0"])
61
+ s.add_dependency(%q<natural_time>, [">= 0"])
59
62
  end
60
63
  end
61
64
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeff Coleman
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-01-12 00:00:00 -06:00
12
+ date: 2010-01-13 00:00:00 -06:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -52,6 +52,16 @@ dependencies:
52
52
  - !ruby/object:Gem::Version
53
53
  version: "0"
54
54
  version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: natural_time
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
55
65
  description: Simple timer to perform a block and display the elapsed time. Growls message if growl is turned on.
56
66
  email: progressions@gmail.com
57
67
  executables: []