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.
- checksums.yaml +15 -0
- data/.idea/.rakeTasks +7 -0
- data/{projectFilesBackup/.idea → .idea}/chupakabra_tools.iml +17 -5
- data/.idea/encodings.xml +5 -0
- data/.idea/misc.xml +5 -0
- data/.idea/modules.xml +9 -0
- data/.idea/vcs.xml +7 -0
- data/.idea/workspace.xml +191 -111
- data/Gemfile.lock +7 -1
- data/chupakabra_tools.gemspec +4 -2
- data/lib/chupakabra_tools.rb +11 -3
- data/lib/chupakabra_tools/active_enum_extended.rb +53 -0
- data/lib/chupakabra_tools/class_helper.rb +241 -0
- data/lib/chupakabra_tools/data_type.rb +12 -0
- data/lib/chupakabra_tools/deletion_status.rb +6 -0
- data/lib/chupakabra_tools/education_level.rb +8 -0
- data/lib/chupakabra_tools/internet_file_process_status.rb +9 -0
- data/lib/chupakabra_tools/json_status.rb +11 -0
- data/lib/chupakabra_tools/predefined_time_intervals.rb +18 -18
- data/lib/chupakabra_tools/security.rb +4 -1
- data/lib/chupakabra_tools/set_management_result.rb +9 -0
- data/lib/chupakabra_tools/time_interval.rb +426 -412
- data/lib/chupakabra_tools/{validattions.rb → validations.rb} +9 -1
- data/lib/chupakabra_tools/xml/xml_parser.rb +54 -0
- metadata +49 -18
- data/lib/chupakabra_tools/version.rb +0 -3
@@ -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
|
-
|
4
|
-
|
3
|
+
module ChupakabraTools
|
4
|
+
class TimeInterval
|
5
|
+
attr_accessor :beginning, :ending
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
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
|
-
|
11
|
-
|
18
|
+
|
19
|
+
def beginning
|
20
|
+
@beginning
|
12
21
|
end
|
13
22
|
|
14
|
-
|
15
|
-
|
16
|
-
|
23
|
+
def beginning= val
|
24
|
+
@beginning = val
|
25
|
+
end
|
17
26
|
|
18
|
-
|
19
|
-
|
20
|
-
|
27
|
+
def ending
|
28
|
+
@ending
|
29
|
+
end
|
21
30
|
|
22
|
-
|
23
|
-
|
24
|
-
|
31
|
+
def ending= val
|
32
|
+
@ending = val
|
33
|
+
end
|
25
34
|
|
26
|
-
def ending
|
27
|
-
@ending
|
28
|
-
end
|
29
35
|
|
30
|
-
|
31
|
-
|
32
|
-
|
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
|
-
|
37
|
-
|
38
|
-
|
48
|
+
def future?(time_zone = nil)
|
49
|
+
!@beginning.nil? && @beginning > Time.now
|
50
|
+
end
|
39
51
|
|
40
|
-
|
41
|
-
|
42
|
-
|
52
|
+
def past?(time_zone = nil)
|
53
|
+
!@ending.nil? && @ending < Time.now
|
54
|
+
end
|
43
55
|
|
44
|
-
|
45
|
-
|
46
|
-
|
56
|
+
def present?(time_zone = nil)
|
57
|
+
!(is_past? || is_future?)
|
58
|
+
end
|
47
59
|
|
48
|
-
|
49
|
-
|
50
|
-
|
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
|
-
|
57
|
-
|
58
|
-
|
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
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
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
|
-
|
77
|
-
|
78
|
-
|
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
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
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
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
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
|
-
|
153
|
-
|
154
|
-
|
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
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
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
|
-
|
227
|
-
|
228
|
-
|
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
|
-
|
231
|
-
|
232
|
-
|
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
|
-
|
235
|
-
|
236
|
-
|
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
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
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
|
-
|
244
|
-
|
245
|
-
|
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
|
-
|
237
|
+
def self.this_hour(time_zone = nil)
|
238
|
+
hour(Time.now, time_zone)
|
239
|
+
end
|
255
240
|
|
256
|
-
|
257
|
-
|
258
|
-
|
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
|
-
|
261
|
-
|
262
|
-
|
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
|
-
|
259
|
+
time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
|
282
260
|
|
283
|
-
|
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
|
-
|
267
|
+
def self.tomorrow(time_zone = nil)
|
268
|
+
next_day(Time.now, time_zone)
|
269
|
+
end
|
290
270
|
|
291
|
-
|
292
|
-
|
293
|
-
|
271
|
+
def self.yesterday(time_zone = nil)
|
272
|
+
previous_day(Time.now, time_zone)
|
273
|
+
end
|
294
274
|
|
295
|
-
|
296
|
-
|
297
|
-
|
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
|
-
|
304
|
-
|
305
|
-
|
280
|
+
def self.next_day(definite_time, time_zone = nil)
|
281
|
+
day(definite_time, time_zone).add_days(1)
|
282
|
+
end
|
306
283
|
|
307
|
-
|
308
|
-
|
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
|
-
|
314
|
-
|
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
|
-
|
297
|
+
time = (definite_time.nil? || !definite_time.is_a?(Time) ? Time.now : definite_time)
|
317
298
|
|
318
|
-
|
319
|
-
|
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
|
-
|
327
|
-
|
328
|
-
|
329
|
-
|
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
|
-
|
334
|
-
|
309
|
+
def self.last_week(time_zone = nil)
|
310
|
+
previous_week(Time.now, time_zone)
|
311
|
+
end
|
335
312
|
|
336
|
-
|
337
|
-
|
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
|
-
|
344
|
-
|
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
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
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
|
-
|
354
|
-
end
|
330
|
+
# ************************************** MONTHS **********************************
|
355
331
|
|
356
|
-
|
357
|
-
|
358
|
-
|
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
|
-
|
347
|
+
::ChupakabraTools::TimeInterval.new(time.beginning_of_month, time.end_of_month)
|
348
|
+
end
|
364
349
|
|
365
|
-
|
366
|
-
|
367
|
-
|
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
|
-
|
370
|
-
|
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
|
-
|
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
|
-
|
382
|
-
|
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
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
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
|
-
|
394
|
-
|
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
|
-
|
394
|
+
::ChupakabraTools::TimeInterval.new(time.beginning_of_quarter, time.end_of_quarter)
|
395
|
+
end
|
405
396
|
|
406
|
-
|
407
|
-
|
408
|
-
|
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
|
-
|
411
|
-
|
412
|
-
|
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
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
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
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
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
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
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
|
-
|
442
|
-
|
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
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
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
|
-
|
523
|
-
nil
|
538
|
+
interval
|
524
539
|
end
|
525
|
-
interval
|
526
|
-
end
|
527
540
|
|
528
|
-
end
|
541
|
+
end
|
542
|
+
end
|