fuzzy_time 1.1

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 (3) hide show
  1. checksums.yaml +15 -0
  2. data/lib/fuzzy_time.rb +54 -0
  3. metadata +59 -0
checksums.yaml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ NjViYjM1ODY5ZjQ0ZDY0MDMzZjZmYjJhZTBkNzk1NTE4ZTJhNmE5Yg==
5
+ data.tar.gz: !binary |-
6
+ OGQ2OGJiZmRhNzIxYmQxMDQ0NWJkOGVmZWM1NDM5MWU1YTRkNzg2ZQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ ZjQwYjZkMmMzMTkwNDBkMTkxZGE3MmM1ZTQyOGNmNzVkMzdkZTU3N2JjN2Jj
10
+ NWRlMGVmZWFiN2VjMmI5OTU0ODZlMTI5MTA4MzkyYjUxMzJiYzIxODZiZGIz
11
+ NmM5NDUwMWU5MTJhZmQwYzZjYTE5NThiMTQzNDkwY2VjZjkzYjQ=
12
+ data.tar.gz: !binary |-
13
+ YzU4YThiNTMzZDQyZmJlMWU5YzM3Nzk2YTg3OGYwZmI4MTJhZDQ3NDRkMTRh
14
+ ZTgxZmI0OTIzY2FjYjk4YmQ4YTkyZjEwNTc4YjJhNTRjYTRlMjUxMDg5NGVh
15
+ NmE1OWU4YzliY2YyYjJiYmJiZDgzMDFhMDQ3MmFiZWJkMzkyYmU=
data/lib/fuzzy_time.rb ADDED
@@ -0,0 +1,54 @@
1
+ class Time
2
+ # Display the current time in a human-readable format.
3
+ #
4
+ # Examples
5
+ #
6
+ # Time.now.fuzzy
7
+ # # => "half past three"
8
+ #
9
+ # Time.local(2013, 1, 1, 5, 46).fuzzy
10
+ # # => "quarter to six"
11
+
12
+ def fuzzy
13
+ # convert from 24 to 12-hour clock
14
+ hour = self.hour % 12
15
+ min = self.min
16
+
17
+ hour = hour + 1 if min >= 33
18
+
19
+ hour = case hour
20
+ when 1; "one"
21
+ when 2; "two"
22
+ when 3; "three"
23
+ when 4; "four"
24
+ when 5; "five"
25
+ when 6; "six"
26
+ when 7; "seven"
27
+ when 8; "eight"
28
+ when 9; "nine"
29
+ when 10; "ten"
30
+ when 11; "eleven"
31
+ when 12, 0; "twelve"
32
+ end
33
+
34
+ return "#{hour} o'clock" if min == 0
35
+
36
+ prefix = case min
37
+ when 1..2; "shortly after"
38
+ when 3..7; "five past"
39
+ when 8..12; "ten past"
40
+ when 13..17; "quarter past"
41
+ when 18..22; "twenty past"
42
+ when 23..27; "twentyfive past"
43
+ when 28..32; "half past"
44
+ when 33..37; "twentyfive to"
45
+ when 38..42; "twenty to"
46
+ when 43..47; "quarter to"
47
+ when 48..52; "ten to"
48
+ when 53..57; "five to"
49
+ when 58..59; "nearly"
50
+ end
51
+
52
+ "#{prefix} #{hour}"
53
+ end
54
+ end
metadata ADDED
@@ -0,0 +1,59 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: fuzzy_time
3
+ version: !ruby/object:Gem::Version
4
+ version: '1.1'
5
+ platform: ruby
6
+ authors:
7
+ - Patrick Lewis
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-02-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rspec
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ! '>='
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Extends Ruby's Time class with a new fuzzy method that returns time in
28
+ a human-readable format.
29
+ email: get@patricklewis.org
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/fuzzy_time.rb
35
+ homepage: https://github.com/patricklewis/fuzzy_time
36
+ licenses:
37
+ - MIT
38
+ metadata: {}
39
+ post_install_message:
40
+ rdoc_options: []
41
+ require_paths:
42
+ - lib
43
+ required_ruby_version: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ! '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ required_rubygems_version: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - ! '>='
51
+ - !ruby/object:Gem::Version
52
+ version: '0'
53
+ requirements: []
54
+ rubyforge_project:
55
+ rubygems_version: 2.0.0
56
+ signing_key:
57
+ specification_version: 4
58
+ summary: Human-readable time formatting for Ruby.
59
+ test_files: []