kronic 0.3 → 0.4

Sign up to get free protection for your applications and to get access to all the features.
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