code-ruby 1.5.7 → 1.6.1

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.
@@ -5,15 +5,90 @@ class Code
5
5
  class Time < Object
6
6
  DEFAULT_ZONE = "Etc/UTC"
7
7
 
8
+ class << self
9
+ delegate(
10
+ :code_format,
11
+ :code_add,
12
+ :code_substract,
13
+ :code_past?,
14
+ :code_future?,
15
+ :code_before?,
16
+ :code_after?,
17
+ :code_tomorrow,
18
+ :code_yesterday,
19
+ :code_now,
20
+ :code_today,
21
+ :code_current,
22
+ :code_year,
23
+ :code_years,
24
+ :code_month,
25
+ :code_months,
26
+ :code_week,
27
+ :code_weeks,
28
+ :code_week_day,
29
+ :code_week_days,
30
+ :code_day,
31
+ :code_days,
32
+ :code_hour,
33
+ :code_hours,
34
+ :code_minute,
35
+ :code_minutes,
36
+ :code_second,
37
+ :code_seconds,
38
+ :code_monday?,
39
+ :code_tuesday?,
40
+ :code_wednesday?,
41
+ :code_thursday?,
42
+ :code_friday?,
43
+ :code_saturday?,
44
+ :code_sunday?,
45
+ :code_january?,
46
+ :code_february?,
47
+ :code_march?,
48
+ :code_april?,
49
+ :code_may?,
50
+ :code_june?,
51
+ :code_july?,
52
+ :code_august?,
53
+ :code_september?,
54
+ :code_october?,
55
+ :code_november?,
56
+ :code_december?,
57
+ :code_change,
58
+ to: :new
59
+ )
60
+ end
61
+
8
62
  def initialize(*args, **_kargs, &_block)
9
63
  ::Time.zone ||= DEFAULT_ZONE
10
- self.raw = ::Time.zone.parse(args.first.to_s) || ::Time.zone.now
64
+
65
+ if args.first.is_a?(String) || args.first.is_a?(::String)
66
+ self.raw = ::Time.zone.parse(args.first.to_s) || raise(Error)
67
+ elsif args.first.is_a?(Time)
68
+ self.raw = args.first.raw.dup
69
+ elsif args.first.is_a?(::Time)
70
+ self.raw = args.first.dup
71
+ elsif args.first.is_a?(Date)
72
+ self.raw = args.first.raw.to_time
73
+ elsif args.first.is_a?(::Date)
74
+ self.raw = args.first.to_time
75
+ else
76
+ self.raw = ::Time.zone.now
77
+ end
11
78
  end
12
79
 
13
80
  def self.call(**args)
14
81
  code_operator = args.fetch(:operator, nil).to_code
82
+ code_arguments = args.fetch(:arguments, []).to_code
83
+ code_value = code_arguments.code_first
15
84
 
16
85
  case code_operator.to_s
86
+ when "after?"
87
+ sig(args) { (Date | Time).maybe }
88
+ code_after?(code_value)
89
+ when "before?"
90
+ sig(args) { (Date | Time).maybe }
91
+ code_before?(code_value)
17
92
  when "now"
18
93
  sig(args)
19
94
  code_now
@@ -23,6 +98,12 @@ class Code
23
98
  when "yesterday"
24
99
  sig(args)
25
100
  code_yesterday
101
+ when "past?"
102
+ sig(args)
103
+ code_past?
104
+ when "future?"
105
+ sig(args)
106
+ code_future?
26
107
  when "year"
27
108
  sig(args)
28
109
  code_year
@@ -95,122 +176,179 @@ class Code
95
176
  when "format"
96
177
  sig(args) { String }
97
178
  code_format(code_value)
179
+ when "january?"
180
+ sig(args)
181
+ code_january?
182
+ when "february?"
183
+ sig(args)
184
+ code_february?
185
+ when "march?"
186
+ sig(args)
187
+ code_march?
188
+ when "april?"
189
+ sig(args)
190
+ code_april?
191
+ when "may?"
192
+ sig(args)
193
+ code_may?
194
+ when "june?"
195
+ sig(args)
196
+ code_june?
197
+ when "july?"
198
+ sig(args)
199
+ code_july?
200
+ when "august?"
201
+ sig(args)
202
+ code_august?
203
+ when "september?"
204
+ sig(args)
205
+ code_september?
206
+ when "october?"
207
+ sig(args)
208
+ code_october?
209
+ when "november?"
210
+ sig(args)
211
+ code_november?
212
+ when "december?"
213
+ sig(args)
214
+ code_december?
215
+ when "add"
216
+ sig(args) do
217
+ {
218
+ year: (String | Integer).maybe,
219
+ years: (String | Integer).maybe,
220
+ month: (String | Integer).maybe,
221
+ months: (String | Integer).maybe,
222
+ day: (String | Integer).maybe,
223
+ days: (String | Integer).maybe,
224
+ week_day: (String | Integer).maybe,
225
+ week_days: (String | Integer).maybe,
226
+ week: (String | Integer).maybe,
227
+ weeks: (String | Integer).maybe,
228
+ hour: (String | Integer).maybe,
229
+ hours: (String | Integer).maybe,
230
+ minute: (String | Integer).maybe,
231
+ minutes: (String | Integer).maybe,
232
+ second: (String | Integer).maybe,
233
+ seconds: (String | Integer).maybe
234
+ }
235
+ end
236
+
237
+ if code_value.nothing?
238
+ code_add
239
+ else
240
+ code_add(
241
+ year: code_value.code_get(:year),
242
+ years: code_value.code_get(:years),
243
+ month: code_value.code_get(:month),
244
+ months: code_value.code_get(:months),
245
+ day: code_value.code_get(:day),
246
+ days: code_value.code_get(:days),
247
+ week_day: code_value.code_get(:week_day),
248
+ week_days: code_value.code_get(:week_days),
249
+ week: code_value.code_get(:week),
250
+ weeks: code_value.code_get(:weeks),
251
+ hour: code_value.code_get(:hour),
252
+ hours: code_value.code_get(:hours),
253
+ minute: code_value.code_get(:minute),
254
+ minutes: code_value.code_get(:minutes),
255
+ second: code_value.code_get(:second),
256
+ seconds: code_value.code_get(:seconds)
257
+ )
258
+ end
259
+ when "substract"
260
+ sig(args) do
261
+ {
262
+ year: (String | Integer).maybe,
263
+ years: (String | Integer).maybe,
264
+ month: (String | Integer).maybe,
265
+ months: (String | Integer).maybe,
266
+ day: (String | Integer).maybe,
267
+ days: (String | Integer).maybe,
268
+ week_day: (String | Integer).maybe,
269
+ week_days: (String | Integer).maybe,
270
+ week: (String | Integer).maybe,
271
+ weeks: (String | Integer).maybe,
272
+ hour: (String | Integer).maybe,
273
+ hours: (String | Integer).maybe,
274
+ minute: (String | Integer).maybe,
275
+ minutes: (String | Integer).maybe,
276
+ second: (String | Integer).maybe,
277
+ seconds: (String | Integer).maybe
278
+ }
279
+ end
280
+
281
+ if code_value.nothing?
282
+ code_substract
283
+ else
284
+ code_substract(
285
+ year: code_value.code_get(:year),
286
+ years: code_value.code_get(:years),
287
+ month: code_value.code_get(:month),
288
+ months: code_value.code_get(:months),
289
+ day: code_value.code_get(:day),
290
+ days: code_value.code_get(:days),
291
+ week_day: code_value.code_get(:week_day),
292
+ week_days: code_value.code_get(:week_days),
293
+ week: code_value.code_get(:week),
294
+ weeks: code_value.code_get(:weeks),
295
+ hour: code_value.code_get(:hour),
296
+ hours: code_value.code_get(:hours),
297
+ minute: code_value.code_get(:minute),
298
+ minutes: code_value.code_get(:minutes),
299
+ second: code_value.code_get(:second),
300
+ seconds: code_value.code_get(:seconds)
301
+ )
302
+ end
303
+ when "change"
304
+ sig(args) do
305
+ {
306
+ year: (String | Integer).maybe,
307
+ years: (String | Integer).maybe,
308
+ month: (String | Integer).maybe,
309
+ months: (String | Integer).maybe,
310
+ day: (String | Integer).maybe,
311
+ days: (String | Integer).maybe,
312
+ week_day: (String | Integer).maybe,
313
+ week_days: (String | Integer).maybe,
314
+ week: (String | Integer).maybe,
315
+ weeks: (String | Integer).maybe,
316
+ hour: (String | Integer).maybe,
317
+ hours: (String | Integer).maybe,
318
+ minute: (String | Integer).maybe,
319
+ minutes: (String | Integer).maybe,
320
+ second: (String | Integer).maybe,
321
+ seconds: (String | Integer).maybe
322
+ }
323
+ end
324
+
325
+ if code_value.nothing?
326
+ code_change
327
+ else
328
+ code_change(
329
+ year: code_value.code_get(:year),
330
+ years: code_value.code_get(:years),
331
+ month: code_value.code_get(:month),
332
+ months: code_value.code_get(:months),
333
+ day: code_value.code_get(:day),
334
+ days: code_value.code_get(:days),
335
+ week_day: code_value.code_get(:week_day),
336
+ week_days: code_value.code_get(:week_days),
337
+ week: code_value.code_get(:week),
338
+ weeks: code_value.code_get(:weeks),
339
+ hour: code_value.code_get(:hour),
340
+ hours: code_value.code_get(:hours),
341
+ minute: code_value.code_get(:minute),
342
+ minutes: code_value.code_get(:minutes),
343
+ second: code_value.code_get(:second),
344
+ seconds: code_value.code_get(:seconds)
345
+ )
346
+ end
98
347
  else
99
348
  super
100
349
  end
101
350
  end
102
351
 
103
- def self.code_tomorrow
104
- ::Time.zone ||= DEFAULT_ZONE
105
- new(::Time.zone.tomorrow)
106
- end
107
-
108
- def self.code_yesterday
109
- ::Time.zone ||= DEFAULT_ZONE
110
- new(::Time.zone.yesterday)
111
- end
112
-
113
- def self.code_now
114
- ::Time.zone ||= DEFAULT_ZONE
115
- new(::Time.zone.now)
116
- end
117
-
118
- def self.code_year
119
- code_now.code_year
120
- end
121
-
122
- def self.code_years
123
- code_now.code_years
124
- end
125
-
126
- def self.code_month
127
- code_now.code_month
128
- end
129
-
130
- def self.code_months
131
- code_now.code_months
132
- end
133
-
134
- def self.code_week
135
- code_now.code_week
136
- end
137
-
138
- def self.code_weeks
139
- code_now.code_weeks
140
- end
141
-
142
- def self.code_week_day
143
- code_now.code_week_day
144
- end
145
-
146
- def self.code_week_days
147
- code_now.code_week_days
148
- end
149
-
150
- def self.code_day
151
- code_now.code_day
152
- end
153
-
154
- def self.code_days
155
- code_now.code_days
156
- end
157
-
158
- def self.code_hour
159
- code_now.code_hour
160
- end
161
-
162
- def self.code_hours
163
- code_now.code_hours
164
- end
165
-
166
- def self.code_minute
167
- code_now.code_minute
168
- end
169
-
170
- def self.code_minutes
171
- code_now.code_minutes
172
- end
173
-
174
- def self.code_second
175
- code_now.code_second
176
- end
177
-
178
- def self.code_seconds
179
- code_now.code_seconds
180
- end
181
-
182
- def self.code_monday?
183
- code_week_day.code_one?
184
- end
185
-
186
- def self.code_tuesday?
187
- code_week_day.code_two?
188
- end
189
-
190
- def self.code_wednesday?
191
- code_week_day.code_three?
192
- end
193
-
194
- def self.code_thursday?
195
- code_week_day.code_four?
196
- end
197
-
198
- def self.code_friday?
199
- code_week_day.code_five?
200
- end
201
-
202
- def self.code_saturday?
203
- code_week_day.code_six?
204
- end
205
-
206
- def self.code_sunday?
207
- code_week_day.code_zero?
208
- end
209
-
210
- def self.code_format(format)
211
- code_now.code_format(format)
212
- end
213
-
214
352
  def call(**args)
215
353
  code_operator = args.fetch(:operator, nil).to_code
216
354
  code_arguments = args.fetch(:arguments, []).to_code
@@ -218,11 +356,17 @@ class Code
218
356
 
219
357
  case code_operator.to_s
220
358
  when "after?"
221
- sig(args) { Time.maybe }
359
+ sig(args) { (Date | Time).maybe }
222
360
  code_after?(code_value)
223
361
  when "before?"
224
- sig(args) { Time.maybe }
362
+ sig(args) { (Date | Time).maybe }
225
363
  code_before?(code_value)
364
+ when "tomorrow"
365
+ sig(args)
366
+ code_tomorrow
367
+ when "yesterday"
368
+ sig(args)
369
+ code_yesterday
226
370
  when "past?"
227
371
  sig(args)
228
372
  code_past?
@@ -301,6 +445,174 @@ class Code
301
445
  when "format"
302
446
  sig(args) { String }
303
447
  code_format(code_value)
448
+ when "january?"
449
+ sig(args)
450
+ code_january?
451
+ when "february?"
452
+ sig(args)
453
+ code_february?
454
+ when "march?"
455
+ sig(args)
456
+ code_march?
457
+ when "april?"
458
+ sig(args)
459
+ code_april?
460
+ when "may?"
461
+ sig(args)
462
+ code_may?
463
+ when "june?"
464
+ sig(args)
465
+ code_june?
466
+ when "july?"
467
+ sig(args)
468
+ code_july?
469
+ when "august?"
470
+ sig(args)
471
+ code_august?
472
+ when "september?"
473
+ sig(args)
474
+ code_september?
475
+ when "october?"
476
+ sig(args)
477
+ code_october?
478
+ when "november?"
479
+ sig(args)
480
+ code_november?
481
+ when "december?"
482
+ sig(args)
483
+ code_december?
484
+ when "add"
485
+ sig(args) do
486
+ {
487
+ year: (String | Integer).maybe,
488
+ years: (String | Integer).maybe,
489
+ month: (String | Integer).maybe,
490
+ months: (String | Integer).maybe,
491
+ day: (String | Integer).maybe,
492
+ days: (String | Integer).maybe,
493
+ week_day: (String | Integer).maybe,
494
+ week_days: (String | Integer).maybe,
495
+ week: (String | Integer).maybe,
496
+ weeks: (String | Integer).maybe,
497
+ hour: (String | Integer).maybe,
498
+ hours: (String | Integer).maybe,
499
+ minute: (String | Integer).maybe,
500
+ minutes: (String | Integer).maybe,
501
+ second: (String | Integer).maybe,
502
+ seconds: (String | Integer).maybe
503
+ }
504
+ end
505
+
506
+ if code_value.nothing?
507
+ code_add
508
+ else
509
+ code_add(
510
+ year: code_value.code_get(:year),
511
+ years: code_value.code_get(:years),
512
+ month: code_value.code_get(:month),
513
+ months: code_value.code_get(:months),
514
+ day: code_value.code_get(:day),
515
+ days: code_value.code_get(:days),
516
+ week_day: code_value.code_get(:week_day),
517
+ week_days: code_value.code_get(:week_days),
518
+ week: code_value.code_get(:week),
519
+ weeks: code_value.code_get(:weeks),
520
+ hour: code_value.code_get(:hour),
521
+ hours: code_value.code_get(:hours),
522
+ minute: code_value.code_get(:minute),
523
+ minutes: code_value.code_get(:minutes),
524
+ second: code_value.code_get(:second),
525
+ seconds: code_value.code_get(:seconds)
526
+ )
527
+ end
528
+ when "substract"
529
+ sig(args) do
530
+ {
531
+ year: (String | Integer).maybe,
532
+ years: (String | Integer).maybe,
533
+ month: (String | Integer).maybe,
534
+ months: (String | Integer).maybe,
535
+ day: (String | Integer).maybe,
536
+ days: (String | Integer).maybe,
537
+ week_day: (String | Integer).maybe,
538
+ week_days: (String | Integer).maybe,
539
+ week: (String | Integer).maybe,
540
+ weeks: (String | Integer).maybe,
541
+ hour: (String | Integer).maybe,
542
+ hours: (String | Integer).maybe,
543
+ minute: (String | Integer).maybe,
544
+ minutes: (String | Integer).maybe,
545
+ second: (String | Integer).maybe,
546
+ seconds: (String | Integer).maybe
547
+ }
548
+ end
549
+
550
+ if code_value.nothing?
551
+ code_substract
552
+ else
553
+ code_substract(
554
+ year: code_value.code_get(:year),
555
+ years: code_value.code_get(:years),
556
+ month: code_value.code_get(:month),
557
+ months: code_value.code_get(:months),
558
+ day: code_value.code_get(:day),
559
+ days: code_value.code_get(:days),
560
+ week_day: code_value.code_get(:week_day),
561
+ week_days: code_value.code_get(:week_days),
562
+ week: code_value.code_get(:week),
563
+ weeks: code_value.code_get(:weeks),
564
+ hour: code_value.code_get(:hour),
565
+ hours: code_value.code_get(:hours),
566
+ minute: code_value.code_get(:minute),
567
+ minutes: code_value.code_get(:minutes),
568
+ second: code_value.code_get(:second),
569
+ seconds: code_value.code_get(:seconds)
570
+ )
571
+ end
572
+ when "change"
573
+ sig(args) do
574
+ {
575
+ year: (String | Integer).maybe,
576
+ years: (String | Integer).maybe,
577
+ month: (String | Integer).maybe,
578
+ months: (String | Integer).maybe,
579
+ day: (String | Integer).maybe,
580
+ days: (String | Integer).maybe,
581
+ week_day: (String | Integer).maybe,
582
+ week_days: (String | Integer).maybe,
583
+ week: (String | Integer).maybe,
584
+ weeks: (String | Integer).maybe,
585
+ hour: (String | Integer).maybe,
586
+ hours: (String | Integer).maybe,
587
+ minute: (String | Integer).maybe,
588
+ minutes: (String | Integer).maybe,
589
+ second: (String | Integer).maybe,
590
+ seconds: (String | Integer).maybe
591
+ }
592
+ end
593
+
594
+ if code_value.nothing?
595
+ code_change
596
+ else
597
+ code_change(
598
+ year: code_value.code_get(:year),
599
+ years: code_value.code_get(:years),
600
+ month: code_value.code_get(:month),
601
+ months: code_value.code_get(:months),
602
+ day: code_value.code_get(:day),
603
+ days: code_value.code_get(:days),
604
+ week_day: code_value.code_get(:week_day),
605
+ week_days: code_value.code_get(:week_days),
606
+ week: code_value.code_get(:week),
607
+ weeks: code_value.code_get(:weeks),
608
+ hour: code_value.code_get(:hour),
609
+ hours: code_value.code_get(:hours),
610
+ minute: code_value.code_get(:minute),
611
+ minutes: code_value.code_get(:minutes),
612
+ second: code_value.code_get(:second),
613
+ seconds: code_value.code_get(:seconds)
614
+ )
615
+ end
304
616
  else
305
617
  super
306
618
  end
@@ -308,14 +620,14 @@ class Code
308
620
 
309
621
  def code_after?(other = nil)
310
622
  code_other = other.to_code
311
- code_other = Time.code_now if code_other.nothing?
623
+ code_other = Time.new if code_other.nothing?
312
624
 
313
625
  Boolean.new(raw.after?(code_other.raw))
314
626
  end
315
627
 
316
628
  def code_before?(other = nil)
317
629
  code_other = other.to_code
318
- code_other = Time.code_now if code_other.nothing?
630
+ code_other = Time.new if code_other.nothing?
319
631
 
320
632
  Boolean.new(raw.before?(code_other.raw))
321
633
  end
@@ -420,11 +732,230 @@ class Code
420
732
  code_week_day.code_zero?
421
733
  end
422
734
 
735
+ def code_january?
736
+ code_month.code_one?
737
+ end
738
+
739
+ def code_february?
740
+ code_month.code_two?
741
+ end
742
+
743
+ def code_march?
744
+ code_month.code_three?
745
+ end
746
+
747
+ def code_april?
748
+ code_month.code_four?
749
+ end
750
+
751
+ def code_may?
752
+ code_month.code_five?
753
+ end
754
+
755
+ def code_june?
756
+ code_month.code_six?
757
+ end
758
+
759
+ def code_july?
760
+ code_month.code_seven?
761
+ end
762
+
763
+ def code_august?
764
+ code_month.code_eight?
765
+ end
766
+
767
+ def code_september?
768
+ code_month.code_nine?
769
+ end
770
+
771
+ def code_october?
772
+ code_month.code_ten?
773
+ end
774
+
775
+ def code_november?
776
+ code_month.code_eleven?
777
+ end
778
+
779
+ def code_december?
780
+ code_month.code_twelve?
781
+ end
782
+
423
783
  def code_format(format)
424
784
  code_format = format.to_code
425
785
 
426
786
  String.new(raw.strftime(code_format.raw))
427
787
  end
788
+
789
+ def code_today
790
+ Time.new
791
+ end
792
+
793
+ def code_now
794
+ Time.new
795
+ end
796
+
797
+ def code_current
798
+ Time.new
799
+ end
800
+
801
+ def code_tomorrow
802
+ code_add(day: 1)
803
+ end
804
+
805
+ def code_yesterday
806
+ code_substract(day: 1)
807
+ end
808
+
809
+ def code_add(
810
+ year: nil,
811
+ years: nil,
812
+ month: nil,
813
+ months: nil,
814
+ day: nil,
815
+ days: nil,
816
+ week_day: nil,
817
+ week_days: nil,
818
+ week: nil,
819
+ weeks: nil,
820
+ hour: nil,
821
+ hours: nil,
822
+ minute: nil,
823
+ minutes: nil,
824
+ second: nil,
825
+ seconds: nil
826
+ )
827
+ code_year = year.to_code.nothing? ? years.to_code : year.to_code
828
+ code_month = month.to_code.nothing? ? months.to_code : month.to_code
829
+ code_day = day.to_code.nothing? ? days.to_code : day.to_code
830
+ code_week_day =
831
+ week_day.to_code.nothing? ? week_days.to_code : week_day.to_code
832
+ code_week = week.to_code.nothing? ? weeks.to_code : week.to_code
833
+ code_hour = hour.to_code.nothing? ? hours.to_code : hour.to_code
834
+ code_minute =
835
+ minute.to_code.nothing? ? minutes.to_code : minute.to_code
836
+ code_second =
837
+ second.to_code.nothing? ? seconds.to_code : second.to_code
838
+
839
+ Time.new(
840
+ raw.change(
841
+ year: code_years.code_to_integer.raw + code_year.code_to_integer.raw,
842
+ month:
843
+ code_months.code_to_integer.raw + code_month.code_to_integer.raw,
844
+ day: code_days.code_to_integer.raw + code_day.code_to_integer.raw,
845
+ wday:
846
+ code_week_days.code_to_integer.raw +
847
+ code_week_day.code_to_integer.raw,
848
+ cweek: code_weeks.code_to_integer.raw + code_week.code_to_integer.raw,
849
+ hour: code_hours.code_to_integer.raw + code_hour.code_to_integer.raw,
850
+ min:
851
+ code_minutes.code_to_integer.raw + code_minute.code_to_integer.raw,
852
+ sec:
853
+ code_seconds.code_to_integer.raw + code_second.code_to_integer.raw
854
+ )
855
+ )
856
+ end
857
+
858
+ def code_substract(
859
+ year: nil,
860
+ years: nil,
861
+ month: nil,
862
+ months: nil,
863
+ day: nil,
864
+ days: nil,
865
+ week_day: nil,
866
+ week_days: nil,
867
+ week: nil,
868
+ weeks: nil,
869
+ hour: nil,
870
+ hours: nil,
871
+ minute: nil,
872
+ minutes: nil,
873
+ second: nil,
874
+ seconds: nil
875
+ )
876
+ code_year = year.to_code.nothing? ? years.to_code : year.to_code
877
+ code_month = month.to_code.nothing? ? months.to_code : month.to_code
878
+ code_day = day.to_code.nothing? ? days.to_code : day.to_code
879
+ code_week_day =
880
+ week_day.to_code.nothing? ? week_days.to_code : week_day.to_code
881
+ code_week = week.to_code.nothing? ? weeks.to_code : week.to_code
882
+ code_hour = hour.to_code.nothing? ? hours.to_code : hour.to_code
883
+ code_minute =
884
+ minute.to_code.nothing? ? minutes.to_code : minute.to_code
885
+ code_second =
886
+ second.to_code.nothing? ? seconds.to_code : second.to_code
887
+
888
+ Time.new(
889
+ raw.change(
890
+ year: code_years.code_to_integer.raw - code_year.code_to_integer.raw,
891
+ month:
892
+ code_months.code_to_integer.raw - code_month.code_to_integer.raw,
893
+ day: code_days.code_to_integer.raw - code_day.code_to_integer.raw,
894
+ wday:
895
+ code_week_days.code_to_integer.raw -
896
+ code_week_day.code_to_integer.raw,
897
+ cweek: code_weeks.code_to_integer.raw - code_week.code_to_integer.raw,
898
+ hour: code_hours.code_to_integer.raw - code_hour.code_to_integer.raw,
899
+ min:
900
+ code_minutes.code_to_integer.raw - code_minute.code_to_integer.raw,
901
+ sec:
902
+ code_seconds.code_to_integer.raw - code_second.code_to_integer.raw
903
+ )
904
+ )
905
+ end
906
+
907
+ def code_change(
908
+ year: nil,
909
+ years: nil,
910
+ month: nil,
911
+ months: nil,
912
+ day: nil,
913
+ days: nil,
914
+ week_day: nil,
915
+ week_days: nil,
916
+ week: nil,
917
+ weeks: nil,
918
+ hour: nil,
919
+ hours: nil,
920
+ minute: nil,
921
+ minutes: nil,
922
+ second: nil,
923
+ seconds: nil
924
+ )
925
+ code_year = year.to_code.nothing? ? years.to_code : year.to_code
926
+ code_month = month.to_code.nothing? ? months.to_code : month.to_code
927
+ code_day = day.to_code.nothing? ? days.to_code : day.to_code
928
+ code_week_day =
929
+ week_day.to_code.nothing? ? week_days.to_code : week_day.to_code
930
+ code_week = week.to_code.nothing? ? weeks.to_code : week.to_code
931
+ code_hour = hour.to_code.nothing? ? hours.to_code : hour.to_code
932
+ code_minute =
933
+ minute.to_code.nothing? ? minutes.to_code : minute.to_code
934
+ code_second =
935
+ second.to_code.nothing? ? seconds.to_code : second.to_code
936
+
937
+ if code_year.something? || code_month.something? ||
938
+ code_day.something? || code_week_day.something? ||
939
+ code_week.something? || code_hour.something? ||
940
+ code_minute.something? || code_second.something?
941
+ Time.new(
942
+ raw.change(
943
+ **{
944
+ year: code_year.raw,
945
+ month: code_month.raw,
946
+ day: code_day.raw,
947
+ wday: code_week_day.raw,
948
+ cweek: code_week.raw,
949
+ hour: code_hour.raw,
950
+ min: code_minute.raw,
951
+ sec: code_second.raw
952
+ }.compact
953
+ )
954
+ )
955
+ else
956
+ Time.new(self)
957
+ end
958
+ end
428
959
  end
429
960
  end
430
961
  end