smart_month 1.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.
- data/MIT-LICENSE +20 -0
- data/README +33 -0
- data/Rakefile +51 -0
- data/VERSION +1 -0
- data/lib/month.rb +26 -0
- data/lib/smart_month.rb +11 -0
- data/lib/smart_month/calculations.rb +87 -0
- data/lib/smart_month/collection.rb +51 -0
- data/lib/smart_month/extensions/date.rb +19 -0
- data/lib/smart_month/magic.rb +71 -0
- data/lib/smart_month/math.rb +41 -0
- data/lib/smart_month/rulesets.rb +151 -0
- data/lib/smart_month/util.rb +37 -0
- data/pkg/smart_month-1.0.0.gem +0 -0
- data/rdoc/classes/Date.html +209 -0
- data/rdoc/classes/Month.html +189 -0
- data/rdoc/classes/SmartMonth.html +136 -0
- data/rdoc/classes/SmartMonth/Calculations.html +383 -0
- data/rdoc/classes/SmartMonth/Collection.html +306 -0
- data/rdoc/classes/SmartMonth/Magic.html +214 -0
- data/rdoc/classes/SmartMonth/Magic/MonthFactory.html +178 -0
- data/rdoc/classes/SmartMonth/Math.html +311 -0
- data/rdoc/classes/SmartMonth/Rulesets.html +419 -0
- data/rdoc/classes/SmartMonth/Util.html +302 -0
- data/rdoc/classes/Time.html +152 -0
- data/rdoc/created.rid +1 -0
- data/rdoc/files/README.html +170 -0
- data/rdoc/files/lib/month_rb.html +113 -0
- data/rdoc/files/lib/smart_month/calculations_rb.html +101 -0
- data/rdoc/files/lib/smart_month/collection_rb.html +101 -0
- data/rdoc/files/lib/smart_month/extensions/date_rb.html +108 -0
- data/rdoc/files/lib/smart_month/magic_rb.html +101 -0
- data/rdoc/files/lib/smart_month/math_rb.html +101 -0
- data/rdoc/files/lib/smart_month/rulesets_rb.html +108 -0
- data/rdoc/files/lib/smart_month/util_rb.html +101 -0
- data/rdoc/files/lib/smart_month_rb.html +108 -0
- data/rdoc/fr_class_index.html +37 -0
- data/rdoc/fr_file_index.html +36 -0
- data/rdoc/fr_method_index.html +74 -0
- data/rdoc/index.html +24 -0
- data/rdoc/rdoc-style.css +208 -0
- data/smart_month.gemspec +179 -0
- data/test/spec/date/accessor_spec.rb +91 -0
- data/test/spec/date/add_month_spec.rb +24 -0
- data/test/spec/date/add_spec.rb +23 -0
- data/test/spec/date/boat_spec.rb +20 -0
- data/test/spec/date/civil_spec.rb +28 -0
- data/test/spec/date/commercial_spec.rb +29 -0
- data/test/spec/date/constants_spec.rb +41 -0
- data/test/spec/date/conversions_spec.rb +153 -0
- data/test/spec/date/downto_spec.rb +18 -0
- data/test/spec/date/eql_spec.rb +10 -0
- data/test/spec/date/gregorian_spec.rb +28 -0
- data/test/spec/date/hash_spec.rb +14 -0
- data/test/spec/date/infinity_spec.rb +77 -0
- data/test/spec/date/julian_spec.rb +52 -0
- data/test/spec/date/minus_month_spec.rb +23 -0
- data/test/spec/date/minus_spec.rb +30 -0
- data/test/spec/date/new_spec.rb +9 -0
- data/test/spec/date/neww_spec.rb +9 -0
- data/test/spec/date/ordinal_spec.rb +29 -0
- data/test/spec/date/parse_spec.rb +149 -0
- data/test/spec/date/relationship_spec.rb +20 -0
- data/test/spec/date/shared/civil.rb +66 -0
- data/test/spec/date/shared/commercial.rb +39 -0
- data/test/spec/date/shared/parse.rb +54 -0
- data/test/spec/date/shared/parse_eu.rb +30 -0
- data/test/spec/date/shared/parse_us.rb +29 -0
- data/test/spec/date/step_spec.rb +56 -0
- data/test/spec/date/strftime_spec.rb +205 -0
- data/test/spec/date/strptime_spec.rb +143 -0
- data/test/spec/date/upto_spec.rb +18 -0
- data/test/spec/parsedate/parsedate.rb +95 -0
- data/test/spec/time/httpdate_spec.rb +21 -0
- data/test/spec/time/iso8601_spec.rb +7 -0
- data/test/spec/time/rfc2822_spec.rb +7 -0
- data/test/spec/time/rfc822_spec.rb +7 -0
- data/test/spec/time/shared/rfc2822.rb +65 -0
- data/test/spec/time/shared/xmlschema.rb +53 -0
- data/test/spec/time/xmlschema_spec.rb +7 -0
- data/test/spec_helper.rb +56 -0
- data/test/test_helper.rb +4 -0
- data/test/unit/calculations_test.rb +82 -0
- data/test/unit/collection_test.rb +42 -0
- data/test/unit/magic_test.rb +37 -0
- data/test/unit/math_test.rb +30 -0
- data/test/unit/rulesets_test.rb +94 -0
- data/test/unit/samples/test_ruleset.yml +6 -0
- data/test/unit/util_test.rb +29 -0
- metadata +196 -0
@@ -0,0 +1,383 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>Module: SmartMonth::Calculations</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="classHeader">
|
50
|
+
<table class="header-table">
|
51
|
+
<tr class="top-aligned-row">
|
52
|
+
<td><strong>Module</strong></td>
|
53
|
+
<td class="class-name-in-header">SmartMonth::Calculations</td>
|
54
|
+
</tr>
|
55
|
+
<tr class="top-aligned-row">
|
56
|
+
<td><strong>In:</strong></td>
|
57
|
+
<td>
|
58
|
+
<a href="../../files/lib/smart_month/calculations_rb.html">
|
59
|
+
lib/smart_month/calculations.rb
|
60
|
+
</a>
|
61
|
+
<br />
|
62
|
+
</td>
|
63
|
+
</tr>
|
64
|
+
|
65
|
+
</table>
|
66
|
+
</div>
|
67
|
+
<!-- banner header -->
|
68
|
+
|
69
|
+
<div id="bodyContent">
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
<div id="contextContent">
|
74
|
+
|
75
|
+
<div id="description">
|
76
|
+
<p>
|
77
|
+
Responsible for all core month/week calculations.
|
78
|
+
</p>
|
79
|
+
|
80
|
+
</div>
|
81
|
+
|
82
|
+
|
83
|
+
</div>
|
84
|
+
|
85
|
+
<div id="method-list">
|
86
|
+
<h3 class="section-bar">Methods</h3>
|
87
|
+
|
88
|
+
<div class="name-list">
|
89
|
+
<a href="#M000030">every</a>
|
90
|
+
<a href="#M000029">every!</a>
|
91
|
+
<a href="#M000024">first</a>
|
92
|
+
<a href="#M000027">fourth</a>
|
93
|
+
<a href="#M000028">last</a>
|
94
|
+
<a href="#M000032">length</a>
|
95
|
+
<a href="#M000025">second</a>
|
96
|
+
<a href="#M000031">size</a>
|
97
|
+
<a href="#M000026">third</a>
|
98
|
+
</div>
|
99
|
+
</div>
|
100
|
+
|
101
|
+
</div>
|
102
|
+
|
103
|
+
|
104
|
+
<!-- if includes -->
|
105
|
+
|
106
|
+
<div id="section">
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
|
114
|
+
|
115
|
+
<!-- if method_list -->
|
116
|
+
<div id="methods">
|
117
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
118
|
+
|
119
|
+
<div id="method-M000030" class="method-detail">
|
120
|
+
<a name="M000030"></a>
|
121
|
+
|
122
|
+
<div class="method-heading">
|
123
|
+
<a href="#M000030" class="method-signature">
|
124
|
+
<span class="method-name">every</span><span class="method-args">(*days)</span>
|
125
|
+
</a>
|
126
|
+
</div>
|
127
|
+
|
128
|
+
<div class="method-description">
|
129
|
+
<p>
|
130
|
+
this returns the same data as <a
|
131
|
+
href="Calculations.html#M000030">every</a>! but removes the hash
|
132
|
+
organization of the data.
|
133
|
+
</p>
|
134
|
+
<p><a class="source-toggle" href="#"
|
135
|
+
onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
|
136
|
+
<div class="method-source-code" id="M000030-source">
|
137
|
+
<pre>
|
138
|
+
<span class="ruby-comment cmt"># File lib/smart_month/calculations.rb, line 58</span>
|
139
|
+
58: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">every</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">days</span>)
|
140
|
+
59: <span class="ruby-identifier">days</span> = <span class="ruby-identifier">every!</span>(<span class="ruby-identifier">days</span>)
|
141
|
+
60: (<span class="ruby-identifier">days</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>)) <span class="ruby-operator">?</span> <span class="ruby-identifier">days</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">days</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">flatten</span>
|
142
|
+
61: <span class="ruby-keyword kw">end</span>
|
143
|
+
</pre>
|
144
|
+
</div>
|
145
|
+
</div>
|
146
|
+
</div>
|
147
|
+
|
148
|
+
<div id="method-M000029" class="method-detail">
|
149
|
+
<a name="M000029"></a>
|
150
|
+
|
151
|
+
<div class="method-heading">
|
152
|
+
<a href="#M000029" class="method-signature">
|
153
|
+
<span class="method-name">every!</span><span class="method-args">(*days)</span>
|
154
|
+
</a>
|
155
|
+
</div>
|
156
|
+
|
157
|
+
<div class="method-description">
|
158
|
+
<p>
|
159
|
+
returns an array of dates of the day requested. if an array of dates are
|
160
|
+
passed in, a hash of day names containing the corresponding date are
|
161
|
+
returned.
|
162
|
+
</p>
|
163
|
+
<p><a class="source-toggle" href="#"
|
164
|
+
onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
|
165
|
+
<div class="method-source-code" id="M000029-source">
|
166
|
+
<pre>
|
167
|
+
<span class="ruby-comment cmt"># File lib/smart_month/calculations.rb, line 34</span>
|
168
|
+
34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">every!</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">days</span>)
|
169
|
+
35: <span class="ruby-identifier">days</span> = [<span class="ruby-identifier">days</span>].<span class="ruby-identifier">flatten</span>
|
170
|
+
36: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">days</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span>
|
171
|
+
37: <span class="ruby-identifier">dates</span> = []
|
172
|
+
38: (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">5</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">week</span><span class="ruby-operator">|</span>
|
173
|
+
39: <span class="ruby-identifier">dates</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">nth_weekday</span>(<span class="ruby-identifier">days</span>.<span class="ruby-identifier">first</span>,<span class="ruby-identifier">week</span>)
|
174
|
+
40: <span class="ruby-keyword kw">end</span>
|
175
|
+
41: <span class="ruby-identifier">dates</span>.<span class="ruby-identifier">compact!</span>
|
176
|
+
42: <span class="ruby-keyword kw">else</span>
|
177
|
+
43: <span class="ruby-identifier">dates</span> = {}
|
178
|
+
44: <span class="ruby-identifier">days</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">day</span><span class="ruby-operator">|</span>
|
179
|
+
45: <span class="ruby-identifier">day</span> = <span class="ruby-identifier">day</span>.<span class="ruby-identifier">to_sym</span>
|
180
|
+
46: <span class="ruby-identifier">dates</span>[<span class="ruby-identifier">day</span>] = []
|
181
|
+
47: (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">5</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">week</span><span class="ruby-operator">|</span>
|
182
|
+
48: <span class="ruby-identifier">dates</span>[<span class="ruby-identifier">day</span>] <span class="ruby-operator"><<</span> <span class="ruby-identifier">nth_weekday</span>(<span class="ruby-identifier">day</span>,<span class="ruby-identifier">week</span>)
|
183
|
+
49: <span class="ruby-keyword kw">end</span>
|
184
|
+
50: <span class="ruby-identifier">dates</span>[<span class="ruby-identifier">day</span>].<span class="ruby-identifier">compact!</span>
|
185
|
+
51: <span class="ruby-keyword kw">end</span>
|
186
|
+
52: <span class="ruby-keyword kw">end</span>
|
187
|
+
53: <span class="ruby-identifier">dates</span>
|
188
|
+
54: <span class="ruby-keyword kw">end</span>
|
189
|
+
</pre>
|
190
|
+
</div>
|
191
|
+
</div>
|
192
|
+
</div>
|
193
|
+
|
194
|
+
<div id="method-M000024" class="method-detail">
|
195
|
+
<a name="M000024"></a>
|
196
|
+
|
197
|
+
<div class="method-heading">
|
198
|
+
<a href="#M000024" class="method-signature">
|
199
|
+
<span class="method-name">first</span><span class="method-args">(day = nil)</span>
|
200
|
+
</a>
|
201
|
+
</div>
|
202
|
+
|
203
|
+
<div class="method-description">
|
204
|
+
<p>
|
205
|
+
returns the <a href="Calculations.html#M000024">first</a> date of the day
|
206
|
+
requested. if no day is defined, it returns the very <a
|
207
|
+
href="Calculations.html#M000024">first</a> day of the month.
|
208
|
+
</p>
|
209
|
+
<p><a class="source-toggle" href="#"
|
210
|
+
onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
|
211
|
+
<div class="method-source-code" id="M000024-source">
|
212
|
+
<pre>
|
213
|
+
<span class="ruby-comment cmt"># File lib/smart_month/calculations.rb, line 6</span>
|
214
|
+
6: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">first</span>(<span class="ruby-identifier">day</span> = <span class="ruby-keyword kw">nil</span>)
|
215
|
+
7: (<span class="ruby-identifier">day</span>.<span class="ruby-identifier">nil?</span>) <span class="ruby-operator">?</span> <span class="ruby-ivar">@date</span> <span class="ruby-operator">:</span> <span class="ruby-identifier">nth_weekday</span>(<span class="ruby-identifier">day</span>,<span class="ruby-value">1</span>)
|
216
|
+
8: <span class="ruby-keyword kw">end</span>
|
217
|
+
</pre>
|
218
|
+
</div>
|
219
|
+
</div>
|
220
|
+
</div>
|
221
|
+
|
222
|
+
<div id="method-M000027" class="method-detail">
|
223
|
+
<a name="M000027"></a>
|
224
|
+
|
225
|
+
<div class="method-heading">
|
226
|
+
<a href="#M000027" class="method-signature">
|
227
|
+
<span class="method-name">fourth</span><span class="method-args">(day)</span>
|
228
|
+
</a>
|
229
|
+
</div>
|
230
|
+
|
231
|
+
<div class="method-description">
|
232
|
+
<p>
|
233
|
+
returns the <a href="Calculations.html#M000027">fourth</a> (or potentially
|
234
|
+
<a href="Calculations.html#M000028">last</a>), date of the day requested.
|
235
|
+
</p>
|
236
|
+
<p><a class="source-toggle" href="#"
|
237
|
+
onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
|
238
|
+
<div class="method-source-code" id="M000027-source">
|
239
|
+
<pre>
|
240
|
+
<span class="ruby-comment cmt"># File lib/smart_month/calculations.rb, line 21</span>
|
241
|
+
21: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fourth</span>(<span class="ruby-identifier">day</span>)
|
242
|
+
22: <span class="ruby-identifier">nth_weekday</span>(<span class="ruby-identifier">day</span>,<span class="ruby-value">4</span>) <span class="ruby-operator">||</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">last</span>(<span class="ruby-identifier">day</span>)
|
243
|
+
23: <span class="ruby-keyword kw">end</span>
|
244
|
+
</pre>
|
245
|
+
</div>
|
246
|
+
</div>
|
247
|
+
</div>
|
248
|
+
|
249
|
+
<div id="method-M000028" class="method-detail">
|
250
|
+
<a name="M000028"></a>
|
251
|
+
|
252
|
+
<div class="method-heading">
|
253
|
+
<a href="#M000028" class="method-signature">
|
254
|
+
<span class="method-name">last</span><span class="method-args">(day = nil)</span>
|
255
|
+
</a>
|
256
|
+
</div>
|
257
|
+
|
258
|
+
<div class="method-description">
|
259
|
+
<p>
|
260
|
+
returns <a href="Calculations.html#M000028">last</a> date of the day
|
261
|
+
requested. if no day is defined, it returns the very <a
|
262
|
+
href="Calculations.html#M000028">last</a> day of the month.
|
263
|
+
</p>
|
264
|
+
<p><a class="source-toggle" href="#"
|
265
|
+
onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
|
266
|
+
<div class="method-source-code" id="M000028-source">
|
267
|
+
<pre>
|
268
|
+
<span class="ruby-comment cmt"># File lib/smart_month/calculations.rb, line 27</span>
|
269
|
+
27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">last</span>(<span class="ruby-identifier">day</span> = <span class="ruby-keyword kw">nil</span>)
|
270
|
+
28: (<span class="ruby-identifier">day</span>.<span class="ruby-identifier">nil?</span>) <span class="ruby-operator">?</span> <span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">year</span>,<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span>,<span class="ruby-value">-1</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">every</span>(<span class="ruby-identifier">day</span>).<span class="ruby-identifier">last</span>
|
271
|
+
29: <span class="ruby-keyword kw">end</span>
|
272
|
+
</pre>
|
273
|
+
</div>
|
274
|
+
</div>
|
275
|
+
</div>
|
276
|
+
|
277
|
+
<div id="method-M000032" class="method-detail">
|
278
|
+
<a name="M000032"></a>
|
279
|
+
|
280
|
+
<div class="method-heading">
|
281
|
+
<span class="method-name">length</span><span class="method-args">()</span>
|
282
|
+
</div>
|
283
|
+
|
284
|
+
<div class="method-description">
|
285
|
+
<p>
|
286
|
+
Alias for <a href="Calculations.html#M000031">size</a>
|
287
|
+
</p>
|
288
|
+
</div>
|
289
|
+
</div>
|
290
|
+
|
291
|
+
<div id="method-M000025" class="method-detail">
|
292
|
+
<a name="M000025"></a>
|
293
|
+
|
294
|
+
<div class="method-heading">
|
295
|
+
<a href="#M000025" class="method-signature">
|
296
|
+
<span class="method-name">second</span><span class="method-args">(day)</span>
|
297
|
+
</a>
|
298
|
+
</div>
|
299
|
+
|
300
|
+
<div class="method-description">
|
301
|
+
<p>
|
302
|
+
returns the <a href="Calculations.html#M000025">second</a> date of the day
|
303
|
+
requested.
|
304
|
+
</p>
|
305
|
+
<p><a class="source-toggle" href="#"
|
306
|
+
onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
|
307
|
+
<div class="method-source-code" id="M000025-source">
|
308
|
+
<pre>
|
309
|
+
<span class="ruby-comment cmt"># File lib/smart_month/calculations.rb, line 11</span>
|
310
|
+
11: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">second</span>(<span class="ruby-identifier">day</span>)
|
311
|
+
12: <span class="ruby-identifier">nth_weekday</span>(<span class="ruby-identifier">day</span>,<span class="ruby-value">2</span>)
|
312
|
+
13: <span class="ruby-keyword kw">end</span>
|
313
|
+
</pre>
|
314
|
+
</div>
|
315
|
+
</div>
|
316
|
+
</div>
|
317
|
+
|
318
|
+
<div id="method-M000031" class="method-detail">
|
319
|
+
<a name="M000031"></a>
|
320
|
+
|
321
|
+
<div class="method-heading">
|
322
|
+
<a href="#M000031" class="method-signature">
|
323
|
+
<span class="method-name">size</span><span class="method-args">()</span>
|
324
|
+
</a>
|
325
|
+
</div>
|
326
|
+
|
327
|
+
<div class="method-description">
|
328
|
+
<p>
|
329
|
+
returns the total number of days in month.
|
330
|
+
</p>
|
331
|
+
<p><a class="source-toggle" href="#"
|
332
|
+
onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
|
333
|
+
<div class="method-source-code" id="M000031-source">
|
334
|
+
<pre>
|
335
|
+
<span class="ruby-comment cmt"># File lib/smart_month/calculations.rb, line 64</span>
|
336
|
+
64: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">size</span>
|
337
|
+
65: <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">day</span>.<span class="ruby-identifier">to_i</span>
|
338
|
+
66: <span class="ruby-keyword kw">end</span>
|
339
|
+
</pre>
|
340
|
+
</div>
|
341
|
+
</div>
|
342
|
+
</div>
|
343
|
+
|
344
|
+
<div id="method-M000026" class="method-detail">
|
345
|
+
<a name="M000026"></a>
|
346
|
+
|
347
|
+
<div class="method-heading">
|
348
|
+
<a href="#M000026" class="method-signature">
|
349
|
+
<span class="method-name">third</span><span class="method-args">(day)</span>
|
350
|
+
</a>
|
351
|
+
</div>
|
352
|
+
|
353
|
+
<div class="method-description">
|
354
|
+
<p>
|
355
|
+
returns the <a href="Calculations.html#M000026">third</a> date of the day
|
356
|
+
requested.
|
357
|
+
</p>
|
358
|
+
<p><a class="source-toggle" href="#"
|
359
|
+
onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
|
360
|
+
<div class="method-source-code" id="M000026-source">
|
361
|
+
<pre>
|
362
|
+
<span class="ruby-comment cmt"># File lib/smart_month/calculations.rb, line 16</span>
|
363
|
+
16: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">third</span>(<span class="ruby-identifier">day</span>)
|
364
|
+
17: <span class="ruby-identifier">nth_weekday</span>(<span class="ruby-identifier">day</span>,<span class="ruby-value">3</span>)
|
365
|
+
18: <span class="ruby-keyword kw">end</span>
|
366
|
+
</pre>
|
367
|
+
</div>
|
368
|
+
</div>
|
369
|
+
</div>
|
370
|
+
|
371
|
+
|
372
|
+
</div>
|
373
|
+
|
374
|
+
|
375
|
+
</div>
|
376
|
+
|
377
|
+
|
378
|
+
<div id="validator-badges">
|
379
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
380
|
+
</div>
|
381
|
+
|
382
|
+
</body>
|
383
|
+
</html>
|
@@ -0,0 +1,306 @@
|
|
1
|
+
<?xml version="1.0" encoding="iso-8859-1"?>
|
2
|
+
<!DOCTYPE html
|
3
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
4
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
5
|
+
|
6
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
7
|
+
<head>
|
8
|
+
<title>Module: SmartMonth::Collection</title>
|
9
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
10
|
+
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
11
|
+
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
12
|
+
<script type="text/javascript">
|
13
|
+
// <![CDATA[
|
14
|
+
|
15
|
+
function popupCode( url ) {
|
16
|
+
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
17
|
+
}
|
18
|
+
|
19
|
+
function toggleCode( id ) {
|
20
|
+
if ( document.getElementById )
|
21
|
+
elem = document.getElementById( id );
|
22
|
+
else if ( document.all )
|
23
|
+
elem = eval( "document.all." + id );
|
24
|
+
else
|
25
|
+
return false;
|
26
|
+
|
27
|
+
elemStyle = elem.style;
|
28
|
+
|
29
|
+
if ( elemStyle.display != "block" ) {
|
30
|
+
elemStyle.display = "block"
|
31
|
+
} else {
|
32
|
+
elemStyle.display = "none"
|
33
|
+
}
|
34
|
+
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Make codeblocks hidden by default
|
39
|
+
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
40
|
+
|
41
|
+
// ]]>
|
42
|
+
</script>
|
43
|
+
|
44
|
+
</head>
|
45
|
+
<body>
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
<div id="classHeader">
|
50
|
+
<table class="header-table">
|
51
|
+
<tr class="top-aligned-row">
|
52
|
+
<td><strong>Module</strong></td>
|
53
|
+
<td class="class-name-in-header">SmartMonth::Collection</td>
|
54
|
+
</tr>
|
55
|
+
<tr class="top-aligned-row">
|
56
|
+
<td><strong>In:</strong></td>
|
57
|
+
<td>
|
58
|
+
<a href="../../files/lib/smart_month/collection_rb.html">
|
59
|
+
lib/smart_month/collection.rb
|
60
|
+
</a>
|
61
|
+
<br />
|
62
|
+
</td>
|
63
|
+
</tr>
|
64
|
+
|
65
|
+
</table>
|
66
|
+
</div>
|
67
|
+
<!-- banner header -->
|
68
|
+
|
69
|
+
<div id="bodyContent">
|
70
|
+
|
71
|
+
|
72
|
+
|
73
|
+
<div id="contextContent">
|
74
|
+
|
75
|
+
<div id="description">
|
76
|
+
<p>
|
77
|
+
Responsible for all collection-based functionality.
|
78
|
+
</p>
|
79
|
+
|
80
|
+
</div>
|
81
|
+
|
82
|
+
|
83
|
+
</div>
|
84
|
+
|
85
|
+
<div id="method-list">
|
86
|
+
<h3 class="section-bar">Methods</h3>
|
87
|
+
|
88
|
+
<div class="name-list">
|
89
|
+
<a href="#M000039">each</a>
|
90
|
+
<a href="#M000033">next</a>
|
91
|
+
<a href="#M000034">next!</a>
|
92
|
+
<a href="#M000036">prev</a>
|
93
|
+
<a href="#M000038">prev!</a>
|
94
|
+
<a href="#M000035">previous</a>
|
95
|
+
<a href="#M000037">previous!</a>
|
96
|
+
</div>
|
97
|
+
</div>
|
98
|
+
|
99
|
+
</div>
|
100
|
+
|
101
|
+
|
102
|
+
<!-- if includes -->
|
103
|
+
|
104
|
+
<div id="section">
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
<!-- if method_list -->
|
114
|
+
<div id="methods">
|
115
|
+
<h3 class="section-bar">Public Instance methods</h3>
|
116
|
+
|
117
|
+
<div id="method-M000039" class="method-detail">
|
118
|
+
<a name="M000039"></a>
|
119
|
+
|
120
|
+
<div class="method-heading">
|
121
|
+
<a href="#M000039" class="method-signature">
|
122
|
+
<span class="method-name">each</span><span class="method-args">(first = 1, last = self.last.day, &block)</span>
|
123
|
+
</a>
|
124
|
+
</div>
|
125
|
+
|
126
|
+
<div class="method-description">
|
127
|
+
<p>
|
128
|
+
allows us to iterate internally on the days of a given month.
|
129
|
+
</p>
|
130
|
+
<p><a class="source-toggle" href="#"
|
131
|
+
onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
|
132
|
+
<div class="method-source-code" id="M000039-source">
|
133
|
+
<pre>
|
134
|
+
<span class="ruby-comment cmt"># File lib/smart_month/collection.rb, line 44</span>
|
135
|
+
44: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>(<span class="ruby-identifier">first</span> = <span class="ruby-value">1</span>, <span class="ruby-identifier">last</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">day</span>, <span class="ruby-operator">&</span><span class="ruby-identifier">block</span>)
|
136
|
+
45: (<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">day</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">e</span><span class="ruby-operator">|</span>
|
137
|
+
46: <span class="ruby-identifier">block</span>.<span class="ruby-identifier">call</span>(<span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">year</span>,<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span>,<span class="ruby-identifier">e</span>))
|
138
|
+
47: <span class="ruby-keyword kw">end</span>
|
139
|
+
48: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">self</span>
|
140
|
+
49: <span class="ruby-keyword kw">end</span>
|
141
|
+
</pre>
|
142
|
+
</div>
|
143
|
+
</div>
|
144
|
+
</div>
|
145
|
+
|
146
|
+
<div id="method-M000033" class="method-detail">
|
147
|
+
<a name="M000033"></a>
|
148
|
+
|
149
|
+
<div class="method-heading">
|
150
|
+
<a href="#M000033" class="method-signature">
|
151
|
+
<span class="method-name">next</span><span class="method-args">()</span>
|
152
|
+
</a>
|
153
|
+
</div>
|
154
|
+
|
155
|
+
<div class="method-description">
|
156
|
+
<p>
|
157
|
+
allows for increment by copy
|
158
|
+
</p>
|
159
|
+
<p><a class="source-toggle" href="#"
|
160
|
+
onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
|
161
|
+
<div class="method-source-code" id="M000033-source">
|
162
|
+
<pre>
|
163
|
+
<span class="ruby-comment cmt"># File lib/smart_month/collection.rb, line 6</span>
|
164
|
+
6: <span class="ruby-keyword kw">def</span> <span class="ruby-keyword kw">next</span>
|
165
|
+
7: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">></span> <span class="ruby-value">12</span>
|
166
|
+
8: <span class="ruby-constant">Month</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">1</span>,<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">year</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)
|
167
|
+
9: <span class="ruby-keyword kw">else</span>
|
168
|
+
10: <span class="ruby-constant">Month</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>,<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">year</span>)
|
169
|
+
11: <span class="ruby-keyword kw">end</span>
|
170
|
+
12: <span class="ruby-keyword kw">end</span>
|
171
|
+
</pre>
|
172
|
+
</div>
|
173
|
+
</div>
|
174
|
+
</div>
|
175
|
+
|
176
|
+
<div id="method-M000034" class="method-detail">
|
177
|
+
<a name="M000034"></a>
|
178
|
+
|
179
|
+
<div class="method-heading">
|
180
|
+
<a href="#M000034" class="method-signature">
|
181
|
+
<span class="method-name">next!</span><span class="method-args">()</span>
|
182
|
+
</a>
|
183
|
+
</div>
|
184
|
+
|
185
|
+
<div class="method-description">
|
186
|
+
<p>
|
187
|
+
allows for in place incrementing by 1
|
188
|
+
</p>
|
189
|
+
<p><a class="source-toggle" href="#"
|
190
|
+
onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
|
191
|
+
<div class="method-source-code" id="M000034-source">
|
192
|
+
<pre>
|
193
|
+
<span class="ruby-comment cmt"># File lib/smart_month/collection.rb, line 15</span>
|
194
|
+
15: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">next!</span>
|
195
|
+
16: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">></span> <span class="ruby-value">12</span>
|
196
|
+
17: <span class="ruby-ivar">@date</span> = <span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">year</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>,<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span>,<span class="ruby-value">1</span>)
|
197
|
+
18: <span class="ruby-keyword kw">else</span>
|
198
|
+
19: <span class="ruby-ivar">@date</span> = <span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">year</span>,<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>,<span class="ruby-value">1</span>)
|
199
|
+
20: <span class="ruby-keyword kw">end</span>
|
200
|
+
21: <span class="ruby-keyword kw">end</span>
|
201
|
+
</pre>
|
202
|
+
</div>
|
203
|
+
</div>
|
204
|
+
</div>
|
205
|
+
|
206
|
+
<div id="method-M000036" class="method-detail">
|
207
|
+
<a name="M000036"></a>
|
208
|
+
|
209
|
+
<div class="method-heading">
|
210
|
+
<span class="method-name">prev</span><span class="method-args">()</span>
|
211
|
+
</div>
|
212
|
+
|
213
|
+
<div class="method-description">
|
214
|
+
<p>
|
215
|
+
Alias for <a href="Collection.html#M000035">previous</a>
|
216
|
+
</p>
|
217
|
+
</div>
|
218
|
+
</div>
|
219
|
+
|
220
|
+
<div id="method-M000038" class="method-detail">
|
221
|
+
<a name="M000038"></a>
|
222
|
+
|
223
|
+
<div class="method-heading">
|
224
|
+
<span class="method-name">prev!</span><span class="method-args">()</span>
|
225
|
+
</div>
|
226
|
+
|
227
|
+
<div class="method-description">
|
228
|
+
<p>
|
229
|
+
Alias for <a href="Collection.html#M000035">previous</a>!
|
230
|
+
</p>
|
231
|
+
</div>
|
232
|
+
</div>
|
233
|
+
|
234
|
+
<div id="method-M000035" class="method-detail">
|
235
|
+
<a name="M000035"></a>
|
236
|
+
|
237
|
+
<div class="method-heading">
|
238
|
+
<a href="#M000035" class="method-signature">
|
239
|
+
<span class="method-name">previous</span><span class="method-args">()</span>
|
240
|
+
</a>
|
241
|
+
</div>
|
242
|
+
|
243
|
+
<div class="method-description">
|
244
|
+
<p>
|
245
|
+
allows for deincrement by copy
|
246
|
+
</p>
|
247
|
+
<p><a class="source-toggle" href="#"
|
248
|
+
onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
|
249
|
+
<div class="method-source-code" id="M000035-source">
|
250
|
+
<pre>
|
251
|
+
<span class="ruby-comment cmt"># File lib/smart_month/collection.rb, line 24</span>
|
252
|
+
24: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">previous</span>
|
253
|
+
25: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
254
|
+
26: <span class="ruby-constant">Month</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">12</span>,<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">year</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)
|
255
|
+
27: <span class="ruby-keyword kw">else</span>
|
256
|
+
28: <span class="ruby-constant">Month</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>,<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">year</span>)
|
257
|
+
29: <span class="ruby-keyword kw">end</span>
|
258
|
+
30: <span class="ruby-keyword kw">end</span>
|
259
|
+
</pre>
|
260
|
+
</div>
|
261
|
+
</div>
|
262
|
+
</div>
|
263
|
+
|
264
|
+
<div id="method-M000037" class="method-detail">
|
265
|
+
<a name="M000037"></a>
|
266
|
+
|
267
|
+
<div class="method-heading">
|
268
|
+
<a href="#M000037" class="method-signature">
|
269
|
+
<span class="method-name">previous!</span><span class="method-args">()</span>
|
270
|
+
</a>
|
271
|
+
</div>
|
272
|
+
|
273
|
+
<div class="method-description">
|
274
|
+
<p>
|
275
|
+
allows for in place deincrementing by 1
|
276
|
+
</p>
|
277
|
+
<p><a class="source-toggle" href="#"
|
278
|
+
onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
|
279
|
+
<div class="method-source-code" id="M000037-source">
|
280
|
+
<pre>
|
281
|
+
<span class="ruby-comment cmt"># File lib/smart_month/collection.rb, line 34</span>
|
282
|
+
34: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">previous!</span>
|
283
|
+
35: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
284
|
+
36: <span class="ruby-ivar">@date</span> = <span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">year</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>,<span class="ruby-value">12</span>,<span class="ruby-value">1</span>)
|
285
|
+
37: <span class="ruby-keyword kw">else</span>
|
286
|
+
38: <span class="ruby-ivar">@date</span> = <span class="ruby-constant">Date</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">year</span>,<span class="ruby-ivar">@date</span>.<span class="ruby-identifier">month</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>,<span class="ruby-value">1</span>)
|
287
|
+
39: <span class="ruby-keyword kw">end</span>
|
288
|
+
40: <span class="ruby-keyword kw">end</span>
|
289
|
+
</pre>
|
290
|
+
</div>
|
291
|
+
</div>
|
292
|
+
</div>
|
293
|
+
|
294
|
+
|
295
|
+
</div>
|
296
|
+
|
297
|
+
|
298
|
+
</div>
|
299
|
+
|
300
|
+
|
301
|
+
<div id="validator-badges">
|
302
|
+
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
303
|
+
</div>
|
304
|
+
|
305
|
+
</body>
|
306
|
+
</html>
|