kronic 0.3 → 0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/HISTORY CHANGED
@@ -1,3 +1,8 @@
1
+ 0.4.0
2
+ * Support ISO 8601 dates ("2010-09-30")
3
+ * Kronic.format supports Time and DateTime as a parameter
4
+ * Ironclad guarantee it works on 1.8.7, 1.9.2, Rubinius, and JRuby
5
+
1
6
  0.3.0
2
7
  * Support month before day ("June 14")
3
8
  * Support day ordinals ("14th June")
@@ -8,7 +8,7 @@ Chronic and Tickle both parse a *heap* of formats. That's not useful to me when
8
8
 
9
9
  In addition, Kronic can take a date and give you a human readable form, neither of which Chronic nor Tickle does.
10
10
 
11
- Oh yeah, Kronic is about 100 lines of code.
11
+ Oh yeah, Kronic is about 150 lines of code with no dependencies.
12
12
 
13
13
  == Usage
14
14
 
@@ -18,8 +18,14 @@ Oh yeah, Kronic is about 100 lines of code.
18
18
  Kronic.parse("Today") # => Date.today
19
19
  Kronic.format(Date.today) # => "Today"
20
20
 
21
- Supported formats: Today, yesterday, tomorrow, last thursday, this thursday, 14 Sep, 14 June 2010. Any dates without a year are assumed to be in the past.
21
+ Supported formats: Today, yesterday, tomorrow, last thursday, this thursday, 14 Sep, 14 June 2010. Any dates without a year are assumed to be in the past (that's what my app needs, so that's what it does).
22
+
23
+ == Compatibility
24
+
25
+ Kronic does not require ActiveSupport, but if it is present Kronic will use the current time zone. In short, everything should work as you would expect.
26
+
27
+ Kronic is tested on 1.8.7, 1.9.2, Rubinius, and JRuby.
22
28
 
23
29
  == Future
24
30
 
25
- Kronic will be totally timezone aware. It may or may not be now, I haven't specced it. Maybe a flag to toggle interpretation of dates without years.
31
+ Current release is a release candidate for 1.0, when the API will be declared stable. i18n work has been started in a branch, and also in yolk's fork. I'm not using this personally. Maybe also a flag to toggle the interpretation of dates without years would be nice. Neither of those things will be in 1.0 I don't reckon.
@@ -1,14 +1,14 @@
1
1
  require 'date'
2
2
 
3
3
  class Kronic
4
- # Public: Converts a human readable day (Today, yesterday) to a Date.
4
+ # Public: Converts a human readable day (today, yesterday) to a Date.
5
5
  # If Time.zone is available and set (added by active_support and rails),
6
6
  # Time.zone.today will be used as a reference point, otherwise Date.today
7
7
  # will be used.
8
8
  #
9
9
  # string - The String to convert to a Date. #to_s is called on the parameter.
10
10
  # Supported formats are: Today, yesterday, tomorrow, last thursday,
11
- # this thursday, 14 Sep, Sep 14, 14 June 2010. Parsing is
11
+ # this thursday, 14 Sep, Sep 14, 14 June 2010. Parsing is
12
12
  # case-insensitive.
13
13
  #
14
14
  # Returns the Date, or nil if the input could not be parsed.
@@ -18,7 +18,8 @@ class Kronic
18
18
 
19
19
  parse_nearby_days(string, now) ||
20
20
  parse_last_or_this_day(string, now) ||
21
- parse_exact_date(string, now)
21
+ parse_exact_date(string, now) ||
22
+ parse_iso_8601_date(string)
22
23
  end
23
24
 
24
25
  # Public: Converts a date to a human readable string. If Time.zone is
@@ -32,13 +33,13 @@ class Kronic
32
33
  # Returns a relative string ("Today", "This Monday") if available, otherwise
33
34
  # the full representation of the date ("19 September 2010").
34
35
  def self.format(date, opts = {})
35
- case (date - (opts[:today] || today)).to_i
36
+ case (to_date(date) - to_date(opts[:today] || today)).to_i
36
37
  when (2..7) then "This " + date.strftime("%A")
37
38
  when 1 then "Tomorrow"
38
39
  when 0 then "Today"
39
40
  when -1 then "Yesterday"
40
41
  when (-7..-2) then "Last " + date.strftime("%A")
41
- else date.strftime("%e %B %Y").strip
42
+ else date.strftime("%e %B %Y").strip
42
43
  end
43
44
  end
44
45
 
@@ -47,10 +48,21 @@ class Kronic
47
48
 
48
49
  NUMBER = /^[0-9]+$/
49
50
  NUMBER_WITH_ORDINAL = /^[0-9]+(st|nd|rd|th)?$/
51
+ ISO_8601_DATE = /^([0-9]{4})-?(1[0-2]|0?[1-9])-?(3[0-1]|[1-2][0-9]|0?[1-9])$/
52
+
53
+ MONTH_NAMES = Date::MONTHNAMES.zip(Date::ABBR_MONTHNAMES).flatten.compact.map {|x|
54
+ x.downcase
55
+ }
56
+
57
+ # Ruby 1.8 does not provide a to_date method on Time. This methods works
58
+ # on all rubies.
59
+ def to_date(time)
60
+ Date.new(time.year, time.month, time.day)
61
+ end
50
62
 
51
63
  def today
52
64
  if Time.respond_to?(:zone) && Time.zone
53
- Time.zone.today
65
+ to_date(Time.zone.now)
54
66
  else
55
67
  Date.today
56
68
  end
@@ -61,10 +73,8 @@ class Kronic
61
73
  # month_from_name("january") # => 1
62
74
  # month_from_name("jan") # => 1
63
75
  def month_from_name(month)
64
- f = lambda {|months| months.compact.map {|x| x.downcase }.index(month) }
65
-
66
- month = f[Date::MONTHNAMES] || f[Date::ABBR_MONTHNAMES]
67
- month ? month + 1 : nil
76
+ month = MONTH_NAMES.index(month)
77
+ month ? month / 2 + 1 : nil
68
78
  end
69
79
 
70
80
  # Parse "Today", "Tomorrow" and "Yesterday"
@@ -79,10 +89,10 @@ class Kronic
79
89
  tokens = string.split(/\s+/)
80
90
 
81
91
  if %w(last this).include?(tokens[0])
82
- days = (1..7).map {|x|
92
+ days = (1..7).map {|x|
83
93
  today + (tokens[0] == 'last' ? -x : x)
84
- }.inject({}) {|a, x|
85
- a.update(x.strftime("%A").downcase => x)
94
+ }.inject({}) {|a, x|
95
+ a.update(x.strftime("%A").downcase => x)
86
96
  }
87
97
 
88
98
  days[tokens[1]]
@@ -101,7 +111,7 @@ class Kronic
101
111
  end
102
112
  end
103
113
  end
104
-
114
+
105
115
  # Parses day, month and year parts
106
116
  def parse_exact_date_parts(raw_day, raw_month, raw_year, today)
107
117
  day = raw_day.to_i
@@ -118,5 +128,15 @@ class Kronic
118
128
  result = result << 12 if result > today && !raw_year
119
129
  result
120
130
  end
131
+
132
+ # Parses "2010-09-04", "2010-9-4"
133
+ #
134
+ # NOTE: this is not strictly the ISO 8601 date format as it allows months
135
+ # and days without the zero prefix. e.g. 2010-9-4
136
+ def parse_iso_8601_date(string)
137
+ if string =~ ISO_8601_DATE
138
+ Date.parse(string) rescue nil
139
+ end
140
+ end
121
141
  end
122
142
  end
@@ -0,0 +1,2588 @@
1
+ !RBIX
2
+ 0
3
+ x
4
+ M
5
+ 1
6
+ n
7
+ n
8
+ x
9
+ 10
10
+ __script__
11
+ i
12
+ 38
13
+ 5
14
+ 7
15
+ 0
16
+ 64
17
+ 47
18
+ 49
19
+ 1
20
+ 1
21
+ 15
22
+ 99
23
+ 7
24
+ 2
25
+ 1
26
+ 65
27
+ 49
28
+ 3
29
+ 3
30
+ 13
31
+ 99
32
+ 12
33
+ 7
34
+ 4
35
+ 12
36
+ 7
37
+ 5
38
+ 12
39
+ 65
40
+ 12
41
+ 49
42
+ 6
43
+ 4
44
+ 15
45
+ 49
46
+ 4
47
+ 0
48
+ 15
49
+ 2
50
+ 11
51
+ I
52
+ 6
53
+ I
54
+ 0
55
+ I
56
+ 0
57
+ I
58
+ 0
59
+ n
60
+ p
61
+ 7
62
+ s
63
+ 4
64
+ date
65
+ x
66
+ 7
67
+ require
68
+ x
69
+ 6
70
+ Kronic
71
+ x
72
+ 10
73
+ open_class
74
+ x
75
+ 14
76
+ __class_init__
77
+ M
78
+ 1
79
+ n
80
+ n
81
+ x
82
+ 6
83
+ Kronic
84
+ i
85
+ 49
86
+ 5
87
+ 66
88
+ 99
89
+ 7
90
+ 0
91
+ 7
92
+ 1
93
+ 65
94
+ 5
95
+ 49
96
+ 2
97
+ 4
98
+ 15
99
+ 99
100
+ 7
101
+ 3
102
+ 7
103
+ 4
104
+ 65
105
+ 5
106
+ 49
107
+ 2
108
+ 4
109
+ 15
110
+ 5
111
+ 99
112
+ 12
113
+ 49
114
+ 5
115
+ 1
116
+ 13
117
+ 99
118
+ 12
119
+ 7
120
+ 6
121
+ 12
122
+ 7
123
+ 7
124
+ 12
125
+ 65
126
+ 12
127
+ 49
128
+ 2
129
+ 4
130
+ 15
131
+ 49
132
+ 6
133
+ 0
134
+ 11
135
+ I
136
+ 6
137
+ I
138
+ 0
139
+ I
140
+ 0
141
+ I
142
+ 0
143
+ n
144
+ p
145
+ 8
146
+ x
147
+ 5
148
+ parse
149
+ M
150
+ 1
151
+ n
152
+ n
153
+ x
154
+ 5
155
+ parse
156
+ i
157
+ 67
158
+ 20
159
+ 0
160
+ 49
161
+ 0
162
+ 0
163
+ 49
164
+ 1
165
+ 0
166
+ 49
167
+ 2
168
+ 0
169
+ 19
170
+ 0
171
+ 15
172
+ 5
173
+ 48
174
+ 3
175
+ 19
176
+ 1
177
+ 15
178
+ 5
179
+ 20
180
+ 0
181
+ 20
182
+ 1
183
+ 47
184
+ 49
185
+ 4
186
+ 2
187
+ 13
188
+ 10
189
+ 66
190
+ 15
191
+ 5
192
+ 20
193
+ 0
194
+ 20
195
+ 1
196
+ 47
197
+ 49
198
+ 5
199
+ 2
200
+ 13
201
+ 10
202
+ 66
203
+ 15
204
+ 5
205
+ 20
206
+ 0
207
+ 20
208
+ 1
209
+ 47
210
+ 49
211
+ 6
212
+ 2
213
+ 13
214
+ 10
215
+ 66
216
+ 15
217
+ 5
218
+ 20
219
+ 0
220
+ 47
221
+ 49
222
+ 7
223
+ 1
224
+ 11
225
+ I
226
+ 5
227
+ I
228
+ 2
229
+ I
230
+ 1
231
+ I
232
+ 1
233
+ n
234
+ p
235
+ 8
236
+ x
237
+ 4
238
+ to_s
239
+ x
240
+ 8
241
+ downcase
242
+ x
243
+ 5
244
+ strip
245
+ x
246
+ 5
247
+ today
248
+ x
249
+ 17
250
+ parse_nearby_days
251
+ x
252
+ 22
253
+ parse_last_or_this_day
254
+ x
255
+ 16
256
+ parse_exact_date
257
+ x
258
+ 19
259
+ parse_iso_8601_date
260
+ p
261
+ 15
262
+ I
263
+ 0
264
+ I
265
+ f
266
+ I
267
+ 0
268
+ I
269
+ 10
270
+ I
271
+ e
272
+ I
273
+ 11
274
+ I
275
+ 14
276
+ I
277
+ 13
278
+ I
279
+ 21
280
+ I
281
+ 14
282
+ I
283
+ 2e
284
+ I
285
+ 15
286
+ I
287
+ 3b
288
+ I
289
+ 16
290
+ I
291
+ 43
292
+ x
293
+ 42
294
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
295
+ p
296
+ 2
297
+ x
298
+ 6
299
+ string
300
+ x
301
+ 3
302
+ now
303
+ x
304
+ 13
305
+ attach_method
306
+ x
307
+ 6
308
+ format
309
+ M
310
+ 1
311
+ n
312
+ n
313
+ x
314
+ 6
315
+ format
316
+ i
317
+ 165
318
+ 23
319
+ 1
320
+ 10
321
+ 14
322
+ 44
323
+ 43
324
+ 0
325
+ 78
326
+ 49
327
+ 1
328
+ 1
329
+ 19
330
+ 1
331
+ 15
332
+ 5
333
+ 20
334
+ 0
335
+ 47
336
+ 49
337
+ 2
338
+ 1
339
+ 5
340
+ 20
341
+ 1
342
+ 7
343
+ 3
344
+ 49
345
+ 4
346
+ 1
347
+ 13
348
+ 10
349
+ 36
350
+ 15
351
+ 5
352
+ 48
353
+ 3
354
+ 47
355
+ 49
356
+ 2
357
+ 1
358
+ 82
359
+ 5
360
+ 49
361
+ 6
362
+ 0
363
+ 13
364
+ 44
365
+ 43
366
+ 7
367
+ 80
368
+ 4
369
+ 7
370
+ 49
371
+ 8
372
+ 2
373
+ 12
374
+ 49
375
+ 9
376
+ 1
377
+ 9
378
+ 77
379
+ 15
380
+ 7
381
+ 10
382
+ 64
383
+ 20
384
+ 0
385
+ 7
386
+ 11
387
+ 64
388
+ 49
389
+ 12
390
+ 1
391
+ 81
392
+ 13
393
+ 8
394
+ 164
395
+ 13
396
+ 79
397
+ 12
398
+ 49
399
+ 9
400
+ 1
401
+ 9
402
+ 91
403
+ 15
404
+ 7
405
+ 14
406
+ 64
407
+ 8
408
+ 164
409
+ 13
410
+ 78
411
+ 12
412
+ 49
413
+ 9
414
+ 1
415
+ 9
416
+ 105
417
+ 15
418
+ 7
419
+ 15
420
+ 64
421
+ 8
422
+ 164
423
+ 13
424
+ 77
425
+ 12
426
+ 49
427
+ 9
428
+ 1
429
+ 9
430
+ 119
431
+ 15
432
+ 7
433
+ 16
434
+ 64
435
+ 8
436
+ 164
437
+ 13
438
+ 44
439
+ 43
440
+ 7
441
+ 7
442
+ 17
443
+ 7
444
+ 18
445
+ 49
446
+ 8
447
+ 2
448
+ 12
449
+ 49
450
+ 9
451
+ 1
452
+ 9
453
+ 152
454
+ 15
455
+ 7
456
+ 19
457
+ 64
458
+ 20
459
+ 0
460
+ 7
461
+ 11
462
+ 64
463
+ 49
464
+ 12
465
+ 1
466
+ 81
467
+ 13
468
+ 8
469
+ 164
470
+ 15
471
+ 20
472
+ 0
473
+ 7
474
+ 20
475
+ 64
476
+ 49
477
+ 12
478
+ 1
479
+ 49
480
+ 21
481
+ 0
482
+ 11
483
+ I
484
+ 7
485
+ I
486
+ 2
487
+ I
488
+ 1
489
+ I
490
+ 2
491
+ n
492
+ p
493
+ 22
494
+ x
495
+ 4
496
+ Hash
497
+ x
498
+ 16
499
+ new_from_literal
500
+ x
501
+ 7
502
+ to_date
503
+ x
504
+ 5
505
+ today
506
+ x
507
+ 2
508
+ []
509
+ x
510
+ 1
511
+ -
512
+ x
513
+ 4
514
+ to_i
515
+ x
516
+ 5
517
+ Range
518
+ x
519
+ 3
520
+ new
521
+ x
522
+ 3
523
+ ===
524
+ s
525
+ 5
526
+ This
527
+ s
528
+ 2
529
+ %A
530
+ x
531
+ 8
532
+ strftime
533
+ x
534
+ 1
535
+ +
536
+ s
537
+ 8
538
+ Tomorrow
539
+ s
540
+ 5
541
+ Today
542
+ s
543
+ 9
544
+ Yesterday
545
+ I
546
+ -7
547
+ I
548
+ -2
549
+ s
550
+ 5
551
+ Last
552
+ s
553
+ 8
554
+ %e %B %Y
555
+ x
556
+ 5
557
+ strip
558
+ p
559
+ 17
560
+ I
561
+ 0
562
+ I
563
+ 23
564
+ I
565
+ e
566
+ I
567
+ 24
568
+ I
569
+ 2e
570
+ I
571
+ 25
572
+ I
573
+ 4e
574
+ I
575
+ 26
576
+ I
577
+ 5c
578
+ I
579
+ 27
580
+ I
581
+ 6a
582
+ I
583
+ 28
584
+ I
585
+ 78
586
+ I
587
+ 29
588
+ I
589
+ 99
590
+ I
591
+ 2a
592
+ I
593
+ a5
594
+ x
595
+ 42
596
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
597
+ p
598
+ 2
599
+ x
600
+ 4
601
+ date
602
+ x
603
+ 4
604
+ opts
605
+ x
606
+ 16
607
+ object_metaclass
608
+ x
609
+ 18
610
+ __metaclass_init__
611
+ M
612
+ 1
613
+ n
614
+ n
615
+ x
616
+ 18
617
+ __metaclass_init__
618
+ i
619
+ 224
620
+ 5
621
+ 66
622
+ 5
623
+ 48
624
+ 0
625
+ 15
626
+ 65
627
+ 7
628
+ 1
629
+ 7
630
+ 2
631
+ 13
632
+ 70
633
+ 9
634
+ 27
635
+ 15
636
+ 44
637
+ 43
638
+ 3
639
+ 7
640
+ 4
641
+ 78
642
+ 49
643
+ 5
644
+ 2
645
+ 6
646
+ 2
647
+ 49
648
+ 6
649
+ 2
650
+ 15
651
+ 65
652
+ 7
653
+ 7
654
+ 7
655
+ 8
656
+ 13
657
+ 70
658
+ 9
659
+ 52
660
+ 15
661
+ 44
662
+ 43
663
+ 3
664
+ 7
665
+ 9
666
+ 78
667
+ 49
668
+ 5
669
+ 2
670
+ 6
671
+ 8
672
+ 49
673
+ 6
674
+ 2
675
+ 15
676
+ 65
677
+ 7
678
+ 10
679
+ 7
680
+ 11
681
+ 13
682
+ 70
683
+ 9
684
+ 77
685
+ 15
686
+ 44
687
+ 43
688
+ 3
689
+ 7
690
+ 12
691
+ 78
692
+ 49
693
+ 5
694
+ 2
695
+ 6
696
+ 11
697
+ 49
698
+ 6
699
+ 2
700
+ 15
701
+ 65
702
+ 7
703
+ 13
704
+ 45
705
+ 14
706
+ 15
707
+ 43
708
+ 16
709
+ 45
710
+ 14
711
+ 17
712
+ 43
713
+ 18
714
+ 49
715
+ 19
716
+ 1
717
+ 49
718
+ 20
719
+ 0
720
+ 49
721
+ 21
722
+ 0
723
+ 56
724
+ 22
725
+ 50
726
+ 23
727
+ 0
728
+ 49
729
+ 6
730
+ 2
731
+ 15
732
+ 99
733
+ 7
734
+ 24
735
+ 7
736
+ 25
737
+ 65
738
+ 67
739
+ 49
740
+ 26
741
+ 0
742
+ 49
743
+ 27
744
+ 4
745
+ 15
746
+ 99
747
+ 7
748
+ 28
749
+ 7
750
+ 29
751
+ 65
752
+ 67
753
+ 49
754
+ 26
755
+ 0
756
+ 49
757
+ 27
758
+ 4
759
+ 15
760
+ 99
761
+ 7
762
+ 30
763
+ 7
764
+ 31
765
+ 65
766
+ 67
767
+ 49
768
+ 26
769
+ 0
770
+ 49
771
+ 27
772
+ 4
773
+ 15
774
+ 99
775
+ 7
776
+ 32
777
+ 7
778
+ 33
779
+ 65
780
+ 67
781
+ 49
782
+ 26
783
+ 0
784
+ 49
785
+ 27
786
+ 4
787
+ 15
788
+ 99
789
+ 7
790
+ 34
791
+ 7
792
+ 35
793
+ 65
794
+ 67
795
+ 49
796
+ 26
797
+ 0
798
+ 49
799
+ 27
800
+ 4
801
+ 15
802
+ 99
803
+ 7
804
+ 36
805
+ 7
806
+ 37
807
+ 65
808
+ 67
809
+ 49
810
+ 26
811
+ 0
812
+ 49
813
+ 27
814
+ 4
815
+ 15
816
+ 99
817
+ 7
818
+ 38
819
+ 7
820
+ 39
821
+ 65
822
+ 67
823
+ 49
824
+ 26
825
+ 0
826
+ 49
827
+ 27
828
+ 4
829
+ 15
830
+ 99
831
+ 7
832
+ 40
833
+ 7
834
+ 41
835
+ 65
836
+ 67
837
+ 49
838
+ 26
839
+ 0
840
+ 49
841
+ 27
842
+ 4
843
+ 11
844
+ I
845
+ 5
846
+ I
847
+ 0
848
+ I
849
+ 0
850
+ I
851
+ 0
852
+ n
853
+ p
854
+ 42
855
+ x
856
+ 7
857
+ private
858
+ x
859
+ 6
860
+ NUMBER
861
+ n
862
+ x
863
+ 6
864
+ Regexp
865
+ s
866
+ 8
867
+ ^[0-9]+$
868
+ x
869
+ 3
870
+ new
871
+ x
872
+ 9
873
+ const_set
874
+ x
875
+ 19
876
+ NUMBER_WITH_ORDINAL
877
+ n
878
+ s
879
+ 22
880
+ ^[0-9]+(st|nd|rd|th)?$
881
+ x
882
+ 13
883
+ ISO_8601_DATE
884
+ n
885
+ s
886
+ 59
887
+ ^([0-9]{4})-?(1[0-2]|0?[1-9])-?(3[0-1]|[1-2][0-9]|0?[1-9])$
888
+ x
889
+ 11
890
+ MONTH_NAMES
891
+ x
892
+ 4
893
+ Date
894
+ n
895
+ x
896
+ 10
897
+ MONTHNAMES
898
+ n
899
+ x
900
+ 15
901
+ ABBR_MONTHNAMES
902
+ x
903
+ 3
904
+ zip
905
+ x
906
+ 7
907
+ flatten
908
+ x
909
+ 7
910
+ compact
911
+ M
912
+ 1
913
+ p
914
+ 2
915
+ x
916
+ 9
917
+ for_block
918
+ t
919
+ n
920
+ x
921
+ 18
922
+ __metaclass_init__
923
+ i
924
+ 10
925
+ 57
926
+ 19
927
+ 0
928
+ 15
929
+ 20
930
+ 0
931
+ 49
932
+ 0
933
+ 0
934
+ 11
935
+ I
936
+ 3
937
+ I
938
+ 1
939
+ I
940
+ 1
941
+ I
942
+ 1
943
+ n
944
+ p
945
+ 1
946
+ x
947
+ 8
948
+ downcase
949
+ p
950
+ 5
951
+ I
952
+ 0
953
+ I
954
+ 35
955
+ I
956
+ 4
957
+ I
958
+ 36
959
+ I
960
+ a
961
+ x
962
+ 42
963
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
964
+ p
965
+ 1
966
+ x
967
+ 1
968
+ x
969
+ x
970
+ 3
971
+ map
972
+ x
973
+ 7
974
+ to_date
975
+ M
976
+ 1
977
+ n
978
+ n
979
+ x
980
+ 7
981
+ to_date
982
+ i
983
+ 55
984
+ 45
985
+ 0
986
+ 1
987
+ 13
988
+ 71
989
+ 2
990
+ 47
991
+ 9
992
+ 36
993
+ 47
994
+ 49
995
+ 3
996
+ 0
997
+ 13
998
+ 20
999
+ 0
1000
+ 49
1001
+ 4
1002
+ 0
1003
+ 20
1004
+ 0
1005
+ 49
1006
+ 5
1007
+ 0
1008
+ 20
1009
+ 0
1010
+ 49
1011
+ 6
1012
+ 0
1013
+ 47
1014
+ 49
1015
+ 7
1016
+ 3
1017
+ 15
1018
+ 8
1019
+ 54
1020
+ 20
1021
+ 0
1022
+ 49
1023
+ 4
1024
+ 0
1025
+ 20
1026
+ 0
1027
+ 49
1028
+ 5
1029
+ 0
1030
+ 20
1031
+ 0
1032
+ 49
1033
+ 6
1034
+ 0
1035
+ 49
1036
+ 2
1037
+ 3
1038
+ 11
1039
+ I
1040
+ 6
1041
+ I
1042
+ 1
1043
+ I
1044
+ 1
1045
+ I
1046
+ 1
1047
+ n
1048
+ p
1049
+ 8
1050
+ x
1051
+ 4
1052
+ Date
1053
+ n
1054
+ x
1055
+ 3
1056
+ new
1057
+ x
1058
+ 8
1059
+ allocate
1060
+ x
1061
+ 4
1062
+ year
1063
+ x
1064
+ 5
1065
+ month
1066
+ x
1067
+ 3
1068
+ day
1069
+ x
1070
+ 10
1071
+ initialize
1072
+ p
1073
+ 5
1074
+ I
1075
+ 0
1076
+ I
1077
+ 3b
1078
+ I
1079
+ 0
1080
+ I
1081
+ 3c
1082
+ I
1083
+ 37
1084
+ x
1085
+ 42
1086
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
1087
+ p
1088
+ 1
1089
+ x
1090
+ 4
1091
+ time
1092
+ x
1093
+ 17
1094
+ method_visibility
1095
+ x
1096
+ 15
1097
+ add_defn_method
1098
+ x
1099
+ 5
1100
+ today
1101
+ M
1102
+ 1
1103
+ n
1104
+ n
1105
+ x
1106
+ 5
1107
+ today
1108
+ i
1109
+ 43
1110
+ 45
1111
+ 0
1112
+ 1
1113
+ 7
1114
+ 2
1115
+ 49
1116
+ 3
1117
+ 1
1118
+ 13
1119
+ 9
1120
+ 18
1121
+ 15
1122
+ 45
1123
+ 0
1124
+ 4
1125
+ 49
1126
+ 2
1127
+ 0
1128
+ 9
1129
+ 36
1130
+ 5
1131
+ 45
1132
+ 0
1133
+ 5
1134
+ 49
1135
+ 2
1136
+ 0
1137
+ 49
1138
+ 6
1139
+ 0
1140
+ 47
1141
+ 49
1142
+ 7
1143
+ 1
1144
+ 8
1145
+ 42
1146
+ 45
1147
+ 8
1148
+ 9
1149
+ 49
1150
+ 10
1151
+ 0
1152
+ 11
1153
+ I
1154
+ 2
1155
+ I
1156
+ 0
1157
+ I
1158
+ 0
1159
+ I
1160
+ 0
1161
+ n
1162
+ p
1163
+ 11
1164
+ x
1165
+ 4
1166
+ Time
1167
+ n
1168
+ x
1169
+ 4
1170
+ zone
1171
+ x
1172
+ 11
1173
+ respond_to?
1174
+ n
1175
+ n
1176
+ x
1177
+ 3
1178
+ now
1179
+ x
1180
+ 7
1181
+ to_date
1182
+ x
1183
+ 4
1184
+ Date
1185
+ n
1186
+ x
1187
+ 5
1188
+ today
1189
+ p
1190
+ 9
1191
+ I
1192
+ 0
1193
+ I
1194
+ 3f
1195
+ I
1196
+ 0
1197
+ I
1198
+ 40
1199
+ I
1200
+ 14
1201
+ I
1202
+ 41
1203
+ I
1204
+ 24
1205
+ I
1206
+ 43
1207
+ I
1208
+ 2b
1209
+ x
1210
+ 42
1211
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
1212
+ p
1213
+ 0
1214
+ x
1215
+ 15
1216
+ month_from_name
1217
+ M
1218
+ 1
1219
+ n
1220
+ n
1221
+ x
1222
+ 15
1223
+ month_from_name
1224
+ i
1225
+ 28
1226
+ 45
1227
+ 0
1228
+ 1
1229
+ 20
1230
+ 0
1231
+ 49
1232
+ 2
1233
+ 1
1234
+ 19
1235
+ 0
1236
+ 15
1237
+ 20
1238
+ 0
1239
+ 9
1240
+ 26
1241
+ 20
1242
+ 0
1243
+ 80
1244
+ 49
1245
+ 3
1246
+ 1
1247
+ 79
1248
+ 81
1249
+ 4
1250
+ 8
1251
+ 27
1252
+ 1
1253
+ 11
1254
+ I
1255
+ 3
1256
+ I
1257
+ 1
1258
+ I
1259
+ 1
1260
+ I
1261
+ 1
1262
+ n
1263
+ p
1264
+ 5
1265
+ x
1266
+ 11
1267
+ MONTH_NAMES
1268
+ n
1269
+ x
1270
+ 5
1271
+ index
1272
+ x
1273
+ 1
1274
+ /
1275
+ x
1276
+ 1
1277
+ +
1278
+ p
1279
+ 7
1280
+ I
1281
+ 0
1282
+ I
1283
+ 4b
1284
+ I
1285
+ 0
1286
+ I
1287
+ 4c
1288
+ I
1289
+ b
1290
+ I
1291
+ 4d
1292
+ I
1293
+ 1c
1294
+ x
1295
+ 42
1296
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
1297
+ p
1298
+ 1
1299
+ x
1300
+ 5
1301
+ month
1302
+ x
1303
+ 17
1304
+ parse_nearby_days
1305
+ M
1306
+ 1
1307
+ n
1308
+ n
1309
+ x
1310
+ 17
1311
+ parse_nearby_days
1312
+ i
1313
+ 54
1314
+ 20
1315
+ 0
1316
+ 7
1317
+ 0
1318
+ 64
1319
+ 83
1320
+ 1
1321
+ 9
1322
+ 14
1323
+ 20
1324
+ 1
1325
+ 11
1326
+ 8
1327
+ 15
1328
+ 1
1329
+ 15
1330
+ 20
1331
+ 0
1332
+ 7
1333
+ 2
1334
+ 64
1335
+ 83
1336
+ 1
1337
+ 9
1338
+ 33
1339
+ 20
1340
+ 1
1341
+ 79
1342
+ 82
1343
+ 3
1344
+ 11
1345
+ 8
1346
+ 34
1347
+ 1
1348
+ 15
1349
+ 20
1350
+ 0
1351
+ 7
1352
+ 4
1353
+ 64
1354
+ 83
1355
+ 1
1356
+ 9
1357
+ 52
1358
+ 20
1359
+ 1
1360
+ 79
1361
+ 81
1362
+ 5
1363
+ 11
1364
+ 8
1365
+ 53
1366
+ 1
1367
+ 11
1368
+ I
1369
+ 4
1370
+ I
1371
+ 2
1372
+ I
1373
+ 2
1374
+ I
1375
+ 2
1376
+ n
1377
+ p
1378
+ 6
1379
+ s
1380
+ 5
1381
+ today
1382
+ x
1383
+ 2
1384
+ ==
1385
+ s
1386
+ 9
1387
+ yesterday
1388
+ x
1389
+ 1
1390
+ -
1391
+ s
1392
+ 8
1393
+ tomorrow
1394
+ x
1395
+ 1
1396
+ +
1397
+ p
1398
+ 9
1399
+ I
1400
+ 0
1401
+ I
1402
+ 51
1403
+ I
1404
+ 0
1405
+ I
1406
+ 52
1407
+ I
1408
+ 10
1409
+ I
1410
+ 53
1411
+ I
1412
+ 23
1413
+ I
1414
+ 54
1415
+ I
1416
+ 36
1417
+ x
1418
+ 42
1419
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
1420
+ p
1421
+ 2
1422
+ x
1423
+ 6
1424
+ string
1425
+ x
1426
+ 5
1427
+ today
1428
+ x
1429
+ 22
1430
+ parse_last_or_this_day
1431
+ M
1432
+ 1
1433
+ n
1434
+ n
1435
+ x
1436
+ 22
1437
+ parse_last_or_this_day
1438
+ i
1439
+ 89
1440
+ 20
1441
+ 0
1442
+ 7
1443
+ 0
1444
+ 13
1445
+ 70
1446
+ 9
1447
+ 20
1448
+ 15
1449
+ 44
1450
+ 43
1451
+ 1
1452
+ 7
1453
+ 2
1454
+ 78
1455
+ 49
1456
+ 3
1457
+ 2
1458
+ 6
1459
+ 0
1460
+ 49
1461
+ 4
1462
+ 1
1463
+ 19
1464
+ 2
1465
+ 15
1466
+ 7
1467
+ 5
1468
+ 64
1469
+ 7
1470
+ 6
1471
+ 64
1472
+ 35
1473
+ 2
1474
+ 20
1475
+ 2
1476
+ 78
1477
+ 49
1478
+ 7
1479
+ 1
1480
+ 49
1481
+ 8
1482
+ 1
1483
+ 9
1484
+ 87
1485
+ 44
1486
+ 43
1487
+ 9
1488
+ 79
1489
+ 4
1490
+ 7
1491
+ 49
1492
+ 3
1493
+ 2
1494
+ 56
1495
+ 10
1496
+ 50
1497
+ 11
1498
+ 0
1499
+ 44
1500
+ 43
1501
+ 12
1502
+ 78
1503
+ 49
1504
+ 13
1505
+ 1
1506
+ 56
1507
+ 14
1508
+ 50
1509
+ 15
1510
+ 1
1511
+ 19
1512
+ 3
1513
+ 15
1514
+ 20
1515
+ 3
1516
+ 20
1517
+ 2
1518
+ 79
1519
+ 49
1520
+ 7
1521
+ 1
1522
+ 49
1523
+ 7
1524
+ 1
1525
+ 8
1526
+ 88
1527
+ 1
1528
+ 11
1529
+ I
1530
+ 8
1531
+ I
1532
+ 4
1533
+ I
1534
+ 2
1535
+ I
1536
+ 2
1537
+ n
1538
+ p
1539
+ 16
1540
+ n
1541
+ x
1542
+ 6
1543
+ Regexp
1544
+ s
1545
+ 3
1546
+ \s+
1547
+ x
1548
+ 3
1549
+ new
1550
+ x
1551
+ 5
1552
+ split
1553
+ s
1554
+ 4
1555
+ last
1556
+ s
1557
+ 4
1558
+ this
1559
+ x
1560
+ 2
1561
+ []
1562
+ x
1563
+ 8
1564
+ include?
1565
+ x
1566
+ 5
1567
+ Range
1568
+ M
1569
+ 1
1570
+ p
1571
+ 2
1572
+ x
1573
+ 9
1574
+ for_block
1575
+ t
1576
+ n
1577
+ x
1578
+ 22
1579
+ parse_last_or_this_day
1580
+ i
1581
+ 33
1582
+ 57
1583
+ 19
1584
+ 0
1585
+ 15
1586
+ 21
1587
+ 1
1588
+ 1
1589
+ 21
1590
+ 1
1591
+ 2
1592
+ 78
1593
+ 49
1594
+ 0
1595
+ 1
1596
+ 7
1597
+ 1
1598
+ 64
1599
+ 83
1600
+ 2
1601
+ 9
1602
+ 28
1603
+ 20
1604
+ 0
1605
+ 49
1606
+ 3
1607
+ 0
1608
+ 8
1609
+ 30
1610
+ 20
1611
+ 0
1612
+ 81
1613
+ 4
1614
+ 11
1615
+ I
1616
+ 5
1617
+ I
1618
+ 1
1619
+ I
1620
+ 1
1621
+ I
1622
+ 1
1623
+ n
1624
+ p
1625
+ 5
1626
+ x
1627
+ 2
1628
+ []
1629
+ s
1630
+ 4
1631
+ last
1632
+ x
1633
+ 2
1634
+ ==
1635
+ x
1636
+ 2
1637
+ -@
1638
+ x
1639
+ 1
1640
+ +
1641
+ p
1642
+ 5
1643
+ I
1644
+ 0
1645
+ I
1646
+ 5c
1647
+ I
1648
+ 4
1649
+ I
1650
+ 5d
1651
+ I
1652
+ 21
1653
+ x
1654
+ 42
1655
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
1656
+ p
1657
+ 1
1658
+ x
1659
+ 1
1660
+ x
1661
+ x
1662
+ 3
1663
+ map
1664
+ x
1665
+ 4
1666
+ Hash
1667
+ x
1668
+ 16
1669
+ new_from_literal
1670
+ M
1671
+ 1
1672
+ p
1673
+ 2
1674
+ x
1675
+ 9
1676
+ for_block
1677
+ t
1678
+ n
1679
+ x
1680
+ 22
1681
+ parse_last_or_this_day
1682
+ i
1683
+ 42
1684
+ 58
1685
+ 36
1686
+ 37
1687
+ 19
1688
+ 0
1689
+ 15
1690
+ 37
1691
+ 19
1692
+ 1
1693
+ 15
1694
+ 15
1695
+ 20
1696
+ 0
1697
+ 44
1698
+ 43
1699
+ 0
1700
+ 79
1701
+ 49
1702
+ 1
1703
+ 1
1704
+ 13
1705
+ 20
1706
+ 1
1707
+ 7
1708
+ 2
1709
+ 64
1710
+ 49
1711
+ 3
1712
+ 1
1713
+ 49
1714
+ 4
1715
+ 0
1716
+ 20
1717
+ 1
1718
+ 49
1719
+ 5
1720
+ 2
1721
+ 15
1722
+ 49
1723
+ 6
1724
+ 1
1725
+ 11
1726
+ I
1727
+ 8
1728
+ I
1729
+ 2
1730
+ I
1731
+ 2
1732
+ I
1733
+ 2
1734
+ n
1735
+ p
1736
+ 7
1737
+ x
1738
+ 4
1739
+ Hash
1740
+ x
1741
+ 16
1742
+ new_from_literal
1743
+ s
1744
+ 2
1745
+ %A
1746
+ x
1747
+ 8
1748
+ strftime
1749
+ x
1750
+ 8
1751
+ downcase
1752
+ x
1753
+ 3
1754
+ []=
1755
+ x
1756
+ 6
1757
+ update
1758
+ p
1759
+ 7
1760
+ I
1761
+ 0
1762
+ I
1763
+ 5c
1764
+ I
1765
+ 3
1766
+ I
1767
+ 5e
1768
+ I
1769
+ b
1770
+ I
1771
+ 5f
1772
+ I
1773
+ 2a
1774
+ x
1775
+ 42
1776
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
1777
+ p
1778
+ 2
1779
+ x
1780
+ 1
1781
+ a
1782
+ x
1783
+ 1
1784
+ x
1785
+ x
1786
+ 6
1787
+ inject
1788
+ p
1789
+ 17
1790
+ I
1791
+ 0
1792
+ I
1793
+ 58
1794
+ I
1795
+ 0
1796
+ I
1797
+ 59
1798
+ I
1799
+ 1a
1800
+ I
1801
+ 5b
1802
+ I
1803
+ 2d
1804
+ I
1805
+ 5c
1806
+ I
1807
+ 3b
1808
+ I
1809
+ 5e
1810
+ I
1811
+ 42
1812
+ I
1813
+ 5c
1814
+ I
1815
+ 4a
1816
+ I
1817
+ 62
1818
+ I
1819
+ 57
1820
+ I
1821
+ 5b
1822
+ I
1823
+ 59
1824
+ x
1825
+ 42
1826
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
1827
+ p
1828
+ 4
1829
+ x
1830
+ 6
1831
+ string
1832
+ x
1833
+ 5
1834
+ today
1835
+ x
1836
+ 6
1837
+ tokens
1838
+ x
1839
+ 4
1840
+ days
1841
+ x
1842
+ 16
1843
+ parse_exact_date
1844
+ M
1845
+ 1
1846
+ n
1847
+ n
1848
+ x
1849
+ 16
1850
+ parse_exact_date
1851
+ i
1852
+ 124
1853
+ 20
1854
+ 0
1855
+ 7
1856
+ 0
1857
+ 13
1858
+ 70
1859
+ 9
1860
+ 20
1861
+ 15
1862
+ 44
1863
+ 43
1864
+ 1
1865
+ 7
1866
+ 2
1867
+ 78
1868
+ 49
1869
+ 3
1870
+ 2
1871
+ 6
1872
+ 0
1873
+ 49
1874
+ 4
1875
+ 1
1876
+ 19
1877
+ 2
1878
+ 15
1879
+ 20
1880
+ 2
1881
+ 49
1882
+ 5
1883
+ 0
1884
+ 80
1885
+ 49
1886
+ 6
1887
+ 1
1888
+ 9
1889
+ 122
1890
+ 20
1891
+ 2
1892
+ 78
1893
+ 49
1894
+ 7
1895
+ 1
1896
+ 45
1897
+ 8
1898
+ 9
1899
+ 49
1900
+ 10
1901
+ 1
1902
+ 9
1903
+ 78
1904
+ 5
1905
+ 20
1906
+ 2
1907
+ 78
1908
+ 49
1909
+ 7
1910
+ 1
1911
+ 20
1912
+ 2
1913
+ 79
1914
+ 49
1915
+ 7
1916
+ 1
1917
+ 20
1918
+ 2
1919
+ 80
1920
+ 49
1921
+ 7
1922
+ 1
1923
+ 20
1924
+ 1
1925
+ 47
1926
+ 49
1927
+ 11
1928
+ 4
1929
+ 8
1930
+ 120
1931
+ 20
1932
+ 2
1933
+ 79
1934
+ 49
1935
+ 7
1936
+ 1
1937
+ 45
1938
+ 8
1939
+ 12
1940
+ 49
1941
+ 10
1942
+ 1
1943
+ 9
1944
+ 119
1945
+ 5
1946
+ 20
1947
+ 2
1948
+ 79
1949
+ 49
1950
+ 7
1951
+ 1
1952
+ 20
1953
+ 2
1954
+ 78
1955
+ 49
1956
+ 7
1957
+ 1
1958
+ 20
1959
+ 2
1960
+ 80
1961
+ 49
1962
+ 7
1963
+ 1
1964
+ 20
1965
+ 1
1966
+ 47
1967
+ 49
1968
+ 11
1969
+ 4
1970
+ 8
1971
+ 120
1972
+ 1
1973
+ 8
1974
+ 123
1975
+ 1
1976
+ 11
1977
+ I
1978
+ 8
1979
+ I
1980
+ 3
1981
+ I
1982
+ 2
1983
+ I
1984
+ 2
1985
+ n
1986
+ p
1987
+ 13
1988
+ n
1989
+ x
1990
+ 6
1991
+ Regexp
1992
+ s
1993
+ 3
1994
+ \s+
1995
+ x
1996
+ 3
1997
+ new
1998
+ x
1999
+ 5
2000
+ split
2001
+ x
2002
+ 6
2003
+ length
2004
+ x
2005
+ 2
2006
+ >=
2007
+ x
2008
+ 2
2009
+ []
2010
+ x
2011
+ 19
2012
+ NUMBER_WITH_ORDINAL
2013
+ n
2014
+ x
2015
+ 2
2016
+ =~
2017
+ x
2018
+ 22
2019
+ parse_exact_date_parts
2020
+ n
2021
+ p
2022
+ 19
2023
+ I
2024
+ 0
2025
+ I
2026
+ 67
2027
+ I
2028
+ 0
2029
+ I
2030
+ 68
2031
+ I
2032
+ 1a
2033
+ I
2034
+ 6a
2035
+ I
2036
+ 25
2037
+ I
2038
+ 6b
2039
+ I
2040
+ 33
2041
+ I
2042
+ 6c
2043
+ I
2044
+ 4e
2045
+ I
2046
+ 6d
2047
+ I
2048
+ 5c
2049
+ I
2050
+ 6e
2051
+ I
2052
+ 77
2053
+ I
2054
+ 6d
2055
+ I
2056
+ 7a
2057
+ I
2058
+ 6a
2059
+ I
2060
+ 7c
2061
+ x
2062
+ 42
2063
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
2064
+ p
2065
+ 3
2066
+ x
2067
+ 6
2068
+ string
2069
+ x
2070
+ 5
2071
+ today
2072
+ x
2073
+ 6
2074
+ tokens
2075
+ x
2076
+ 22
2077
+ parse_exact_date_parts
2078
+ M
2079
+ 1
2080
+ n
2081
+ n
2082
+ x
2083
+ 22
2084
+ parse_exact_date_parts
2085
+ i
2086
+ 147
2087
+ 20
2088
+ 0
2089
+ 49
2090
+ 0
2091
+ 0
2092
+ 19
2093
+ 4
2094
+ 15
2095
+ 5
2096
+ 20
2097
+ 1
2098
+ 47
2099
+ 49
2100
+ 1
2101
+ 1
2102
+ 19
2103
+ 5
2104
+ 15
2105
+ 20
2106
+ 2
2107
+ 9
2108
+ 42
2109
+ 20
2110
+ 2
2111
+ 45
2112
+ 2
2113
+ 3
2114
+ 49
2115
+ 4
2116
+ 1
2117
+ 9
2118
+ 39
2119
+ 20
2120
+ 2
2121
+ 49
2122
+ 0
2123
+ 0
2124
+ 8
2125
+ 40
2126
+ 1
2127
+ 8
2128
+ 47
2129
+ 20
2130
+ 3
2131
+ 49
2132
+ 5
2133
+ 0
2134
+ 19
2135
+ 6
2136
+ 15
2137
+ 20
2138
+ 4
2139
+ 13
2140
+ 9
2141
+ 64
2142
+ 15
2143
+ 20
2144
+ 5
2145
+ 13
2146
+ 9
2147
+ 64
2148
+ 15
2149
+ 20
2150
+ 6
2151
+ 9
2152
+ 69
2153
+ 1
2154
+ 8
2155
+ 71
2156
+ 1
2157
+ 11
2158
+ 15
2159
+ 45
2160
+ 6
2161
+ 7
2162
+ 13
2163
+ 71
2164
+ 8
2165
+ 47
2166
+ 9
2167
+ 99
2168
+ 47
2169
+ 49
2170
+ 9
2171
+ 0
2172
+ 13
2173
+ 20
2174
+ 6
2175
+ 20
2176
+ 5
2177
+ 20
2178
+ 4
2179
+ 47
2180
+ 49
2181
+ 10
2182
+ 3
2183
+ 15
2184
+ 8
2185
+ 108
2186
+ 20
2187
+ 6
2188
+ 20
2189
+ 5
2190
+ 20
2191
+ 4
2192
+ 49
2193
+ 8
2194
+ 3
2195
+ 19
2196
+ 7
2197
+ 15
2198
+ 20
2199
+ 7
2200
+ 20
2201
+ 3
2202
+ 85
2203
+ 11
2204
+ 13
2205
+ 9
2206
+ 129
2207
+ 15
2208
+ 20
2209
+ 2
2210
+ 10
2211
+ 128
2212
+ 2
2213
+ 8
2214
+ 129
2215
+ 3
2216
+ 9
2217
+ 142
2218
+ 20
2219
+ 7
2220
+ 4
2221
+ 12
2222
+ 49
2223
+ 12
2224
+ 1
2225
+ 19
2226
+ 7
2227
+ 8
2228
+ 143
2229
+ 1
2230
+ 15
2231
+ 20
2232
+ 7
2233
+ 11
2234
+ I
2235
+ d
2236
+ I
2237
+ 8
2238
+ I
2239
+ 4
2240
+ I
2241
+ 4
2242
+ n
2243
+ p
2244
+ 13
2245
+ x
2246
+ 4
2247
+ to_i
2248
+ x
2249
+ 15
2250
+ month_from_name
2251
+ x
2252
+ 6
2253
+ NUMBER
2254
+ n
2255
+ x
2256
+ 2
2257
+ =~
2258
+ x
2259
+ 4
2260
+ year
2261
+ x
2262
+ 4
2263
+ Date
2264
+ n
2265
+ x
2266
+ 3
2267
+ new
2268
+ x
2269
+ 8
2270
+ allocate
2271
+ x
2272
+ 10
2273
+ initialize
2274
+ x
2275
+ 1
2276
+ >
2277
+ x
2278
+ 2
2279
+ <<
2280
+ p
2281
+ 21
2282
+ I
2283
+ 0
2284
+ I
2285
+ 74
2286
+ I
2287
+ 0
2288
+ I
2289
+ 75
2290
+ I
2291
+ 8
2292
+ I
2293
+ 76
2294
+ I
2295
+ 12
2296
+ I
2297
+ 77
2298
+ I
2299
+ 16
2300
+ I
2301
+ 78
2302
+ I
2303
+ 2a
2304
+ I
2305
+ 7a
2306
+ I
2307
+ 32
2308
+ I
2309
+ 7d
2310
+ I
2311
+ 48
2312
+ I
2313
+ 7f
2314
+ I
2315
+ 6f
2316
+ I
2317
+ 80
2318
+ I
2319
+ 90
2320
+ I
2321
+ 81
2322
+ I
2323
+ 93
2324
+ x
2325
+ 42
2326
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
2327
+ p
2328
+ 8
2329
+ x
2330
+ 7
2331
+ raw_day
2332
+ x
2333
+ 9
2334
+ raw_month
2335
+ x
2336
+ 8
2337
+ raw_year
2338
+ x
2339
+ 5
2340
+ today
2341
+ x
2342
+ 3
2343
+ day
2344
+ x
2345
+ 5
2346
+ month
2347
+ x
2348
+ 4
2349
+ year
2350
+ x
2351
+ 6
2352
+ result
2353
+ x
2354
+ 19
2355
+ parse_iso_8601_date
2356
+ M
2357
+ 1
2358
+ n
2359
+ n
2360
+ x
2361
+ 19
2362
+ parse_iso_8601_date
2363
+ i
2364
+ 62
2365
+ 20
2366
+ 0
2367
+ 45
2368
+ 0
2369
+ 1
2370
+ 49
2371
+ 2
2372
+ 1
2373
+ 9
2374
+ 60
2375
+ 26
2376
+ 93
2377
+ 0
2378
+ 15
2379
+ 29
2380
+ 28
2381
+ 0
2382
+ 45
2383
+ 3
2384
+ 4
2385
+ 20
2386
+ 0
2387
+ 49
2388
+ 5
2389
+ 1
2390
+ 30
2391
+ 8
2392
+ 55
2393
+ 26
2394
+ 93
2395
+ 1
2396
+ 15
2397
+ 24
2398
+ 13
2399
+ 45
2400
+ 6
2401
+ 7
2402
+ 12
2403
+ 49
2404
+ 8
2405
+ 1
2406
+ 10
2407
+ 45
2408
+ 8
2409
+ 50
2410
+ 15
2411
+ 1
2412
+ 25
2413
+ 8
2414
+ 55
2415
+ 15
2416
+ 92
2417
+ 1
2418
+ 27
2419
+ 34
2420
+ 92
2421
+ 0
2422
+ 27
2423
+ 8
2424
+ 61
2425
+ 1
2426
+ 11
2427
+ I
2428
+ 6
2429
+ I
2430
+ 1
2431
+ I
2432
+ 1
2433
+ I
2434
+ 1
2435
+ n
2436
+ p
2437
+ 9
2438
+ x
2439
+ 13
2440
+ ISO_8601_DATE
2441
+ n
2442
+ x
2443
+ 2
2444
+ =~
2445
+ x
2446
+ 4
2447
+ Date
2448
+ n
2449
+ x
2450
+ 5
2451
+ parse
2452
+ x
2453
+ 13
2454
+ StandardError
2455
+ n
2456
+ x
2457
+ 3
2458
+ ===
2459
+ p
2460
+ 9
2461
+ I
2462
+ 0
2463
+ I
2464
+ 88
2465
+ I
2466
+ 0
2467
+ I
2468
+ 89
2469
+ I
2470
+ a
2471
+ I
2472
+ 8a
2473
+ I
2474
+ 3c
2475
+ I
2476
+ 89
2477
+ I
2478
+ 3e
2479
+ x
2480
+ 42
2481
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
2482
+ p
2483
+ 1
2484
+ x
2485
+ 6
2486
+ string
2487
+ p
2488
+ 27
2489
+ I
2490
+ 2
2491
+ I
2492
+ 2f
2493
+ I
2494
+ 6
2495
+ I
2496
+ 31
2497
+ I
2498
+ 1f
2499
+ I
2500
+ 32
2501
+ I
2502
+ 38
2503
+ I
2504
+ 33
2505
+ I
2506
+ 51
2507
+ I
2508
+ 35
2509
+ I
2510
+ 70
2511
+ I
2512
+ 3b
2513
+ I
2514
+ 7e
2515
+ I
2516
+ 3f
2517
+ I
2518
+ 8c
2519
+ I
2520
+ 4b
2521
+ I
2522
+ 9a
2523
+ I
2524
+ 51
2525
+ I
2526
+ a8
2527
+ I
2528
+ 58
2529
+ I
2530
+ b6
2531
+ I
2532
+ 67
2533
+ I
2534
+ c4
2535
+ I
2536
+ 74
2537
+ I
2538
+ d2
2539
+ I
2540
+ 88
2541
+ I
2542
+ e0
2543
+ x
2544
+ 42
2545
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
2546
+ p
2547
+ 0
2548
+ p
2549
+ 7
2550
+ I
2551
+ 2
2552
+ I
2553
+ f
2554
+ I
2555
+ d
2556
+ I
2557
+ 23
2558
+ I
2559
+ 18
2560
+ I
2561
+ 2e
2562
+ I
2563
+ 31
2564
+ x
2565
+ 42
2566
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
2567
+ p
2568
+ 0
2569
+ x
2570
+ 13
2571
+ attach_method
2572
+ p
2573
+ 5
2574
+ I
2575
+ 0
2576
+ I
2577
+ 1
2578
+ I
2579
+ 9
2580
+ I
2581
+ 3
2582
+ I
2583
+ 26
2584
+ x
2585
+ 42
2586
+ /Users/xavier/Code/os/kronic/lib/kronic.rb
2587
+ p
2588
+ 0