timing 0.0.5 → 0.0.6

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: f09ecefbe550d4d34b1a2fcca1666964a8baede5
4
- data.tar.gz: 7a606b35392241c852fa78d02a65de8e7f586121
3
+ metadata.gz: e9d3f014400da6b44b2afaf3d8f15af729863b24
4
+ data.tar.gz: a735431bb16759291c7eb06e9ae366365f4435d1
5
5
  SHA512:
6
- metadata.gz: 42505c6137cc10badb7e7e306fa1b3bef6f15fe6bc29e32bb4bbc8d0e6da29ed052afc1c141c6302ccafeaa88f4887f5d3f0d71bed4c0192c5c67d05587cffb9
7
- data.tar.gz: 61c61a040c4278690505ae01dda2f003f3b059fd162e564a098d11da1a9455b7f86cf3866db5454afe36a1d8457c57d9b6b81612a0f8a194cccb62ee7dbaa71a
6
+ metadata.gz: f67d4efec377bf8fc2f667ee031238f530bc82a1093068a23ce4f4982224b784f9b7c9dbcb9c3bccdda3395d2b99f8067f9b560794501485136ee47ac5f65bc9
7
+ data.tar.gz: f2ac4a9ba491b548cdb5ea4c8a6694a3ffead179d623849e9836ec9580850675eeb10b6d11240509381950fede3c71754dc3f35b1b9be631336f09b85e711208
data/.travis.yml CHANGED
@@ -4,4 +4,7 @@ rvm:
4
4
  - 2.0
5
5
  - 2.1
6
6
  - 2.2
7
- - jruby
7
+ - 2.3.0
8
+ - jruby
9
+ before_install:
10
+ - gem install bundler
data/README.md CHANGED
@@ -26,8 +26,125 @@ Or install it yourself as:
26
26
 
27
27
  ## Usage
28
28
 
29
- TODO: Write usage instructions here
29
+ #### TimeInZone
30
30
 
31
+ Acts like Time with specific utc offset.
32
+
33
+ ```ruby
34
+ Time.now # => 2015-10-19 22:10:47 -0300
35
+ Timing::TimeInZone.now # => 2015-10-19 22:10:47 -0300
36
+ Timing::TimeInZone.now '-0400' # => 2015-10-19 21:10:47 -0400
37
+
38
+ Timing::TimeInZone.at 1445303855 # => 2015-10-19 22:17:35 -0300
39
+ Timing::TimeInZone.at 1445303855, '+0200' # => 2015-10-20 03:17:35 +0200
40
+
41
+ Timing::TimeInZone.now # => 2015-10-19 22:22:52 -0300
42
+ Timing::TimeInZone.now.to_zone('-0100') # => 2015-10-20 00:22:52 -0100
43
+
44
+ time = Timing::TimeInZone.now '+0200' # => 2015-10-20 03:36:14 +0200
45
+ time.zone_offset = '-0100'
46
+ time # => 2015-10-20 00:36:14 -0100
47
+
48
+ time = Timing::TimeInZone.now '-0700' # => 2015-10-19 18:29:29 -0700
49
+ time + 3600 # => 2015-10-19 19:29:29 -0700
50
+ Timing::TimeInZone.now - time # => 250.85015296936035
51
+ time.to_time # => 2015-10-19 22:29:29 -0300
52
+ ```
53
+
54
+
55
+ #### Interval
56
+
57
+ Seconds wrapper with helper methods.
58
+
59
+ ```ruby
60
+ Timing::Interval.new 10 # => 10s (10.0)
61
+
62
+ Timing::Interval.seconds(20) # => 20s (20.0)
63
+ Timing::Interval.minutes(15) # => 15m (900.0)
64
+ Timing::Interval.hours(7) # => 7h (25200.0)
65
+ Timing::Interval.days(5) # => 5d (432000.0)
66
+ Timing::Interval.weeks(2) # => 2w (1209600.0)
67
+
68
+ Timing::Interval.parse('20s') # => 20s (20.0)
69
+ Timing::Interval.parse('15m') # => 15m (900.0)
70
+ Timing::Interval.parse('7h') # => 7h (25200.0)
71
+ Timing::Interval.parse('5d') # => 5d (432000.0)
72
+ Timing::Interval.parse('2w') # => 2w (1209600.0)
73
+
74
+ interval = Timing::Interval.weeks(1)
75
+ interval.to_seconds # => 604800.0
76
+ interval.to_minutes # => 10080.0
77
+ interval.to_hours # => 168.0
78
+ interval.to_days # => 7.0
79
+ interval.to_weeks # => 1.0
80
+ ```
81
+
82
+
83
+ #### NaturalTimeLanguage
84
+
85
+ Natural language to specify times.
86
+
87
+ ```ruby
88
+ Timing::NaturalTimeLanguage.parse 'now'
89
+ ```
90
+
91
+ Named moments
92
+ - now
93
+ - Now -0500
94
+ - today
95
+ - today +0000
96
+ - Today -0600
97
+ - yesterday -0400
98
+ - tomorrow -0300
99
+
100
+ Last/Next day name
101
+ - last Monday +0200
102
+ - last fri +0100
103
+ - next tuesday +0000
104
+ - next sat -0100
105
+
106
+ Date (at 00:00:00)
107
+ - 6 April
108
+ - 14 Jul 2010 +0400
109
+ - 2015-09-03
110
+ - 2015-06-20 -0800
111
+
112
+ Beginning/End of interval
113
+ - Beginning of month
114
+ - end of year +0700
115
+ - beginning of week
116
+ - End of Day -0100
117
+ - end of hour +0400
118
+
119
+ Time ago (now - interval)
120
+ - 1 minute ago
121
+ - 3 hours ago -0500
122
+ - 5 days ago -0100
123
+ - 4 weeks ago +0100
124
+ - 10 months ago +0330
125
+ - 7 years ago -0700
126
+
127
+ Date at time
128
+ - today at 15:40
129
+ - last sunday at 08:43:21 -0300
130
+ - yesterday at beginning
131
+ - next friday at beginning -0100
132
+ - beginning of year at end
133
+ - 14 May 2011 at end -0400
134
+ - 25 Nov at 13:25
135
+ - 2001-07-14 at 18:41
136
+ - 2012-08-17 14:35:20
137
+ - 1980-04-21T08:15:03-0500
138
+
139
+ Before/After moment
140
+ - 15 minutes from now
141
+ - 3 days before yesterday
142
+ - 1 month from today
143
+ - 1 week from last monday at 08:30 -0400
144
+ - 5 days before next friday at end
145
+ - 1 month before beginning of month
146
+ - 1 year before 9 Sep +0300
147
+ - 2 years from 2001-05-21T12:30:40 -0500
31
148
 
32
149
  ## Contributing
33
150
 
data/Rakefile CHANGED
@@ -5,6 +5,7 @@ Rake::TestTask.new(:spec) do |t|
5
5
  t.libs << 'spec'
6
6
  t.pattern = 'spec/**/*_spec.rb'
7
7
  t.verbose = false
8
+ t.warning = false
8
9
  end
9
10
 
10
11
  task default: :spec
@@ -58,7 +58,12 @@ module Timing
58
58
  alias_method :inspect, :to_s
59
59
 
60
60
  def strftime(format)
61
- time_with_offset.strftime format.gsub('%Z', '').gsub('%z', zone_offset.to_s)
61
+ sanitized_format = format.gsub('%Z', '')
62
+ .gsub('%z', zone_offset.to_s)
63
+ .gsub('%:z', zone_offset.to_s(':'))
64
+ .gsub('%::z', "#{zone_offset.to_s(':')}:00")
65
+
66
+ time_with_offset.strftime sanitized_format
62
67
  end
63
68
 
64
69
  def iso8601
@@ -1,3 +1,3 @@
1
1
  module Timing
2
- VERSION = '0.0.5'
2
+ VERSION = '0.0.6'
3
3
  end
@@ -8,8 +8,8 @@ module Timing
8
8
  super
9
9
  end
10
10
 
11
- def to_s
12
- "#{sign}#{hour.to_s.rjust(2, '0')}#{minute.to_s.rjust(2, '0')}"
11
+ def to_s(separator=nil)
12
+ "#{sign}#{hour.to_s.rjust(2, '0')}#{separator}#{minute.to_s.rjust(2, '0')}"
13
13
  end
14
14
 
15
15
  def iso8601
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: timing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gabriel Naiman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-16 00:00:00.000000000 Z
11
+ date: 2016-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop
@@ -168,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
168
  version: '0'
169
169
  requirements: []
170
170
  rubyforge_project:
171
- rubygems_version: 2.4.7
171
+ rubygems_version: 2.4.8
172
172
  signing_key:
173
173
  specification_version: 4
174
174
  summary: Time utils