chronic_duration 0.9.2 → 0.9.3

Sign up to get free protection for your applications and to get access to all the features.
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/*