timer 0.1.3 → 0.1.4

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.
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: []