datetime_diff 0.3.4 → 0.3.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5e33f091943c0a09d9cee04ba429f99b505ec2d1
4
- data.tar.gz: 9d953f216f8594961c3a620e9189ed6086405d83
3
+ metadata.gz: 79cb20de634dfcfe68679a1bb7d1233243903a99
4
+ data.tar.gz: 3d9f607f50770f70a2006d563e3fe141d1884d46
5
5
  SHA512:
6
- metadata.gz: f20e1880f94e95abea5f63225e282b7700af5d6bdc742191d6a2046e586295088e2923879a47b5e2f16d71d679beafc2e7948b3273789b154a5d71febe16e616
7
- data.tar.gz: 0223955b810b84614402151bc4b7017c83d31947470aa7b774cdb9c00257d65f8d245bfda1677cd15577e0f6060687246bf071d0383a7f8a2afb36f73e430fc4
6
+ metadata.gz: 74feb356476abf3727ef5dd873e0ad24d290f91863b763674761c6d9137d979788c4a2186751cdc9e33ee2edc9df34365c0ea0c3dfbba2c551be77ffba6561ad
7
+ data.tar.gz: 5eaa6cbd5ef8cd089536b583da276d1b68000339ddc35d907b2fde3a2b3efdda4648662031d11b51aec9bf67db96d95947f41baf06c9ced8c6216507d5a36fa5
data/CHANGELOG CHANGED
@@ -1,3 +1,6 @@
1
+ v0.3.5
2
+ - add method diff_in_mls
3
+ - ...
1
4
  v0.3.4
2
5
  - fix 60 min to 1 hour
3
6
  v0.3.3
data/lib/datetime_diff.rb CHANGED
@@ -1,8 +1,6 @@
1
- require "datetime_diff/version"
2
-
3
1
  module DateTimeDiff
4
2
 
5
- def self.diff_to_s mls, format=nil
3
+ def self.diff_to_s mls, format=nil, options
6
4
 
7
5
  mls = (mls * 1000).to_i
8
6
  s = m = h = d = 0
@@ -28,25 +26,40 @@ module DateTimeDiff
28
26
  end
29
27
 
30
28
  t = {D: d,
29
+
31
30
  H: h.to_s.rjust(2,"0"),
31
+ h: h.to_s,
32
+
32
33
  M: m.to_s.rjust(2,"0"),
34
+ mm: m.to_s,
35
+
33
36
  S: s.to_s.rjust(2,"0"),
37
+ ss: s.to_s,
38
+
34
39
  m: mls.to_s.rjust(3,"0")}
35
40
 
36
41
  if format
37
42
  r = ""
38
- values = format.scan(/\%\S[\S|\s]{1,3}*?(?!%)/)
43
+ #values = format.scan(/\%\S[\S|\s]{1,3}*?(?!%)/)
44
+ values = format.scan(/\%\w{1,3}/)
45
+
46
+ zero_left = options[:zero_left] || false
47
+
39
48
  for xV in values
40
- if values.index(xV) + 1 == values.size
41
- r += "#{t[xV.gsub("%","").to_sym]}#{format.scan(/(?<=#{xV})[\s|\S]*?$/)[0]}"
49
+ number = t[xV.gsub("%","").to_sym]
50
+ zero_left = false if number.to_i > 0
51
+ unless zero_left && number.to_i == 0
52
+ if values.index(xV) + 1 == values.size
53
+ r += "#{number}#{format.scan(/(?<=#{xV})[\s|\S]*?$/)[0]}"
54
+ else
55
+ r += "#{number}#{format.scan(/(?<=#{xV})[\s|\S]*?(?=\%)/)[0]}"
56
+ end
42
57
  else
43
- r += "#{t[xV.gsub("%","").to_sym]}#{format.scan(/(?<=#{xV})[\s|\S]*?(?=\%)/)[0]}"
58
+ zero_left = true
44
59
  end
45
60
  end
46
61
  r
47
62
  else
48
- r = ""
49
- r += "#{d} #{d > 1 ? "days" : "day"} "
50
63
  r += "#{h} #{h > 1 ? "hours" : "hour"} "
51
64
  r += "#{m} #{m > 1 ? "minutes" : "minute"} "
52
65
  r += "#{s} #{s > 1 ? "seconds" : "second"} "
@@ -55,14 +68,23 @@ module DateTimeDiff
55
68
  r.strip.gsub(/\s{2,}/," ")
56
69
  end
57
70
  end
58
- def diff dt, format=nil
71
+ def diff dt, format=nil, options = {}
72
+ mls = 0
73
+ if self > dt
74
+ mls = self.to_time.to_f - dt.to_time.to_f
75
+ else
76
+ mls = dt.to_time.to_f - self.to_time.to_f
77
+ end
78
+ DateTimeDiff.diff_to_s mls, format, options
79
+ end
80
+ def diff_in_mls dt, format=nil, options = {}
59
81
  mls = 0
60
82
  if self > dt
61
83
  mls = self.to_time.to_f - dt.to_time.to_f
62
84
  else
63
85
  mls = dt.to_time.to_f - self.to_time.to_f
64
86
  end
65
- DateTimeDiff.diff_to_s mls, format
87
+ mls
66
88
  end
67
89
  end
68
90
 
@@ -1,3 +1,3 @@
1
1
  module DateTimeDiff
2
- VERSION = "0.3.4"
2
+ VERSION = "0.3.5"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datetime_diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.4
4
+ version: 0.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - thiago feitosa
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-08-19 00:00:00.000000000 Z
11
+ date: 2017-08-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler