chronic_duration 0.9.2 → 0.9.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/Gemfile ADDED
@@ -0,0 +1,8 @@
1
+ source "http://rubygems.org"
2
+
3
+ group :development do
4
+ gem "rspec", "~> 2.3.0"
5
+ gem "bundler", "~> 1.0.0"
6
+ gem "jeweler", "~> 1.5.2"
7
+ gem "rcov", ">= 0"
8
+ end
@@ -0,0 +1,28 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.1.2)
5
+ git (1.2.5)
6
+ jeweler (1.5.2)
7
+ bundler (~> 1.0.0)
8
+ git (>= 1.2.5)
9
+ rake
10
+ rake (0.8.7)
11
+ rcov (0.9.9)
12
+ rspec (2.3.0)
13
+ rspec-core (~> 2.3.0)
14
+ rspec-expectations (~> 2.3.0)
15
+ rspec-mocks (~> 2.3.0)
16
+ rspec-core (2.3.1)
17
+ rspec-expectations (2.3.0)
18
+ diff-lcs (~> 1.1.2)
19
+ rspec-mocks (2.3.0)
20
+
21
+ PLATFORMS
22
+ ruby
23
+
24
+ DEPENDENCIES
25
+ bundler (~> 1.0.0)
26
+ jeweler (~> 1.5.2)
27
+ rcov
28
+ rspec (~> 2.3.0)
data/Rakefile CHANGED
@@ -1,46 +1,42 @@
1
1
  require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
2
10
  require 'rake'
3
11
 
4
- begin
5
- require 'jeweler'
6
- Jeweler::Tasks.new do |gem|
7
- gem.name = "chronic_duration"
8
- gem.summary = %Q{A Ruby natural language parser for elapsed time}
9
- gem.description = %Q{A simple Ruby natural language parser for elapsed time. (For example, 4 hours and 30 minutes, 6 minutes 4 seconds, 3 days, etc.) Returns all results in seconds. Will return an integer unless you get tricky and need a float. (4 minutes and 13.47 seconds, for example.) The reverse can also be performed via the output method.}
10
- gem.email = "hpoydar@gmail.com"
11
- gem.homepage = "http://github.com/hpoydar/chronic_duration"
12
- gem.authors = ["hpoydar"]
13
- gem.add_development_dependency "rspec"
14
- # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
15
- end
16
- Jeweler::GemcutterTasks.new
17
- rescue LoadError
18
- puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
12
+ require 'jeweler'
13
+ Jeweler::Tasks.new do |gem|
14
+ gem.name = "chronic_duration"
15
+ gem.summary = %Q{A Ruby natural language parser for elapsed time}
16
+ gem.license = "MIT"
17
+ gem.description = %Q{A simple Ruby natural language parser for elapsed time. (For example, 4 hours and 30 minutes, 6 minutes 4 seconds, 3 days, etc.) Returns all results in seconds. Will return an integer unless you get tricky and need a float. (4 minutes and 13.47 seconds, for example.) The reverse can also be performed via the output method.}
18
+ gem.email = "hpoydar@gmail.com"
19
+ gem.homepage = "http://github.com/hpoydar/chronic_duration"
20
+ gem.authors = ["hpoydar"]
19
21
  end
22
+ Jeweler::RubygemsDotOrgTasks.new
20
23
 
21
- require 'spec/rake/spectask'
22
- Spec::Rake::SpecTask.new(:spec) do |spec|
23
- spec.libs << 'lib' << 'spec'
24
- spec.spec_files = FileList['spec/**/*_spec.rb']
24
+ require 'rspec/core'
25
+ require 'rspec/core/rake_task'
26
+ RSpec::Core::RakeTask.new(:spec) do |spec|
27
+ spec.pattern = FileList['spec/**/*_spec.rb']
25
28
  end
26
29
 
27
- Spec::Rake::SpecTask.new(:rcov) do |spec|
28
- spec.libs << 'lib' << 'spec'
30
+ RSpec::Core::RakeTask.new(:rcov) do |spec|
29
31
  spec.pattern = 'spec/**/*_spec.rb'
30
32
  spec.rcov = true
31
33
  end
32
34
 
33
- task :spec => :check_dependencies
34
-
35
35
  task :default => :spec
36
36
 
37
37
  require 'rake/rdoctask'
38
38
  Rake::RDocTask.new do |rdoc|
39
- if File.exist?('VERSION')
40
- version = File.read('VERSION')
41
- else
42
- version = ""
43
- end
39
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
44
40
 
45
41
  rdoc.rdoc_dir = 'rdoc'
46
42
  rdoc.title = "chronic_duration #{version}"
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.2
1
+ 0.9.3
@@ -1,33 +1,34 @@
1
1
  # Generated by jeweler
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
3
+ # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{chronic_duration}
8
- s.version = "0.9.2"
8
+ s.version = "0.9.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["hpoydar"]
12
- s.date = %q{2010-08-30}
12
+ s.date = %q{2011-03-29}
13
13
  s.description = %q{A simple Ruby natural language parser for elapsed time. (For example, 4 hours and 30 minutes, 6 minutes 4 seconds, 3 days, etc.) Returns all results in seconds. Will return an integer unless you get tricky and need a float. (4 minutes and 13.47 seconds, for example.) The reverse can also be performed via the output method.}
14
14
  s.email = %q{hpoydar@gmail.com}
15
15
  s.extra_rdoc_files = [
16
16
  "README.rdoc"
17
17
  ]
18
18
  s.files = [
19
- ".gitignore",
20
- "MIT-LICENSE",
21
- "README.rdoc",
22
- "Rakefile",
23
- "VERSION",
24
- "chronic_duration.gemspec",
25
- "lib/chronic_duration.rb",
26
- "lib/numerizer.rb",
27
- "spec/chronic_duration_spec.rb"
19
+ "Gemfile",
20
+ "Gemfile.lock",
21
+ "MIT-LICENSE",
22
+ "README.rdoc",
23
+ "Rakefile",
24
+ "VERSION",
25
+ "chronic_duration.gemspec",
26
+ "lib/chronic_duration.rb",
27
+ "lib/numerizer.rb",
28
+ "spec/chronic_duration_spec.rb"
28
29
  ]
29
30
  s.homepage = %q{http://github.com/hpoydar/chronic_duration}
30
- s.rdoc_options = ["--charset=UTF-8"]
31
+ s.licenses = ["MIT"]
31
32
  s.require_paths = ["lib"]
32
33
  s.rubygems_version = %q{1.3.7}
33
34
  s.summary = %q{A Ruby natural language parser for elapsed time}
@@ -40,12 +41,21 @@ Gem::Specification.new do |s|
40
41
  s.specification_version = 3
41
42
 
42
43
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
43
- s.add_development_dependency(%q<rspec>, [">= 0"])
44
+ s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
45
+ s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
46
+ s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
47
+ s.add_development_dependency(%q<rcov>, [">= 0"])
44
48
  else
45
- s.add_dependency(%q<rspec>, [">= 0"])
49
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
50
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
51
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
52
+ s.add_dependency(%q<rcov>, [">= 0"])
46
53
  end
47
54
  else
48
- s.add_dependency(%q<rspec>, [">= 0"])
55
+ s.add_dependency(%q<rspec>, ["~> 2.3.0"])
56
+ s.add_dependency(%q<bundler>, ["~> 1.0.0"])
57
+ s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
58
+ s.add_dependency(%q<rcov>, [">= 0"])
49
59
  end
50
60
  end
51
61
 
@@ -31,6 +31,8 @@ module ChronicDuration
31
31
 
32
32
  years = months = days = hours = minutes = 0
33
33
 
34
+ decimal_places = seconds.to_s.split('.').last.length if seconds.is_a?(Float)
35
+
34
36
  if seconds >= 60
35
37
  minutes = (seconds / 60).to_i
36
38
  seconds = seconds % 60
@@ -86,9 +88,11 @@ module ChronicDuration
86
88
 
87
89
  result = []
88
90
  [:years, :months, :days, :hours, :minutes, :seconds].each do |t|
89
- result << humanize_time_unit( eval(t.to_s), dividers[t], dividers[:pluralize], dividers[:keep_zero] )
91
+ num = eval(t.to_s)
92
+ num = ("%.#{decimal_places}f" % num) if num.is_a?(Float) && t == :seconds
93
+ result << humanize_time_unit( num, dividers[t], dividers[:pluralize], dividers[:keep_zero] )
90
94
  end
91
-
95
+
92
96
  result = result.join(joiner).squeeze(' ').strip
93
97
 
94
98
  if process
@@ -43,8 +43,6 @@ describe ChronicDuration, '.parse' do
43
43
  ChronicDuration.parse('12 mins 3 seconds').is_a?(Integer).should be_true
44
44
  end
45
45
 
46
-
47
-
48
46
  @exemplars.each do |k, v|
49
47
  it "should properly parse a duration like #{k}" do
50
48
  ChronicDuration.parse(k).should == v
@@ -60,6 +58,14 @@ describe ChronicDuration, '.output' do
60
58
  end
61
59
 
62
60
  @exemplars = {
61
+ #(0) =>
62
+ #{
63
+ #:micro => '0s',
64
+ #:short => '0s',
65
+ #:default => '0 secs',
66
+ #:long => '0 seconds',
67
+ #:chrono => '0'
68
+ #},
63
69
  (60 + 20) =>
64
70
  {
65
71
  :micro => '1m20s',
@@ -76,6 +82,14 @@ describe ChronicDuration, '.output' do
76
82
  :long => '1 minute 20.51 seconds',
77
83
  :chrono => '1:20.51'
78
84
  },
85
+ (60 + 20.51928) =>
86
+ {
87
+ :micro => '1m20.51928s',
88
+ :short => '1m 20.51928s',
89
+ :default => '1 min 20.51928 secs',
90
+ :long => '1 minute 20.51928 seconds',
91
+ :chrono => '1:20.51928'
92
+ },
79
93
  (4 * 3600 + 60 + 1) =>
80
94
  {
81
95
  :micro => '4h1m1s',
metadata CHANGED
@@ -1,13 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chronic_duration
3
3
  version: !ruby/object:Gem::Version
4
- hash: 63
5
4
  prerelease: false
6
5
  segments:
7
6
  - 0
8
7
  - 9
9
- - 2
10
- version: 0.9.2
8
+ - 3
9
+ version: 0.9.3
11
10
  platform: ruby
12
11
  authors:
13
12
  - hpoydar
@@ -15,23 +14,67 @@ autorequire:
15
14
  bindir: bin
16
15
  cert_chain: []
17
16
 
18
- date: 2010-08-30 00:00:00 -04:00
17
+ date: 2011-03-29 00:00:00 -04:00
19
18
  default_executable:
20
19
  dependencies:
21
20
  - !ruby/object:Gem::Dependency
22
21
  name: rspec
23
- prerelease: false
24
22
  requirement: &id001 !ruby/object:Gem::Requirement
23
+ none: false
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ segments:
28
+ - 2
29
+ - 3
30
+ - 0
31
+ version: 2.3.0
32
+ type: :development
33
+ prerelease: false
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: bundler
37
+ requirement: &id002 !ruby/object:Gem::Requirement
38
+ none: false
39
+ requirements:
40
+ - - ~>
41
+ - !ruby/object:Gem::Version
42
+ segments:
43
+ - 1
44
+ - 0
45
+ - 0
46
+ version: 1.0.0
47
+ type: :development
48
+ prerelease: false
49
+ version_requirements: *id002
50
+ - !ruby/object:Gem::Dependency
51
+ name: jeweler
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ~>
56
+ - !ruby/object:Gem::Version
57
+ segments:
58
+ - 1
59
+ - 5
60
+ - 2
61
+ version: 1.5.2
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: *id003
65
+ - !ruby/object:Gem::Dependency
66
+ name: rcov
67
+ requirement: &id004 !ruby/object:Gem::Requirement
25
68
  none: false
26
69
  requirements:
27
70
  - - ">="
28
71
  - !ruby/object:Gem::Version
29
- hash: 3
30
72
  segments:
31
73
  - 0
32
74
  version: "0"
33
75
  type: :development
34
- version_requirements: *id001
76
+ prerelease: false
77
+ version_requirements: *id004
35
78
  description: A simple Ruby natural language parser for elapsed time. (For example, 4 hours and 30 minutes, 6 minutes 4 seconds, 3 days, etc.) Returns all results in seconds. Will return an integer unless you get tricky and need a float. (4 minutes and 13.47 seconds, for example.) The reverse can also be performed via the output method.
36
79
  email: hpoydar@gmail.com
37
80
  executables: []
@@ -41,7 +84,8 @@ extensions: []
41
84
  extra_rdoc_files:
42
85
  - README.rdoc
43
86
  files:
44
- - .gitignore
87
+ - Gemfile
88
+ - Gemfile.lock
45
89
  - MIT-LICENSE
46
90
  - README.rdoc
47
91
  - Rakefile
@@ -52,11 +96,11 @@ files:
52
96
  - spec/chronic_duration_spec.rb
53
97
  has_rdoc: true
54
98
  homepage: http://github.com/hpoydar/chronic_duration
55
- licenses: []
56
-
99
+ licenses:
100
+ - MIT
57
101
  post_install_message:
58
- rdoc_options:
59
- - --charset=UTF-8
102
+ rdoc_options: []
103
+
60
104
  require_paths:
61
105
  - lib
62
106
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -64,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
64
108
  requirements:
65
109
  - - ">="
66
110
  - !ruby/object:Gem::Version
67
- hash: 3
111
+ hash: -1256794380230293518
68
112
  segments:
69
113
  - 0
70
114
  version: "0"
@@ -73,7 +117,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
73
117
  requirements:
74
118
  - - ">="
75
119
  - !ruby/object:Gem::Version
76
- hash: 3
77
120
  segments:
78
121
  - 0
79
122
  version: "0"
data/.gitignore DELETED
@@ -1,3 +0,0 @@
1
- *.gem
2
- *.swp
3
- doc/*