chupakabra_tools 0.0.9 → 0.0.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,5 @@
1
1
  module ChupakabraTools::Security
2
2
  def self.generate_secret(options={})
3
-
4
3
  options ||= {}
5
4
 
6
5
  chars = ""
@@ -38,4 +37,8 @@ module ChupakabraTools::Security
38
37
  1.upto(len) { |i| new_pass << chars[rand(chars.size-1)] }
39
38
  new_pass
40
39
  end
40
+
41
+ def self.get_password_hash(password)
42
+ ::Digest::SHA256.hexdigest(password)
43
+ end
41
44
  end
@@ -0,0 +1,9 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'chupakabra_tools/active_enum_extended'
3
+
4
+ class ChupakabraTools::SetManagementResult < ::ChupakabraTools::ActiveEnumExtended
5
+ value id: 1, name: I18n.t('chupakabra_tools.set_management_result.1'), tag: 'management_ok'
6
+ value id: 2, name: I18n.t('chupakabra_tools.set_management_result.2'), tag: 'set_not_found'
7
+ value id: 3, name: I18n.t('chupakabra_tools.set_management_result.3'), tag: 'entry_no_found'
8
+ value id: 4, name: I18n.t('chupakabra_tools.set_management_result.4'), tag: 'purged'
9
+ end
@@ -1,528 +1,542 @@
1
1
  require "active_support/all"
2
2
 
3
- class ChupakabraTools::TimeInterval
4
- attr_accessor :beginning, :ending
3
+ module ChupakabraTools
4
+ class TimeInterval
5
+ attr_accessor :beginning, :ending
5
6
 
6
- def initialize (interval_beginning, interval_ending)
7
- unless interval_beginning.is_a?(Time) || interval_beginning.is_a?(Date) || interval_beginning.is_a?(DateTime)
8
- raise "Begining of Interval is Not A Time, Date or DateTime value"
7
+ def initialize (interval_beginning, interval_ending)
8
+ unless interval_beginning.is_a?(Time) || interval_beginning.is_a?(Date) || interval_beginning.is_a?(DateTime)
9
+ raise "Begining of Interval is Not A Time, Date or DateTime value"
10
+ end
11
+ unless interval_ending.is_a?(Time) || interval_ending.is_a?(Date) || interval_ending.is_a?(DateTime)
12
+ raise "End of Interval is Not A Time, Date or DateTime value"
13
+ end
14
+
15
+ @beginning = interval_beginning.to_time
16
+ @ending = interval_ending.to_time
9
17
  end
10
- unless interval_ending.is_a?(Time) || interval_ending.is_a?(Date) || interval_ending.is_a?(DateTime)
11
- raise "End of Interval is Not A Time, Date or DateTime value"
18
+
19
+ def beginning
20
+ @beginning
12
21
  end
13
22
 
14
- @beginning = interval_beginning.to_time
15
- @ending = interval_ending.to_time
16
- end
23
+ def beginning= val
24
+ @beginning = val
25
+ end
17
26
 
18
- def beginning
19
- @beginning
20
- end
27
+ def ending
28
+ @ending
29
+ end
21
30
 
22
- def beginning= val
23
- @beginning = val
24
- end
31
+ def ending= val
32
+ @ending = val
33
+ end
25
34
 
26
- def ending
27
- @ending
28
- end
29
35
 
30
- def ending= val
31
- @ending = val
32
- end
36
+ def to_s
37
+ "#{@beginning} - #{@ending}"
38
+ end
33
39
 
40
+ def to_hash
41
+ {beginning: @beginning, ending: @ending}
42
+ end
34
43
 
44
+ def to_json
45
+ to_hash.to_json
46
+ end
35
47
 
36
- def to_s
37
- "#{@beginning} - #{@ending}"
38
- end
48
+ def future?(time_zone = nil)
49
+ !@beginning.nil? && @beginning > Time.now
50
+ end
39
51
 
40
- def to_hash
41
- {beginning: @beginning, ending: @ending}
42
- end
52
+ def past?(time_zone = nil)
53
+ !@ending.nil? && @ending < Time.now
54
+ end
43
55
 
44
- def to_json
45
- to_hash.to_json
46
- end
56
+ def present?(time_zone = nil)
57
+ !(is_past? || is_future?)
58
+ end
47
59
 
48
- def future?(time_zone = nil)
49
- !@beginning.nil? && @beginning > Time.now
50
- end
60
+ def valid?
61
+ return false unless @beginning
62
+ return false unless @ending
63
+ @beginning < @ending
64
+ end
51
65
 
52
- def past?(time_zone = nil)
53
- !@ending.nil? && @ending < Time.now
54
- end
55
66
 
56
- def present?(time_zone = nil)
57
- !(is_past? || is_future?)
58
- end
67
+ def time_line(time_zone = nil)
68
+ return "future" if is_future?(time_zone)
69
+ return "past" if is_past?(time_zone)
70
+ "present"
71
+ end
59
72
 
60
- def valid?
61
- return false unless @beginning
62
- return false unless @ending
63
- @beginning < @ending
64
- end
65
73
 
74
+ def inverse!
75
+ bg = @beginning
76
+ en = @ending
66
77
 
67
- def time_line(time_zone = nil)
68
- return "future" if is_future?(time_zone)
69
- return "past" if is_past?(time_zone)
70
- "present"
71
- end
78
+ @beginning = en
79
+ @ending = bg
80
+ to_s
81
+ end
72
82
 
83
+ def add_hours!(number)
84
+ @beginning += number.hours if @beginning
85
+ @ending += number.hours if @ending
86
+ to_s
87
+ end
73
88
 
89
+ def add_days!(number)
90
+ @beginning += number.days if @beginning
91
+ @ending += number.days if @ending
92
+ to_s
93
+ end
74
94
 
95
+ def add_weeks!(number)
96
+ @beginning += number.weeks if @beginning
97
+ @ending += number.weeks if @ending
98
+ to_s
99
+ end
75
100
 
76
- def inverse!
77
- bg = @beginning
78
- en = @ending
101
+ def add_months!(number)
102
+ @beginning += number.months if @beginning
103
+ @ending += number.months if @ending
104
+ to_s
105
+ end
79
106
 
80
- @beginning = en
81
- @ending = bg
82
- to_s
83
- end
84
- def add_hours!(number)
85
- @beginning += number.hours if @beginning
86
- @ending += number.hours if @ending
87
- to_s
88
- end
89
- def add_days!(number)
90
- @beginning += number.days if @beginning
91
- @ending += number.days if @ending
92
- to_s
93
- end
94
- def add_weeks!(number)
95
- @beginning += number.weeks if @beginning
96
- @ending += number.weeks if @ending
97
- to_s
98
- end
99
- def add_months!(number)
100
- @beginning += number.months if @beginning
101
- @ending += number.months if @ending
102
- to_s
103
- end
104
- def add_quarters!(number)
105
- @beginning += number.quarters if @beginning
106
- @ending += number.quarters if @ending
107
- to_s
108
- end
109
- def add_years!(number)
110
- @beginning += number.years if @beginning
111
- @ending += number.years if @ending
112
- to_s
113
- end
107
+ def add_quarters!(number)
108
+ @beginning += number.quarters if @beginning
109
+ @ending += number.quarters if @ending
110
+ to_s
111
+ end
114
112
 
113
+ def add_years!(number)
114
+ @beginning += number.years if @beginning
115
+ @ending += number.years if @ending
116
+ to_s
117
+ end
115
118
 
116
119
 
120
+ def subtract_hours!(number)
121
+ @beginning.ago(number.hours) if @beginning
122
+ @ending.ago(number.hours) if @ending
123
+ to_s
124
+ end
117
125
 
118
- def subtract_hours!(number)
119
- @beginning.ago(number.hours) if @beginning
120
- @ending.ago(number.hours) if @ending
121
- to_s
122
- end
123
- def subtract_days!(number)
124
- @beginning.ago(number.days) if @beginning
125
- @ending.ago(number.days) if @ending
126
- to_s
127
- end
128
- def subtract_weeks!(number)
129
- @beginning.ago(number.weeks) if @beginning
130
- @ending.ago(number.weeks) if @ending
131
- to_s
132
- end
133
- def subtract_months!(number)
134
- @beginning.ago(number.months) if @beginning
135
- @ending.ago(number.months) if @ending
136
- to_s
137
- end
138
- def subtract_quarters!(number)
139
- @beginning.ago(number.quarters) if @beginning
140
- @ending.ago(number.quarters) if @ending
141
- to_s
142
- end
143
- def subtract_years!(number)
144
- @beginning.ago(number.years) if @beginning
145
- @ending.ago(number.years) if @ending
146
- to_s
147
- end
126
+ def subtract_days!(number)
127
+ @beginning.ago(number.days) if @beginning
128
+ @ending.ago(number.days) if @ending
129
+ to_s
130
+ end
148
131
 
132
+ def subtract_weeks!(number)
133
+ @beginning.ago(number.weeks) if @beginning
134
+ @ending.ago(number.weeks) if @ending
135
+ to_s
136
+ end
149
137
 
138
+ def subtract_months!(number)
139
+ @beginning.ago(number.months) if @beginning
140
+ @ending.ago(number.months) if @ending
141
+ to_s
142
+ end
150
143
 
144
+ def subtract_quarters!(number)
145
+ @beginning.ago(number.quarters) if @beginning
146
+ @ending.ago(number.quarters) if @ending
147
+ to_s
148
+ end
151
149
 
152
- def inverse
153
- ChupakabraTools::TimeInterval.new(@ending, @beginning)
154
- end
150
+ def subtract_years!(number)
151
+ @beginning.ago(number.years) if @beginning
152
+ @ending.ago(number.years) if @ending
153
+ to_s
154
+ end
155
155
 
156
- def add_hours(number)
157
- new_beginning = @beginning + number.hours
158
- new_ending = @ending + number.hours
159
- ChupakabraTools::TimeInterval.new( new_beginning, new_ending)
160
- end
161
- def add_days(number)
162
- new_beginning = @beginning + number.days
163
- new_ending = @ending + number.days
164
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
165
- end
166
- def add_weeks(number)
167
- new_beginning = @beginning + number.weeks
168
- new_ending = @ending + number.weeks
169
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
170
- end
171
- def add_months(number)
172
- new_beginning = @beginning + number.months
173
- new_ending = @ending + number.months
174
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
175
- end
176
- def add_quarters(number)
177
- new_beginning = @beginning + number.quarters
178
- new_ending = @ending + number.quarters
179
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
180
- end
181
- def add_years(number)
182
- new_beginning = @beginning + number.years
183
- new_ending = @ending + number.years
184
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
185
- end
186
156
 
157
+ def inverse
158
+ ::ChupakabraTools::TimeInterval.new(@ending, @beginning)
159
+ end
187
160
 
161
+ def add_hours(number)
162
+ new_beginning = @beginning + number.hours
163
+ new_ending = @ending + number.hours
164
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
165
+ end
188
166
 
167
+ def add_days(number)
168
+ new_beginning = @beginning + number.days
169
+ new_ending = @ending + number.days
170
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
171
+ end
189
172
 
190
- def subtract_hours(number)
191
- new_beginning = @beginning.ago(number.hours)
192
- new_ending = @ending.ago(number.hours)
193
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
194
- end
195
- def subtract_days(number)
196
- new_beginning = @beginning.ago(number == 1 ? 1.day : number.days)
197
- new_ending = @ending.ago(number == 1 ? 1.day : number.days)
198
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
199
- end
200
- def subtract_weeks(number)
201
- new_beginning = @beginning.ago(number.weeks)
202
- new_ending = @ending.ago(number.weeks)
203
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
204
- end
205
- def subtract_months(number)
206
- new_beginning = @beginning.ago(number.months)
207
- new_ending = @ending.ago(number.months)
208
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
209
- end
210
- def subtract_quarters(number)
211
- new_beginning = @beginning.ago(number.quarters)
212
- new_ending = @ending.ago(number.quarters)
213
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
214
- end
215
- def subtract_years(number)
216
- new_beginning = @beginning.ago(number.years)
217
- new_ending = @ending.ago(number.years)
218
- ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
219
- end
173
+ def add_weeks(number)
174
+ new_beginning = @beginning + number.weeks
175
+ new_ending = @ending + number.weeks
176
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
177
+ end
220
178
 
179
+ def add_months(number)
180
+ new_beginning = @beginning + number.months
181
+ new_ending = @ending + number.months
182
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
183
+ end
221
184
 
185
+ def add_quarters(number)
186
+ new_beginning = @beginning + number.quarters
187
+ new_ending = @ending + number.quarters
188
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
189
+ end
222
190
 
191
+ def add_years(number)
192
+ new_beginning = @beginning + number.years
193
+ new_ending = @ending + number.years
194
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
195
+ end
223
196
 
224
- # ************************************** HOURs **********************************
225
197
 
226
- def self.this_hour(time_zone = nil)
227
- hour(Time.now, time_zone)
228
- end
198
+ def subtract_hours(number)
199
+ new_beginning = @beginning.ago(number.hours)
200
+ new_ending = @ending.ago(number.hours)
201
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
202
+ end
229
203
 
230
- def self.previous_hour(definite_time = nil, time_zone = nil)
231
- hour(definite_time, time_zone).subtract_hours(1)
232
- end
204
+ def subtract_days(number)
205
+ new_beginning = @beginning.ago(number == 1 ? 1.day : number.days)
206
+ new_ending = @ending.ago(number == 1 ? 1.day : number.days)
207
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
208
+ end
233
209
 
234
- def self.next_hour(definite_time = nil, time_zone = nil)
235
- hour(definite_time, time_zone).add_hours(1)
236
- end
210
+ def subtract_weeks(number)
211
+ new_beginning = @beginning.ago(number.weeks)
212
+ new_ending = @ending.ago(number.weeks)
213
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
214
+ end
237
215
 
238
- def self.hour(definite_time = nil, time_zone = nil)
239
- if definite_time
240
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
241
- if definite_time.is_a?(Integer)
216
+ def subtract_months(number)
217
+ new_beginning = @beginning.ago(number.months)
218
+ new_ending = @ending.ago(number.months)
219
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
220
+ end
242
221
 
243
- definite_time = definite_time == 0 ? definite_time : (definite_time.abs - 1)
244
- definite_time = Time.new(Time.now.year, Time.now.month, Time.now.day, definite_time, 0,0)
245
- end
222
+ def subtract_quarters(number)
223
+ new_beginning = @beginning.ago(number.quarters)
224
+ new_ending = @ending.ago(number.quarters)
225
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
226
+ end
246
227
 
228
+ def subtract_years(number)
229
+ new_beginning = @beginning.ago(number.years)
230
+ new_ending = @ending.ago(number.years)
231
+ ::ChupakabraTools::TimeInterval.new(new_beginning, new_ending)
247
232
  end
248
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
249
233
 
250
- ChupakabraTools::TimeInterval.new(time.beginning_of_hour, time.end_of_hour)
251
- end
252
234
 
235
+ # ************************************** HOURs **********************************
253
236
 
254
- # ************************************* DAYS *****************************************
237
+ def self.this_hour(time_zone = nil)
238
+ hour(Time.now, time_zone)
239
+ end
255
240
 
256
- def self.tomorrow(time_zone = nil)
257
- next_day(Time.now, time_zone)
258
- end
241
+ def self.previous_hour(definite_time = nil, time_zone = nil)
242
+ hour(definite_time, time_zone).subtract_hours(1)
243
+ end
259
244
 
260
- def self.yesterday(time_zone = nil)
261
- previous_day(Time.now, time_zone)
262
- end
263
- def self.today(time_zone = nil)
264
- day(Time.now, time_zone)
265
- end
245
+ def self.next_hour(definite_time = nil, time_zone = nil)
246
+ hour(definite_time, time_zone).add_hours(1)
247
+ end
266
248
 
249
+ def self.hour(definite_time = nil, time_zone = nil)
250
+ if definite_time
251
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
252
+ if definite_time.is_a?(Integer)
253
+
254
+ definite_time = definite_time == 0 ? definite_time : (definite_time.abs - 1)
255
+ definite_time = Time.new(Time.now.year, Time.now.month, Time.now.day, definite_time, 0, 0)
256
+ end
267
257
 
268
- def self.next_day(definite_time, time_zone = nil)
269
- day(definite_time, time_zone).add_days(1)
270
- end
271
- def self.previous_day(definite_time, time_zone = nil)
272
- day(definite_time, time_zone).subtract_days(1)
273
- end
274
- def self.day(definite_time = nil, time_zone = nil)
275
- if definite_time
276
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
277
- if definite_time.is_a?(Integer)
278
- definite_time = definite_time == 0 ? definite_time : (definite_time.abs - 1)
279
- definite_time = Time.new(Time.now.year, 1, 1) + definite_time.days
280
258
  end
281
- end
259
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
282
260
 
283
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
261
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_hour, time.end_of_hour)
262
+ end
284
263
 
285
- ChupakabraTools::TimeInterval.new(time.beginning_of_day, time.end_of_day)
286
- end
287
264
 
265
+ # ************************************* DAYS *****************************************
288
266
 
289
- # ************************************** WEEKS **********************************
267
+ def self.tomorrow(time_zone = nil)
268
+ next_day(Time.now, time_zone)
269
+ end
290
270
 
291
- def self.this_week(time_zone = nil)
292
- week(Time.now, time_zone)
293
- end
271
+ def self.yesterday(time_zone = nil)
272
+ previous_day(Time.now, time_zone)
273
+ end
294
274
 
295
- def self.last_week(time_zone = nil)
296
- previous_week(Time.now, time_zone)
297
- end
275
+ def self.today(time_zone = nil)
276
+ day(Time.now, time_zone)
277
+ end
298
278
 
299
- def self.previous_week(definite_time = nil, time_zone = nil)
300
- week(definite_time, time_zone).subtract_weeks(1)
301
- end
302
279
 
303
- def self.next_week(definite_time = nil, time_zone = nil)
304
- week(definite_time, time_zone).add_weeks(1)
305
- end
280
+ def self.next_day(definite_time, time_zone = nil)
281
+ day(definite_time, time_zone).add_days(1)
282
+ end
306
283
 
307
- def self.week(definite_time = nil, time_zone = nil)
308
- if definite_time
309
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
284
+ def self.previous_day(definite_time, time_zone = nil)
285
+ day(definite_time, time_zone).subtract_days(1)
310
286
  end
311
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
312
287
 
313
- ChupakabraTools::TimeInterval.new(time.beginning_of_week, time.end_of_week)
314
- end
288
+ def self.day(definite_time = nil, time_zone = nil)
289
+ if definite_time
290
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
291
+ if definite_time.is_a?(Integer)
292
+ definite_time = definite_time == 0 ? definite_time : (definite_time.abs - 1)
293
+ definite_time = Time.new(Time.now.year, 1, 1) + definite_time.days
294
+ end
295
+ end
315
296
 
316
- # ************************************** MONTHS **********************************
297
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
317
298
 
318
- def self.this_month(time_zone = nil)
319
- month(Time.now, time_zone)
320
- end
299
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_day, time.end_of_day)
300
+ end
321
301
 
322
- def self.last_month(time_zone = nil)
323
- month(Time.now.ago(1.month), time_zone)
324
- end
325
302
 
326
- def self.previous_month(definite_time = nil, time_zone = nil)
327
- if definite_time
328
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
329
- definite_time = Time.new(Time.now.year, definite_time, 1) if definite_time.is_a?(Integer)
303
+ # ************************************** WEEKS **********************************
304
+
305
+ def self.this_week(time_zone = nil)
306
+ week(Time.now, time_zone)
330
307
  end
331
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time).ago(1.month)
332
308
 
333
- ChupakabraTools::TimeInterval.new(time.beginning_of_month, time.end_of_month)
334
- end
309
+ def self.last_week(time_zone = nil)
310
+ previous_week(Time.now, time_zone)
311
+ end
335
312
 
336
- def self.next_month(definite_time = nil, time_zone = nil)
337
- if definite_time
338
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
339
- definite_time = Time.new(Time.now.year, definite_time, 1) if definite_time.is_a?(Integer)
313
+ def self.previous_week(definite_time = nil, time_zone = nil)
314
+ week(definite_time, time_zone).subtract_weeks(1)
340
315
  end
341
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time) + 1.month
342
316
 
343
- ChupakabraTools::TimeInterval.new(time.beginning_of_month, time.end_of_month)
344
- end
317
+ def self.next_week(definite_time = nil, time_zone = nil)
318
+ week(definite_time, time_zone).add_weeks(1)
319
+ end
345
320
 
346
- def self.month(definite_time = nil, time_zone = nil)
347
- if definite_time
348
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
349
- definite_time = Time.new(Time.now.year, definite_time, 1) if definite_time.is_a?(Integer)
321
+ def self.week(definite_time = nil, time_zone = nil)
322
+ if definite_time
323
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
324
+ end
325
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
326
+
327
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_week, time.end_of_week)
350
328
  end
351
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
352
329
 
353
- ChupakabraTools::TimeInterval.new(time.beginning_of_month, time.end_of_month)
354
- end
330
+ # ************************************** MONTHS **********************************
355
331
 
356
- def self.month_of_year(month, year, time_zone = nil)
357
- time = Time.new(year, month, 1)
358
- ChupakabraTools::TimeInterval.new(time.beginning_of_month, time.end_of_month)
359
- end
332
+ def self.this_month(time_zone = nil)
333
+ month(Time.now, time_zone)
334
+ end
360
335
 
336
+ def self.last_month(time_zone = nil)
337
+ month(Time.now.ago(1.month), time_zone)
338
+ end
361
339
 
340
+ def self.previous_month(definite_time = nil, time_zone = nil)
341
+ if definite_time
342
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
343
+ definite_time = Time.new(Time.now.year, definite_time, 1) if definite_time.is_a?(Integer)
344
+ end
345
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time).ago(1.month)
362
346
 
363
- # ************************************** QUARTERS **********************************
347
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_month, time.end_of_month)
348
+ end
364
349
 
365
- def self.last_quarter(time_zone = nil)
366
- previous_quarter(Time.now, time_zone)
367
- end
350
+ def self.next_month(definite_time = nil, time_zone = nil)
351
+ if definite_time
352
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
353
+ definite_time = Time.new(Time.now.year, definite_time, 1) if definite_time.is_a?(Integer)
354
+ end
355
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time) + 1.month
368
356
 
369
- def self.this_quarter(time_zone = nil)
370
- quarter(Time.now, time_zone)
371
- end
357
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_month, time.end_of_month)
358
+ end
372
359
 
360
+ def self.month(definite_time = nil, time_zone = nil)
361
+ if definite_time
362
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
363
+ definite_time = Time.new(Time.now.year, definite_time, 1) if definite_time.is_a?(Integer)
364
+ end
365
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
373
366
 
374
- def self.previous_quarter(definite_time = nil, time_zone = nil)
375
- if definite_time
376
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
377
- definite_time = Time.new(Time.now.year, (definite_time - 1) * 3 + 1, 1, 0, 0) if definite_time.is_a?(Integer)
367
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_month, time.end_of_month)
378
368
  end
379
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time).ago(3.months)
380
369
 
381
- ChupakabraTools::TimeInterval.new(time.beginning_of_quarter, time.end_of_quarter)
382
- end
370
+ def self.month_of_year(month, year, time_zone = nil)
371
+ time = Time.new(year, month, 1)
372
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_month, time.end_of_month)
373
+ end
383
374
 
384
- def self.next_quarter(definite_time = nil, time_zone = nil)
385
- if definite_time
386
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
387
- definite_time = Time.new(Time.now.year, (definite_time - 1) * 3 + 1, 1, 0, 0) if definite_time.is_a?(Integer)
375
+
376
+ # ************************************** QUARTERS **********************************
377
+
378
+ def self.last_quarter(time_zone = nil)
379
+ previous_quarter(Time.now, time_zone)
388
380
  end
389
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time) + 3.months
390
- ChupakabraTools::TimeInterval.new(time.beginning_of_quarter, time.end_of_quarter)
391
- end
392
381
 
393
- def self.quarter(definite_time = nil, time_zone = nil)
394
- if definite_time
395
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
396
- definite_time = Time.new(Time.now.year, (definite_time - 1) * 3 + 1, 1, 0, 0) if definite_time.is_a?(Integer)
382
+ def self.this_quarter(time_zone = nil)
383
+ quarter(Time.now, time_zone)
397
384
  end
398
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
399
385
 
400
- ChupakabraTools::TimeInterval.new(time.beginning_of_quarter, time.end_of_quarter)
401
- end
402
386
 
387
+ def self.previous_quarter(definite_time = nil, time_zone = nil)
388
+ if definite_time
389
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
390
+ definite_time = Time.new(Time.now.year, (definite_time - 1) * 3 + 1, 1, 0, 0) if definite_time.is_a?(Integer)
391
+ end
392
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time).ago(3.months)
403
393
 
404
- # ************************************** YEARS **********************************
394
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_quarter, time.end_of_quarter)
395
+ end
405
396
 
406
- def self.last_year(time_zone = nil)
407
- previous_year(Time.now, time_zone)
408
- end
397
+ def self.next_quarter(definite_time = nil, time_zone = nil)
398
+ if definite_time
399
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
400
+ definite_time = Time.new(Time.now.year, (definite_time - 1) * 3 + 1, 1, 0, 0) if definite_time.is_a?(Integer)
401
+ end
402
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time) + 3.months
403
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_quarter, time.end_of_quarter)
404
+ end
409
405
 
410
- def self.this_year(time_zone = nil)
411
- year(Time.now, time_zone)
412
- end
406
+ def self.quarter(definite_time = nil, time_zone = nil)
407
+ if definite_time
408
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
409
+ definite_time = Time.new(Time.now.year, (definite_time - 1) * 3 + 1, 1, 0, 0) if definite_time.is_a?(Integer)
410
+ end
411
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
412
+
413
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_quarter, time.end_of_quarter)
414
+ end
413
415
 
414
416
 
415
- def self.previous_year(definite_time = nil, time_zone = nil)
416
- if definite_time
417
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
418
- definite_time = Time.new(definite_time, 1, 1, 0, 0) if definite_time.is_a?(Integer)
417
+ # ************************************** YEARS **********************************
418
+
419
+ def self.last_year(time_zone = nil)
420
+ previous_year(Time.now, time_zone)
421
+ end
422
+
423
+ def self.this_year(time_zone = nil)
424
+ year(Time.now, time_zone)
419
425
  end
420
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time).ago(1.year)
421
426
 
422
- ChupakabraTools::TimeInterval.new(time.beginning_of_year, time.end_of_year)
423
- end
424
427
 
425
- def self.next_year(definite_time = nil, time_zone = nil)
426
- if definite_time
427
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
428
- definite_time = Time.new(definite_time, 1, 1, 0, 0) if definite_time.is_a?(Integer)
428
+ def self.previous_year(definite_time = nil, time_zone = nil)
429
+ if definite_time
430
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
431
+ definite_time = Time.new(definite_time, 1, 1, 0, 0) if definite_time.is_a?(Integer)
432
+ end
433
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time).ago(1.year)
434
+
435
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_year, time.end_of_year)
429
436
  end
430
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time) + 1.year
431
- ChupakabraTools::TimeInterval.new(time.beginning_of_year, time.end_of_year)
432
- end
433
437
 
434
- def self.year(definite_time = nil, time_zone = nil)
435
- if definite_time
436
- definite_time = definite_time.to_time if definite_time.is_a?(Date)
437
- definite_time = Time.new(definite_time, 1, 1, 0, 0) if definite_time.is_a?(Integer)
438
+ def self.next_year(definite_time = nil, time_zone = nil)
439
+ if definite_time
440
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
441
+ definite_time = Time.new(definite_time, 1, 1, 0, 0) if definite_time.is_a?(Integer)
442
+ end
443
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time) + 1.year
444
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_year, time.end_of_year)
438
445
  end
439
- time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
440
446
 
441
- ChupakabraTools::TimeInterval.new(time.beginning_of_year, time.end_of_year)
442
- end
447
+ def self.year(definite_time = nil, time_zone = nil)
448
+ if definite_time
449
+ definite_time = definite_time.to_time if definite_time.is_a?(Date)
450
+ definite_time = Time.new(definite_time, 1, 1, 0, 0) if definite_time.is_a?(Integer)
451
+ end
452
+ time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
443
453
 
454
+ ::ChupakabraTools::TimeInterval.new(time.beginning_of_year, time.end_of_year)
455
+ end
444
456
 
445
- # ChupakabraTools::TimeInterval.new(beginning: , ending: )
446
-
447
- def self.get_time_interval(interval_request, time = nil)
448
- interval = nil
449
- if interval_request
450
- if time.nil?
451
-
452
- interval_request = interval_request.to_s.strip.downcase
453
-
454
- if ['today', 'this_day', 'this-day', 'this day'].include?(interval_request)
455
- interval = ChupakabraTools::TimeInterval.today
456
- elsif ['yesterday', 'previous_day', 'previous_day', 'previous_day'].include?(interval_request)
457
- interval = ChupakabraTools::TimeInterval.yesterday
458
- elsif ['tomorrow', 'next_day', 'next-day', 'next day'].include?(interval_request)
459
- interval = ChupakabraTools::TimeInterval.tomorrow
460
- elsif ['this_week', 'this-week', 'this week'].include?(interval_request)
461
- interval = ChupakabraTools::TimeInterval.this_week
462
- elsif ['last_week', 'last-week', 'last week'].include?(interval_request)
463
- interval = ChupakabraTools::TimeInterval.last_week
464
- elsif ['next_week', 'next-week', 'next week'].include?(interval_request)
465
- interval = ChupakabraTools::TimeInterval.next_week
466
- elsif ['this_month', 'this-month', 'this month'].include?(interval_request)
467
- interval = ChupakabraTools::TimeInterval.this_month
468
- elsif ['last_month', 'last-month', 'last month', 'previous_month', 'previous-month', 'previous month'].include?(interval_request)
469
- interval = ChupakabraTools::TimeInterval.last_month
470
- elsif ['next_month', 'next-month', 'next month'].include?(interval_request)
471
- interval = ChupakabraTools::TimeInterval.next_month
472
- elsif ['this_quarter', 'this-quarter', 'this quarter'].include?(interval_request)
473
- interval = ChupakabraTools::TimeInterval.this_quarter
474
- elsif ['last_quarter', 'last-quarter', 'last quarter', 'previous_quarter', 'previous-quarter', 'previous quarter'].include?(interval_request)
475
- interval = ChupakabraTools::TimeInterval.last_quarter
476
- elsif ['next_quarter', 'next-quarter', 'next quarter'].include?(interval_request)
477
- interval = ChupakabraTools::TimeInterval.next_quarter
478
- elsif ['this_year', 'this-year', 'this year'].include?(interval_request)
479
- interval = ChupakabraTools::TimeInterval.this_year
480
- elsif ['last_year', 'last-year', 'last year', 'previous_year', 'previous-year', 'previous year'].include?(interval_request)
481
- interval = ChupakabraTools::TimeInterval.last_year
482
- elsif ['next_year', 'next-year', 'next year'].include?(interval_request)
483
- interval = ChupakabraTools::TimeInterval.next_year
484
- end
485
- else
486
- if time.is_a?(Date)
487
- time = time.to_time
488
- end
489
457
 
490
- if ['this_day', 'this-day', 'this day'].include?(interval_request)
491
- interval = ChupakabraTools::TimeInterval.this_day(time)
492
- elsif ['previous_day', 'previous_day', 'previous_day'].include?(interval_request)
493
- interval = ChupakabraTools::TimeInterval.previous_day(time)
494
- elsif ['next_day', 'next-day', 'next day'].include?(interval_request)
495
- interval = ChupakabraTools::TimeInterval.next_day(time)
496
- elsif ['this_week', 'this-week', 'this week'].include?(interval_request)
497
- interval = ChupakabraTools::TimeInterval.this_week
498
- elsif ['last_week', 'last-week', 'last week'].include?(interval_request)
499
- interval = ChupakabraTools::TimeInterval.last_week
500
- elsif ['next_week', 'next-week', 'next week'].include?(interval_request)
501
- interval = ChupakabraTools::TimeInterval.next_week
502
- elsif ['this_month', 'this-month', 'this month'].include?(interval_request)
503
- interval = ChupakabraTools::TimeInterval.this_month
504
- elsif ['last_month', 'last-month', 'last month', 'previous_month', 'previous-month', 'previous month'].include?(interval_request)
505
- interval = ChupakabraTools::TimeInterval.last_month
506
- elsif ['next_month', 'next-month', 'next month'].include?(interval_request)
507
- interval = ChupakabraTools::TimeInterval.next_month
508
- elsif ['this_quarter', 'this-quarter', 'this quarter'].include?(interval_request)
509
- interval[:start] = ChupakabraTools::TimeInterval.this_quarter
510
- elsif ['last_quarter', 'last-quarter', 'last quarter', 'previous_quarter', 'previous-quarter', 'previous quarter'].include?(interval_request)
511
- interval = ChupakabraTools::TimeInterval.last_quarter
512
- elsif ['next_quarter', 'next-quarter', 'next quarter'].include?(interval_request)
513
- interval = ChupakabraTools::TimeInterval.next_quarter
514
- elsif ['this_year', 'this-year', 'this year'].include?(interval_request)
515
- interval[:start] = ChupakabraTools::TimeInterval.this_year
516
- elsif ['last_year', 'last-year', 'last year', 'previous_year', 'previous-year', 'previous year'].include?(interval_request)
517
- interval = ChupakabraTools::TimeInterval.last_year
518
- elsif ['next_year', 'next-year', 'next year'].include?(interval_request)
519
- interval = ChupakabraTools::TimeInterval.next_year
458
+ # ::ChupakabraTools::TimeInterval.new(beginning: , ending: )
459
+
460
+ def self.get_time_interval(interval_request, time = nil)
461
+ interval = nil
462
+ if interval_request
463
+ if time.nil?
464
+
465
+ interval_request = interval_request.to_s.strip.downcase
466
+
467
+ if ['today', 'this_day', 'this-day', 'this day'].include?(interval_request)
468
+ interval = ::ChupakabraTools::TimeInterval.today
469
+ elsif ['yesterday', 'previous_day', 'previous_day', 'previous_day'].include?(interval_request)
470
+ interval = ::ChupakabraTools::TimeInterval.yesterday
471
+ elsif ['tomorrow', 'next_day', 'next-day', 'next day'].include?(interval_request)
472
+ interval = ::ChupakabraTools::TimeInterval.tomorrow
473
+ elsif ['this_week', 'this-week', 'this week'].include?(interval_request)
474
+ interval = ::ChupakabraTools::TimeInterval.this_week
475
+ elsif ['last_week', 'last-week', 'last week'].include?(interval_request)
476
+ interval = ::ChupakabraTools::TimeInterval.last_week
477
+ elsif ['next_week', 'next-week', 'next week'].include?(interval_request)
478
+ interval = ::ChupakabraTools::TimeInterval.next_week
479
+ elsif ['this_month', 'this-month', 'this month'].include?(interval_request)
480
+ interval = ::ChupakabraTools::TimeInterval.this_month
481
+ elsif ['last_month', 'last-month', 'last month', 'previous_month', 'previous-month', 'previous month'].include?(interval_request)
482
+ interval = ::ChupakabraTools::TimeInterval.last_month
483
+ elsif ['next_month', 'next-month', 'next month'].include?(interval_request)
484
+ interval = ::ChupakabraTools::TimeInterval.next_month
485
+ elsif ['this_quarter', 'this-quarter', 'this quarter'].include?(interval_request)
486
+ interval = ::ChupakabraTools::TimeInterval.this_quarter
487
+ elsif ['last_quarter', 'last-quarter', 'last quarter', 'previous_quarter', 'previous-quarter', 'previous quarter'].include?(interval_request)
488
+ interval = ::ChupakabraTools::TimeInterval.last_quarter
489
+ elsif ['next_quarter', 'next-quarter', 'next quarter'].include?(interval_request)
490
+ interval = ::ChupakabraTools::TimeInterval.next_quarter
491
+ elsif ['this_year', 'this-year', 'this year'].include?(interval_request)
492
+ interval = ::ChupakabraTools::TimeInterval.this_year
493
+ elsif ['last_year', 'last-year', 'last year', 'previous_year', 'previous-year', 'previous year'].include?(interval_request)
494
+ interval = ::ChupakabraTools::TimeInterval.last_year
495
+ elsif ['next_year', 'next-year', 'next year'].include?(interval_request)
496
+ interval = ::ChupakabraTools::TimeInterval.next_year
497
+ end
498
+ else
499
+ if time.is_a?(Date)
500
+ time = time.to_time
501
+ end
502
+
503
+ if ['this_day', 'this-day', 'this day'].include?(interval_request)
504
+ interval = ::ChupakabraTools::TimeInterval.this_day(time)
505
+ elsif ['previous_day', 'previous_day', 'previous_day'].include?(interval_request)
506
+ interval = ::ChupakabraTools::TimeInterval.previous_day(time)
507
+ elsif ['next_day', 'next-day', 'next day'].include?(interval_request)
508
+ interval = ::ChupakabraTools::TimeInterval.next_day(time)
509
+ elsif ['this_week', 'this-week', 'this week'].include?(interval_request)
510
+ interval = ::ChupakabraTools::TimeInterval.this_week
511
+ elsif ['last_week', 'last-week', 'last week'].include?(interval_request)
512
+ interval = ::ChupakabraTools::TimeInterval.last_week
513
+ elsif ['next_week', 'next-week', 'next week'].include?(interval_request)
514
+ interval = ::ChupakabraTools::TimeInterval.next_week
515
+ elsif ['this_month', 'this-month', 'this month'].include?(interval_request)
516
+ interval = ::ChupakabraTools::TimeInterval.this_month
517
+ elsif ['last_month', 'last-month', 'last month', 'previous_month', 'previous-month', 'previous month'].include?(interval_request)
518
+ interval = ::ChupakabraTools::TimeInterval.last_month
519
+ elsif ['next_month', 'next-month', 'next month'].include?(interval_request)
520
+ interval = ::ChupakabraTools::TimeInterval.next_month
521
+ elsif ['this_quarter', 'this-quarter', 'this quarter'].include?(interval_request)
522
+ interval[:start] = ::ChupakabraTools::TimeInterval.this_quarter
523
+ elsif ['last_quarter', 'last-quarter', 'last quarter', 'previous_quarter', 'previous-quarter', 'previous quarter'].include?(interval_request)
524
+ interval = ::ChupakabraTools::TimeInterval.last_quarter
525
+ elsif ['next_quarter', 'next-quarter', 'next quarter'].include?(interval_request)
526
+ interval = ::ChupakabraTools::TimeInterval.next_quarter
527
+ elsif ['this_year', 'this-year', 'this year'].include?(interval_request)
528
+ interval[:start] = ::ChupakabraTools::TimeInterval.this_year
529
+ elsif ['last_year', 'last-year', 'last year', 'previous_year', 'previous-year', 'previous year'].include?(interval_request)
530
+ interval = ::ChupakabraTools::TimeInterval.last_year
531
+ elsif ['next_year', 'next-year', 'next year'].include?(interval_request)
532
+ interval = ::ChupakabraTools::TimeInterval.next_year
533
+ end
520
534
  end
535
+ else
536
+ nil
521
537
  end
522
- else
523
- nil
538
+ interval
524
539
  end
525
- interval
526
- end
527
540
 
528
- end
541
+ end
542
+ end