time-helper 2.0.0 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/README +8 -3
  2. data/lib/time-helper.rb +10 -1
  3. metadata +27 -33
data/README CHANGED
@@ -4,6 +4,9 @@ There's a method Time.strtotime which takes a date(time) string and turns it int
4
4
  Also method add and substract to the instance. (Important, these methods do not account for leap years and months, etc, one month is 30 days and 1 year is 365 days.)
5
5
  =~ to see if two Time objects are "close enough"
6
6
 
7
+ Time:: DateTimeRegex a regex for verifying if a string might represent a date
8
+
9
+
7
10
  Usage examples:
8
11
 
9
12
  Time.strtotime date_string
@@ -42,10 +45,13 @@ time_obj.=~ other_time, 360 # true or false if the difference is less than 6 min
42
45
  *How is this diferent than just "Time.parse"?*
43
46
  **********************************************
44
47
 
45
- Time.parse does not work well with non-American formats, if like me, you're working with strings that have dates in a for
46
- mat like: DD/MM/YYYY Time.parse will not do. In fact, if you rewrite strtotime so it just calls parse a few of the tests
48
+ Time.parse does not work well with non-American formats, if like me, you're working with strings that have dates in a format like: DD/MM/YYYY Time.parse will not do. In fact, if you rewrite strtotime so it just calls parse a few of the tests
47
49
  included will fail.
48
50
 
51
+ New in 2.0.1
52
+ Fixed an issue/bug where a few non date number sequences would be evaluated as date by ::valid_datetime? due to the a liniency in the validating regex.
53
+ The verification regex is now available for public as a constant: Time::DateTimeRegex
54
+
49
55
  New in 2.0.0
50
56
  Completelly changed =~ method, the second argument is now an acceptable difference in seconds - more reliable.
51
57
  Removed the require 'time' std lib (which should reduce memory of this gem ) and as such it no longers has the parse method included in the strtotime method, if you want to use parse, use it!
@@ -64,4 +70,3 @@ Tomorrow and Yesterday methods
64
70
 
65
71
  New in 1.1
66
72
  I skiped this version.... because I suck at versioning
67
-
@@ -2,6 +2,8 @@
2
2
  #@version 2.0.0
3
3
  #@author Arthur
4
4
  class Time
5
+ #datetime regex
6
+ DateTimeRegex = /^\d{2}|\d{4}[^\d]?\d{2}[^\d]?\d{2}|\d{4}(?:[^\d]?\d{2}:?\d{2}:?\d{2})?$/
5
7
  #class methods
6
8
  class << self
7
9
  #@param string [String] a datetime string with many possible formats
@@ -44,7 +46,14 @@ class Time
44
46
  #@param string [String] datetime string
45
47
  #@return [Boolean]
46
48
  def valid_datetime? string
47
- return false unless string.match /^\d{2,4}.?\d{2}.?\d{2,4}(?:.?\d{2}:?\d{2}:?\d{2})?$/
49
+ valid_number_only_date_sizes = [8,14]
50
+ valid_date_sizes = [10, 19]
51
+ if string.match /^\d+$/
52
+ return false unless valid_number_only_date_sizes.include? string.length
53
+ else
54
+ return false unless valid_date_sizes.include? string.length
55
+ end
56
+ return false unless string.match DateTimeRegex
48
57
  return true
49
58
  end
50
59
  #@return [Time] Time object set 24 hours ago
metadata CHANGED
@@ -1,56 +1,50 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: time-helper
3
- version: !ruby/object:Gem::Version
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.0.1
4
5
  prerelease:
5
- version: 2.0.0
6
6
  platform: ruby
7
- authors:
8
- - Arthur Silva
7
+ authors:
8
+ - Arthur Silva
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
-
13
- date: 2012-11-04 00:00:00 Z
12
+ date: 2012-11-04 00:00:00.000000000 Z
14
13
  dependencies: []
15
-
16
- description: " Adds a few methods to the Time class, more significant:\n\n strtotime which returns a Time object based on a string.\n\n also methods add and substract that allow you to do some easy date math (doesn't take leap months/years into account)\n also tomorrow and yesterday methods witch are like Time.now +- 1 day\n\n =~ to see if two Time objects are \"close enough\"\n"
14
+ description: ! " Adds a few methods to the Time class, more significant:\n\n strtotime
15
+ which returns a Time object based on a string.\n\n also methods add and substract
16
+ that allow you to do some easy date math (doesn't take leap months/years into account)\n
17
+ also tomorrow and yesterday methods witch are like Time.now +- 1 day\n\n =~ to
18
+ see if two Time objects are \"close enough\"\n"
17
19
  email: awls99@gmail.com
18
20
  executables: []
19
-
20
21
  extensions: []
21
-
22
22
  extra_rdoc_files: []
23
-
24
- files:
25
- - lib/time-helper.rb
26
- - README
23
+ files:
24
+ - lib/time-helper.rb
25
+ - README
27
26
  homepage: https://github.com/awls99/time-helper
28
27
  licenses: []
29
-
30
28
  post_install_message:
31
29
  rdoc_options: []
32
-
33
- require_paths:
34
- - lib
35
- required_ruby_version: !ruby/object:Gem::Requirement
30
+ require_paths:
31
+ - lib
32
+ required_ruby_version: !ruby/object:Gem::Requirement
36
33
  none: false
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: "0"
41
- required_rubygems_version: !ruby/object:Gem::Requirement
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ required_rubygems_version: !ruby/object:Gem::Requirement
42
39
  none: false
43
- requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
47
44
  requirements: []
48
-
49
45
  rubyforge_project:
50
- rubygems_version: 1.8.15
46
+ rubygems_version: 1.8.24
51
47
  signing_key:
52
48
  specification_version: 3
53
49
  summary: A few helper functions for the Time class.
54
50
  test_files: []
55
-
56
- has_rdoc: