chupakabra_tools 0.0.9 → 0.0.14

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.
@@ -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