time-helper 1.3.1 → 2.0.0

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. data/README +9 -0
  2. data/lib/time-helper.rb +8 -17
  3. metadata +17 -17
data/README CHANGED
@@ -33,6 +33,10 @@ using .add or .substract
33
33
  | Time.local(2012,05,01,12,20,31) | substract | {:month => 2, :day => 3} | Time.local(2012,05,01,12,20,31) - (60*60*24*30*2 + 60*60*24*3)|
34
34
  | Time.local(2011,12,24,22,10,54) | add | {:day => 1, :hour => 3} |Time.local(2011,12,24,22,10,54) + (60*60*24 + 60*60*3) |
35
35
 
36
+ using =~
37
+ this method allows you to get "close enough" times, defaults to 300 seconds (5 minutes) of acceptable difference
38
+ time_obj =~ other_time # true or false if the difference between the objects is less than 5 minutes
39
+ time_obj.=~ other_time, 360 # true or false if the difference is less than 6 minutes
36
40
 
37
41
  **********************************************
38
42
  *How is this diferent than just "Time.parse"?*
@@ -42,6 +46,11 @@ Time.parse does not work well with non-American formats, if like me, you're work
42
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
43
47
  included will fail.
44
48
 
49
+ New in 2.0.0
50
+ Completelly changed =~ method, the second argument is now an acceptable difference in seconds - more reliable.
51
+ 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!
52
+ As such, with these differences this version is not retro-compatible, if you were using a previous version it may fail on this one.
53
+
45
54
  New in 1.3.1
46
55
  Added =~ method which allows you to see if two time objects are close enough, by default it compares up till the hour, for instance, a =~ b will be true if a and b are both objects with the same year, month, day and hour.
47
56
  Removed all the aborts! Replaced be real errors inside the class! Sorry for the mess.
data/lib/time-helper.rb CHANGED
@@ -1,8 +1,7 @@
1
1
  #encoding: utf-8
2
- #@version 1.3.1
2
+ #@version 2.0.0
3
3
  #@author Arthur
4
4
  class Time
5
- require 'time'
6
5
  #class methods
7
6
  class << self
8
7
  #@param string [String] a datetime string with many possible formats
@@ -10,11 +9,7 @@ class Time
10
9
  #@return [Time] set in the date of the string passed
11
10
  def strtotime string
12
11
  unless valid_datetime? string
13
- begin
14
- return Time.parse(string)
15
- rescue
16
- raise InvalidTimeStringFormat
17
- end
12
+ raise InvalidTimeStringFormat
18
13
  end
19
14
  h,m,s = 0,0,0
20
15
 
@@ -200,26 +195,22 @@ class Time
200
195
  public
201
196
  #compares if two Time objects are close enough to each other
202
197
  #@param other_time [Time] time to be compared to
203
- #@param smallest_unit [Symbol] smallest unit of time to check if it's the same
198
+ #@param acceptable_diff [Fixnum]
204
199
  # @example
205
200
  # a = Time.now
206
201
  # b = Time.now.add(:day = 1)
207
202
  # a =~ b
208
203
  # => false
209
- # a.=~ b,:month
204
+ # a.=~ b, 86400
210
205
  # => true
211
206
  #@note to compare up to the hour you just need var =~ other_var,
212
207
  # but to pass the second argument you must use var.=~(other_var, :min)
213
208
  #@note minute is :min seconds is :sec
214
- def =~(other_time, smallest_unit = :hour)
209
+ def =~(other_time, acceptable_diff = 300 )
215
210
  raise InvalidArgument.new('Argument must be an instance of Time') unless other_time.class == Time
216
- equal = true
217
- [:year, :month, :day, :hour, :min, :sec].each do |method|
218
- self_unit, other_unit = self.method(method).call(), other_time.method(method).call()
219
- equal = false unless self_unit == other_unit
220
- break if method == smallest_unit
221
- end
222
- return equal
211
+ raise InvalidArgument.new('Argument must be fix number') unless acceptable_diff.class == Fixnum
212
+ diff = self.to_i - other_time.to_i
213
+ return ( diff.abs <= acceptable_diff )
223
214
  end
224
215
 
225
216
  ##### Errors #####
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: time-helper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.1
4
+ prerelease:
5
+ version: 2.0.0
5
6
  platform: ruby
6
7
  authors:
7
- - Arthur Silva
8
+ - Arthur Silva
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
12
 
12
- date: 2012-08-20 00:00:00 +01:00
13
- default_executable:
13
+ date: 2012-11-04 00:00:00 Z
14
14
  dependencies: []
15
15
 
16
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"
@@ -22,9 +22,8 @@ extensions: []
22
22
  extra_rdoc_files: []
23
23
 
24
24
  files:
25
- - lib/time-helper.rb
26
- - README
27
- has_rdoc: true
25
+ - lib/time-helper.rb
26
+ - README
28
27
  homepage: https://github.com/awls99/time-helper
29
28
  licenses: []
30
29
 
@@ -32,25 +31,26 @@ post_install_message:
32
31
  rdoc_options: []
33
32
 
34
33
  require_paths:
35
- - lib
34
+ - lib
36
35
  required_ruby_version: !ruby/object:Gem::Requirement
36
+ none: false
37
37
  requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: "0"
41
- version:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: "0"
42
41
  required_rubygems_version: !ruby/object:Gem::Requirement
42
+ none: false
43
43
  requirements:
44
- - - ">="
45
- - !ruby/object:Gem::Version
46
- version: "0"
47
- version:
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: "0"
48
47
  requirements: []
49
48
 
50
49
  rubyforge_project:
51
- rubygems_version: 1.3.5
50
+ rubygems_version: 1.8.15
52
51
  signing_key:
53
52
  specification_version: 3
54
53
  summary: A few helper functions for the Time class.
55
54
  test_files: []
56
55
 
56
+ has_rdoc: