time_ext 0.1.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.
@@ -0,0 +1,291 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html>
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
7
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
8
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
9
+ <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
10
+ <base id="base_target" target="_parent" />
11
+ </head>
12
+ <body>
13
+ <script type="text/javascript" charset="utf-8">
14
+ if (window.top.frames.main) {
15
+ document.getElementById('base_target').target = 'main';
16
+ document.body.className = 'frames';
17
+ }
18
+ </script>
19
+ <div id="content">
20
+ <h1 id="full_list_header">Method List</h1>
21
+ <div id="nav">
22
+ <a target="_self" href="class_list.html">Classes</a> |
23
+ <a target="_self" href="method_list.html">Methods</a> |
24
+ <a target="_self" href="file_list.html">Files</a>
25
+ </div>
26
+ <div id="search">Search: <input type="text" /></div>
27
+
28
+ <ul id="full_list" class="methods">
29
+
30
+
31
+ <li class="r1 ">
32
+ <a href="Time.html#beginning_of_hour-instance_method" title="Time#beginning_of_hour (method)">#beginning_of_hour</a>
33
+
34
+ <small>Time</small>
35
+
36
+ </li>
37
+
38
+
39
+ <li class="r2 ">
40
+ <a href="Time.html#beginning_of_minute-instance_method" title="Time#beginning_of_minute (method)">#beginning_of_minute</a>
41
+
42
+ <small>Time</small>
43
+
44
+ </li>
45
+
46
+
47
+ <li class="r1 ">
48
+ <a href="Time.html#beginning_of_second-instance_method" title="Time#beginning_of_second (method)">#beginning_of_second</a>
49
+
50
+ <small>Time</small>
51
+
52
+ </li>
53
+
54
+
55
+ <li class="r2 ">
56
+ <a href="Time.html#ceil-instance_method" title="Time#ceil (method)">#ceil</a>
57
+
58
+ <small>Time</small>
59
+
60
+ </li>
61
+
62
+
63
+ <li class="r1 ">
64
+ <a href="Time.html#common_year_days_in_month-instance_method" title="Time#common_year_days_in_month (method)">#common_year_days_in_month</a>
65
+
66
+ <small>Time</small>
67
+
68
+ </li>
69
+
70
+
71
+ <li class="r2 ">
72
+ <a href="Time.html#days_ago-instance_method" title="Time#days_ago (method)">#days_ago</a>
73
+
74
+ <small>Time</small>
75
+
76
+ </li>
77
+
78
+
79
+ <li class="r1 ">
80
+ <a href="Time.html#days_into_week-instance_method" title="Time#days_into_week (method)">#days_into_week</a>
81
+
82
+ <small>Time</small>
83
+
84
+ </li>
85
+
86
+
87
+ <li class="r2 ">
88
+ <a href="Time.html#days_since-instance_method" title="Time#days_since (method)">#days_since</a>
89
+
90
+ <small>Time</small>
91
+
92
+ </li>
93
+
94
+
95
+ <li class="r1 ">
96
+ <a href="Time.html#end_of_hour-instance_method" title="Time#end_of_hour (method)">#end_of_hour</a>
97
+
98
+ <small>Time</small>
99
+
100
+ </li>
101
+
102
+
103
+ <li class="r2 ">
104
+ <a href="Time.html#end_of_minute-instance_method" title="Time#end_of_minute (method)">#end_of_minute</a>
105
+
106
+ <small>Time</small>
107
+
108
+ </li>
109
+
110
+
111
+ <li class="r1 ">
112
+ <a href="Time.html#end_of_second-instance_method" title="Time#end_of_second (method)">#end_of_second</a>
113
+
114
+ <small>Time</small>
115
+
116
+ </li>
117
+
118
+
119
+ <li class="r2 ">
120
+ <a href="Time.html#floor-instance_method" title="Time#floor (method)">#floor</a>
121
+
122
+ <small>Time</small>
123
+
124
+ </li>
125
+
126
+
127
+ <li class="r1 ">
128
+ <a href="Time.html#hours_ago-instance_method" title="Time#hours_ago (method)">#hours_ago</a>
129
+
130
+ <small>Time</small>
131
+
132
+ </li>
133
+
134
+
135
+ <li class="r2 ">
136
+ <a href="Time.html#hours_since-instance_method" title="Time#hours_since (method)">#hours_since</a>
137
+
138
+ <small>Time</small>
139
+
140
+ </li>
141
+
142
+
143
+ <li class="r1 ">
144
+ <a href="Time.html#minutes_ago-instance_method" title="Time#minutes_ago (method)">#minutes_ago</a>
145
+
146
+ <small>Time</small>
147
+
148
+ </li>
149
+
150
+
151
+ <li class="r2 ">
152
+ <a href="Time.html#minutes_since-instance_method" title="Time#minutes_since (method)">#minutes_since</a>
153
+
154
+ <small>Time</small>
155
+
156
+ </li>
157
+
158
+
159
+ <li class="r1 ">
160
+ <a href="Time.html#next_day-instance_method" title="Time#next_day (method)">#next_day</a>
161
+
162
+ <small>Time</small>
163
+
164
+ </li>
165
+
166
+
167
+ <li class="r2 ">
168
+ <a href="Time.html#next_hour-instance_method" title="Time#next_hour (method)">#next_hour</a>
169
+
170
+ <small>Time</small>
171
+
172
+ </li>
173
+
174
+
175
+ <li class="r1 ">
176
+ <a href="Time.html#next_minute-instance_method" title="Time#next_minute (method)">#next_minute</a>
177
+
178
+ <small>Time</small>
179
+
180
+ </li>
181
+
182
+
183
+ <li class="r2 ">
184
+ <a href="Time.html#next_quarter-instance_method" title="Time#next_quarter (method)">#next_quarter</a>
185
+
186
+ <small>Time</small>
187
+
188
+ </li>
189
+
190
+
191
+ <li class="r1 ">
192
+ <a href="Time.html#next_second-instance_method" title="Time#next_second (method)">#next_second</a>
193
+
194
+ <small>Time</small>
195
+
196
+ </li>
197
+
198
+
199
+ <li class="r2 ">
200
+ <a href="Time.html#prev_day-instance_method" title="Time#prev_day (method)">#prev_day</a>
201
+
202
+ <small>Time</small>
203
+
204
+ </li>
205
+
206
+
207
+ <li class="r1 ">
208
+ <a href="Time.html#prev_hour-instance_method" title="Time#prev_hour (method)">#prev_hour</a>
209
+
210
+ <small>Time</small>
211
+
212
+ </li>
213
+
214
+
215
+ <li class="r2 ">
216
+ <a href="Time.html#prev_minute-instance_method" title="Time#prev_minute (method)">#prev_minute</a>
217
+
218
+ <small>Time</small>
219
+
220
+ </li>
221
+
222
+
223
+ <li class="r1 ">
224
+ <a href="Time.html#prev_quarter-instance_method" title="Time#prev_quarter (method)">#prev_quarter</a>
225
+
226
+ <small>Time</small>
227
+
228
+ </li>
229
+
230
+
231
+ <li class="r2 ">
232
+ <a href="Time.html#prev_second-instance_method" title="Time#prev_second (method)">#prev_second</a>
233
+
234
+ <small>Time</small>
235
+
236
+ </li>
237
+
238
+
239
+ <li class="r1 ">
240
+ <a href="Time.html#prev_week-instance_method" title="Time#prev_week (method)">#prev_week</a>
241
+
242
+ <small>Time</small>
243
+
244
+ </li>
245
+
246
+
247
+ <li class="r2 ">
248
+ <a href="Time.html#quarters_ago-instance_method" title="Time#quarters_ago (method)">#quarters_ago</a>
249
+
250
+ <small>Time</small>
251
+
252
+ </li>
253
+
254
+
255
+ <li class="r1 ">
256
+ <a href="Time.html#quarters_since-instance_method" title="Time#quarters_since (method)">#quarters_since</a>
257
+
258
+ <small>Time</small>
259
+
260
+ </li>
261
+
262
+
263
+ <li class="r2 ">
264
+ <a href="Time.html#round-instance_method" title="Time#round (method)">#round</a>
265
+
266
+ <small>Time</small>
267
+
268
+ </li>
269
+
270
+
271
+ <li class="r1 ">
272
+ <a href="Time.html#weeks_ago-instance_method" title="Time#weeks_ago (method)">#weeks_ago</a>
273
+
274
+ <small>Time</small>
275
+
276
+ </li>
277
+
278
+
279
+ <li class="r2 ">
280
+ <a href="Time.html#weeks_since-instance_method" title="Time#weeks_since (method)">#weeks_since</a>
281
+
282
+ <small>Time</small>
283
+
284
+ </li>
285
+
286
+
287
+ </ul>
288
+ </div>
289
+ </body>
290
+ </html>
291
+
@@ -0,0 +1,88 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>Top Level Namespace</title>
7
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="_index.html">Index</a> &raquo;
27
+
28
+
29
+ <span class="title">Top Level Namespace</span>
30
+
31
+
32
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
33
+ </div>
34
+
35
+ <div id="search">
36
+ <a id="class_list_link" href="#">Class List</a>
37
+ <a id="method_list_link" href="#">Method List</a>
38
+ <a id ="file_list_link" href="#">File List</a>
39
+ </div>
40
+
41
+ <div class="clear"></div>
42
+ </div>
43
+
44
+ <iframe id="search_frame"></iframe>
45
+
46
+ <div id="content"><h1>Top Level Namespace
47
+
48
+
49
+
50
+ </h1>
51
+
52
+ <dl class="box">
53
+
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+ </dl>
62
+ <div class="clear"></div>
63
+
64
+ <h2>Defined Under Namespace</h2>
65
+ <p class="children">
66
+
67
+
68
+
69
+
70
+ <strong class="classes">Classes:</strong> <a href="Time.html" title="Time (class)">Time</a>
71
+
72
+
73
+ </p>
74
+
75
+
76
+
77
+
78
+
79
+ </div>
80
+
81
+ <div id="footer">
82
+ Generated on Tue Jul 27 20:16:37 2010 by
83
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool">yard</a>
84
+ 0.5.8 (ruby-1.8.7).
85
+ </div>
86
+
87
+ </body>
88
+ </html>
data/lib/time/ext.rb ADDED
@@ -0,0 +1 @@
1
+ require 'time_ext'
@@ -0,0 +1,191 @@
1
+ class Time
2
+
3
+ # Helper method for backwards compatibility with ActiveSupport.
4
+ def days_into_week
5
+ defined?(DAYS_INTO_WEEK) ? DAYS_INTO_WEEK : { :monday => 0, :tuesday => 1, :wednesday => 2, :thursday => 3, :friday => 4, :saturday => 5, :sunday => 6 }
6
+ end
7
+
8
+ # Helper method for backwards compatibility with ActiveSupport.
9
+ def common_year_days_in_month
10
+ defined?(COMMON_YEAR_DAYS_IN_MONTH) ? COMMON_YEAR_DAYS_IN_MONTH : [nil, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
11
+ end
12
+
13
+ # Returns a new Time representing the start of the unit specified (second by default).
14
+ def floor(unit = :sec)
15
+ self.send("beginning_of_#{unit}")
16
+ end
17
+ alias :beginning_of :floor
18
+ alias :at_beginning_of :floor
19
+
20
+ # Returns a new Time representing the start of the next unit specified (second by default).
21
+ def ceil(unit = :sec)
22
+ self.send("next_#{unit}").send("beginning_of_#{unit}")
23
+ end
24
+ alias :beginning_of_next :ceil
25
+ alias :at_beginning_of_next :ceil
26
+
27
+ # Returns a new Time representing the start of the current or next unit specified (second by default) depending which is closest
28
+ def round(unit = :sec)
29
+ next_unit = self.ceil(unit)
30
+ this_unit = self.floor(unit)
31
+ (self - this_unit) < (next_unit - self) ? this_unit : next_unit
32
+ end
33
+ alias :beginning_of_closest :round
34
+
35
+ # Short-hand for seconds_ago(1).
36
+ def prev_second
37
+ ago(1)
38
+ end
39
+ alias :prev_sec :prev_second
40
+
41
+ # Short-hand for seconds_since(1).
42
+ def next_second
43
+ since(1)
44
+ end
45
+ alias :next_sec :next_second
46
+
47
+ # Short-hand for minutes_ago(1).
48
+ def prev_minute
49
+ minutes_ago(1)
50
+ end
51
+ alias :prev_min :prev_minute
52
+
53
+ # Short-hand for minutes_since(1).
54
+ def next_minute
55
+ minutes_since(1)
56
+ end
57
+ alias :next_min :next_minute
58
+
59
+ # Short-hand for hours_ago(1).
60
+ def prev_hour
61
+ hours_ago(1)
62
+ end
63
+
64
+ # Short-hand for hours_since(1).
65
+ def next_hour
66
+ hours_since(1)
67
+ end
68
+
69
+ # Short-hand for days_ago(1).
70
+ def prev_day
71
+ days_ago(1)
72
+ end
73
+
74
+ # Short-hand for days_since(1).
75
+ def next_day
76
+ days_since(1)
77
+ end
78
+
79
+ # Returns a new Time representing the start of the given day in the previous week (default is Monday).
80
+ def prev_week(day = :monday)
81
+ weeks_ago(1).beginning_of_week.since(days_into_week[day].day).change(:hour => 0)
82
+ end
83
+
84
+ # Short-hand for quarters_since(1).beginning_of_quarter.
85
+ def next_quarter
86
+ quarters_since(1).beginning_of_quarter
87
+ end
88
+
89
+ # Short-hand for quarters_ago(1).beginning_of_quarter.
90
+ def prev_quarter
91
+ quarters_ago(1).beginning_of_quarter
92
+ end
93
+
94
+ # Aliases to keep available method names to a standard pattern.
95
+ alias :secs_ago :ago
96
+ alias :seconds_ago :ago
97
+ alias :secs_since :since
98
+ alias :seconds_since :since
99
+
100
+ # Returns a new Time representing the time a number of specified minutes ago.
101
+ def minutes_ago(minutes)
102
+ ago(minutes.minutes)
103
+ end
104
+ alias :mins_ago :minutes_ago
105
+
106
+ # Returns a new Time representing the time a number of specified minutes in the future.
107
+ def minutes_since(minutes)
108
+ since(minutes.minutes)
109
+ end
110
+ alias :mins_since :minutes_since
111
+
112
+ # Returns a new Time representing the time a number of specified hours ago.
113
+ def hours_ago(hours)
114
+ ago(hours.hours)
115
+ end
116
+
117
+ # Returns a new Time representing the time a number of specified hours in the future.
118
+ def hours_since(hours)
119
+ since(hours.hours)
120
+ end
121
+
122
+ # Returns a new Time representing the time a number of specified days ago.
123
+ def days_ago(days)
124
+ ago(days.days)
125
+ end
126
+
127
+ # Returns a new Time representing the time a number of specified days in the future.
128
+ def days_since(days)
129
+ since(days.days)
130
+ end
131
+
132
+ # Returns a new Time representing the time a number of specified weeks ago.
133
+ def weeks_ago(weeks)
134
+ ago(weeks.weeks)
135
+ end
136
+
137
+ # Returns a new Time representing the time a number of specified weeks in the future.
138
+ def weeks_since(weeks)
139
+ since(weeks.weeks)
140
+ end
141
+
142
+ # Returns a new Time representing the time a number of specified quarters (3 months) ago.
143
+ def quarters_ago(quarters)
144
+ ago((quarters * 3).months)
145
+ end
146
+
147
+ # Returns a new Time representing the time a number of specified quarters (3 months) in the future.
148
+ def quarters_since(quarters)
149
+ since((quarters * 3).months)
150
+ end
151
+
152
+ # Returns a new Time representing the start of the second, XX:XX:XX.000000 (.000000000 in ruby1.9).
153
+ def beginning_of_second
154
+ change(:usec => 0)
155
+ end
156
+ alias :beginning_of_sec :beginning_of_second
157
+ alias :at_beginning_of_sec :beginning_of_second
158
+ alias :at_beginning_of_second :beginning_of_second
159
+
160
+ # Returns a new Time representing the end of the hour, XX:XX:XX.999999 (.999999999 in ruby1.9).
161
+ def end_of_second
162
+ change(:usec => 999999.999)
163
+ end
164
+ alias :end_of_sec :end_of_second
165
+
166
+ # Returns a new Time representing the start of the minute (XX:XX:00).
167
+ def beginning_of_minute
168
+ change(:sec => 0, :usec => 0)
169
+ end
170
+ alias :beginning_of_min :beginning_of_minute
171
+ alias :at_beginning_of_min :beginning_of_minute
172
+ alias :at_beginning_of_minute :beginning_of_minute
173
+
174
+ # Returns a new Time representing the end of the hour, XX:XX:59.999999 (.999999999 in ruby1.9).
175
+ def end_of_minute
176
+ change(:sec => 59, :usec => 999999.999)
177
+ end
178
+ alias :end_of_min :end_of_minute
179
+
180
+ # Returns a new Time representing the start of the hour (XX:00:00).
181
+ def beginning_of_hour
182
+ change(:min => 0, :sec => 0, :usec => 0)
183
+ end
184
+ alias :at_beginning_of_hour :beginning_of_hour
185
+
186
+ # Returns a new Time representing the end of the hour, XX:59:59.999999 (.999999999 in ruby1.9).
187
+ def end_of_hour
188
+ change(:min => 59, :sec => 59, :usec => 999999.999)
189
+ end
190
+
191
+ end
data/lib/time_ext.rb ADDED
@@ -0,0 +1,3 @@
1
+ require 'rubygems'
2
+ require 'active_support'
3
+ require 'time_ext/time'
data/spec/spec.opts ADDED
@@ -0,0 +1,2 @@
1
+ --format specdoc
2
+ --color
@@ -0,0 +1,9 @@
1
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
3
+ require 'time_ext'
4
+ require 'spec'
5
+ require 'spec/autorun'
6
+
7
+ Spec::Runner.configure do |config|
8
+
9
+ end