fuzzy_time 1.1

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