datet 0.0.6 → 0.0.7

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/Gemfile CHANGED
@@ -10,5 +10,4 @@ group :development do
10
10
  gem "rdoc", "~> 3.12"
11
11
  gem "bundler", ">= 1.0.0"
12
12
  gem "jeweler", "~> 1.8.4"
13
- gem "rcov", ">= 0"
14
13
  end
@@ -9,8 +9,8 @@ GEM
9
9
  rake
10
10
  rdoc
11
11
  json (1.7.3)
12
+ json (1.7.3-java)
12
13
  rake (0.9.2.2)
13
- rcov (0.9.11)
14
14
  rdoc (3.12)
15
15
  json (~> 1.4)
16
16
  rspec (2.8.0)
@@ -23,11 +23,11 @@ GEM
23
23
  rspec-mocks (2.8.0)
24
24
 
25
25
  PLATFORMS
26
+ java
26
27
  ruby
27
28
 
28
29
  DEPENDENCIES
29
30
  bundler (>= 1.0.0)
30
31
  jeweler (~> 1.8.4)
31
- rcov
32
32
  rdoc (~> 3.12)
33
33
  rspec (~> 2.8.0)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.6
1
+ 0.0.7
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{datet}
8
- s.version = "0.0.6"
8
+ s.version = "0.0.7"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kasper Johansen"]
@@ -44,20 +44,17 @@ Gem::Specification.new do |s|
44
44
  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
45
45
  s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
46
46
  s.add_development_dependency(%q<jeweler>, ["~> 1.8.4"])
47
- s.add_development_dependency(%q<rcov>, [">= 0"])
48
47
  else
49
48
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
50
49
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
51
50
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
52
51
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
53
- s.add_dependency(%q<rcov>, [">= 0"])
54
52
  end
55
53
  else
56
54
  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
57
55
  s.add_dependency(%q<rdoc>, ["~> 3.12"])
58
56
  s.add_dependency(%q<bundler>, [">= 1.0.0"])
59
57
  s.add_dependency(%q<jeweler>, ["~> 1.8.4"])
60
- s.add_dependency(%q<rcov>, [">= 0"])
61
58
  end
62
59
  end
63
60
 
@@ -32,24 +32,46 @@ class Datet
32
32
  }
33
33
 
34
34
  @@days_lcase = {
35
+ "sunday" => 0,
35
36
  "monday" => 1,
36
37
  "tuesday" => 2,
37
38
  "wednesday" => 3,
38
39
  "thursday" => 4,
39
40
  "friday" => 5,
40
- "saturday" => 6,
41
- "sunday" => 0
41
+ "saturday" => 6
42
42
  }
43
43
  @@days_lcase.clone.each do |key, val|
44
44
  @@days_lcase[key[0, 3]] = val
45
45
  end
46
46
 
47
+ @@day_names = {
48
+ 0 => "Sunday",
49
+ 1 => "Monday",
50
+ 2 => "Tuesday",
51
+ 3 => "Wednesday",
52
+ 4 => "Thursday",
53
+ 5 => "Friday",
54
+ 6 => "Saturday"
55
+ }
56
+
57
+ @@month_names = {
58
+ 1 => "January",
59
+ 2 => "February",
60
+ 3 => "March",
61
+ 4 => "April",
62
+ 5 => "May",
63
+ 6 => "June",
64
+ 7 => "July",
65
+ 8 => "August",
66
+ 9 => "September",
67
+ 10 => "October",
68
+ 11 => "November",
69
+ 12 => "December"
70
+ }
71
+
47
72
  #Thanks to ActiveSupport: http://rubydoc.info/docs/rails/2.3.8/ActiveSupport/CoreExtensions/Time/Calculations
48
73
  @@days_in_months = [nil, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
49
74
 
50
- #This date is a monday. It is used to calculate up against, when we calculate 'day_in_week'.
51
- @@def_date = Datet.new(1970, 1, 4)
52
-
53
75
  #Initializes the object. Default is the current time. A time-object can be given.
54
76
  #=Examples
55
77
  # datet = Datet.new #=> Datet-object with the current date and time.
@@ -199,21 +221,33 @@ class Datet
199
221
  #
200
222
  #Try to find next wednesday by Time's wday-method.
201
223
  # datet.find(:day, :wday => 3) #=> 2012-05-09 19:36:08 +0200
202
- def find(incr, args)
224
+ def find(args)
225
+ #Test arguments.
226
+ raise ArgumentError, "Too little arguments given: #{args.length}" if args.length < 2
227
+
228
+ args.each do |key, val|
229
+ case key
230
+ when :wday_mfirst, :wday, :incr
231
+ else
232
+ raise ArgumentError, "Invalid key in arguments: '#{key}'."
233
+ end
234
+ end
235
+
236
+ #Find the date.
203
237
  count = 0
204
238
  while true
205
- if args[:day_in_week] and self.day_in_week == args[:day_in_week]
239
+ if args[:wday_mfirst] and self.day_in_week(:mfirst => true) == args[:wday_mfirst]
206
240
  return self
207
- elsif args[:wday] and self.time.wday == args[:wday].to_i
241
+ elsif args[:wday] and self.day_in_week == args[:wday]
208
242
  return self
209
243
  end
210
244
 
211
- if incr == :day
245
+ if args[:incr] == :day
212
246
  self.add_days(1)
213
- elsif incr == :month
247
+ elsif args[:incr] == :month
214
248
  self.add_months(1)
215
249
  else
216
- raise "Invalid increment: #{incr}."
250
+ raise ArgumentError, "Invalid increment: #{incr}."
217
251
  end
218
252
 
219
253
  count += 1
@@ -414,7 +448,7 @@ class Datet
414
448
 
415
449
  #Class-method for days in month.
416
450
  def self.days_in_month(year, month)
417
- raise "Invalid month: '#{month}'." if month.to_i <= 0
451
+ raise ArgumentError, "Invalid month: '#{month}'." if month.to_i <= 0
418
452
  return 29 if month == 2 and Datet.gregorian_leap?(year)
419
453
  return @@days_in_months[month]
420
454
  end
@@ -430,8 +464,23 @@ class Datet
430
464
  return 365
431
465
  end
432
466
 
433
- #Returns the day in the week. Monday being 0 and sunday being 6.
434
- def day_in_week
467
+ #Returns the day in the week.
468
+ #===Examples
469
+ #Get a monday:
470
+ # datet = Datet.new(1970, 1, 4)
471
+ # datet.day_in_week #=> 1
472
+ # datet.day_in_week(:mfirst = true) #=> 0
473
+ def day_in_week(args = nil)
474
+ if args
475
+ args.each do |key, val|
476
+ case key
477
+ when :mfirst
478
+ else
479
+ raise ArgumentError, "Invalid key in arguments: '#{key}'."
480
+ end
481
+ end
482
+ end
483
+
435
484
  #This is a monday - 0. Use this date to calculate up against.
436
485
  def_date = Datet.new(1970, 1, 4)
437
486
 
@@ -447,10 +496,13 @@ class Datet
447
496
  diw = 0 if diw == 7
448
497
  end
449
498
 
450
- if diw == 0
451
- diw = 6
452
- else
453
- diw -= 1
499
+ #Monday should be the first day in the week.
500
+ if args and args[:mfirst]
501
+ if diw == 0
502
+ diw = 6
503
+ else
504
+ diw -= 1
505
+ end
454
506
  end
455
507
 
456
508
  return diw
@@ -458,12 +510,37 @@ class Datet
458
510
 
459
511
  #Returns the days name as a string.
460
512
  def day_name
461
- return self.time.strftime("%A")
513
+ return @@day_names[self.day_in_week]
514
+ end
515
+
516
+ #Returns the day as a localized string.
517
+ #===Examples
518
+ # Datet.new.day_str #=> "Monday"
519
+ # Datet.new.day_str(:short => true) #=> "Mon"
520
+ def day_str(args = nil)
521
+ ret = Datet.days(:trans => true)[self.day_in_week]
522
+ if args and args[:short]
523
+ ret = ret.slice(0, 3)
524
+ end
525
+
526
+ return ret
527
+ end
528
+
529
+ #Returns the month as a localized string.
530
+ #===Examples
531
+ # Datet.new.month_str #=> "January"
532
+ def month_str
533
+ ret = Datet.months(:trans => true)[@t_month]
534
+ if args and args[:short]
535
+ ret = ret.slice(0, 3)
536
+ end
537
+
538
+ return ret
462
539
  end
463
540
 
464
541
  #Returns the months name as a string.
465
542
  def month_name
466
- return self.time.strftime("%B")
543
+ return @@month_names[@t_month]
467
544
  end
468
545
 
469
546
  #Returns the year as an integer.
@@ -511,13 +588,6 @@ class Datet
511
588
  return @t_day
512
589
  end
513
590
 
514
- #Returns the weekday of the week as an integer. Monday being the first and sunday being the last.
515
- def wday_mon
516
- wday = self.time.wday
517
- return 0 if wday == 6
518
- return wday - 1
519
- end
520
-
521
591
  #Changes the date to a given date.
522
592
  #===Examples
523
593
  # datet.time #=> 2005-05-03 17:46:11 +0200
@@ -589,7 +659,7 @@ class Datet
589
659
  # datet.time #=> 2012-07-09 05:35:20 +0200
590
660
  def month=(newmonth)
591
661
  newmonth = newmonth.to_i
592
- raise "Invalid month: '#{newmonth}'." if newmonth <= 0
662
+ raise ArgumentError, "Invalid month: '#{newmonth}'." if newmonth <= 0
593
663
  @t_month = newmonth
594
664
  end
595
665
 
@@ -603,7 +673,7 @@ class Datet
603
673
  elsif datet.is_a?(Time)
604
674
  return datet
605
675
  else
606
- raise "Could not handle object of class: '#{datet.class.name}'."
676
+ raise ArgumentError, "Could not handle object of class: '#{datet.class.name}'."
607
677
  end
608
678
  end
609
679
 
@@ -617,7 +687,7 @@ class Datet
617
687
  elsif datet.is_a?(Time)
618
688
  return Datet.new(datet)
619
689
  else
620
- raise "Could not handle object of class: '#{datet.class.name}'."
690
+ raise ArgumentError, "Could not handle object of class: '#{datet.class.name}'."
621
691
  end
622
692
  end
623
693
 
@@ -787,20 +857,19 @@ class Datet
787
857
  #===Examples
788
858
  # Datet.new.day_of_year #=> 123
789
859
  def day_of_year
790
- return self.time.strftime("%j").to_i
791
- end
792
-
793
- #Returns the day as a localized string.
794
- #===Examples
795
- # Datet.new.day_str #=> "Monday"
796
- # Datet.new.day_str(:short => true) #=> "Mon"
797
- def day_str(args = nil)
798
- ret = Datet.days_arr[self.time.strftime("%w").to_i]
799
- if args and args[:short]
800
- ret = ret.slice(0, 3)
860
+ count = @t_day
861
+ @@days_in_months.each_index do |key|
862
+ break if key >= @t_month
863
+ val = @@days_in_months[key]
864
+
865
+ if key == 2 and Datet.gregorian_leap?(@t_year)
866
+ count += 29
867
+ else
868
+ count += val.to_i
869
+ end
801
870
  end
802
871
 
803
- return ret
872
+ return count
804
873
  end
805
874
 
806
875
  #Returns how many days there is between the two timestamps given as an integer.
@@ -810,7 +879,7 @@ class Datet
810
879
  # d2.months + 5 #=> 2012-10-03 18:04:16 +0200
811
880
  # Datet.days_between(d1, d2) #=> 153
812
881
  def self.days_between(t1, t2)
813
- raise "Timestamp 2 should be larger than timestamp 1." if t2 < t1
882
+ raise ArgumentError, "Timestamp 2 should be larger than timestamp 1." if t2 < t1
814
883
 
815
884
  doy1 = t1.day_of_year
816
885
  doy2 = t2.day_of_year
@@ -948,53 +1017,81 @@ class Datet
948
1017
  end
949
1018
 
950
1019
  #Returns a hash with the month-no as key and month-name as value. It uses the method "_" to translate the months names. So GetText or another method has to be defined.
951
- def self.months_arr(args = {})
952
- ret = {
953
- 1 => _("January"),
954
- 2 => _("February"),
955
- 3 => _("March"),
956
- 4 => _("April"),
957
- 5 => _("May"),
958
- 6 => _("June"),
959
- 7 => _("July"),
960
- 8 => _("August"),
961
- 9 => _("September"),
962
- 10 => _("October"),
963
- 11 => _("November"),
964
- 12 => _("December")
965
- }
1020
+ def self.months(args = nil)
1021
+ if args
1022
+ args.each do |key, val|
1023
+ case key
1024
+ when :short, :trans
1025
+ else
1026
+ raise ArgumentError, "Invalid key in arguments: '#{key}'."
1027
+ end
1028
+ end
1029
+ end
966
1030
 
967
- if args["short"]
968
- ret_short = {}
969
- ret.each do |key, val|
970
- ret_short[key] = val[0..2]
1031
+ ret = @@month_names.clone
1032
+
1033
+ if args
1034
+ if args[:trans]
1035
+ ret.each do |key, val|
1036
+ ret[key] = _(val)
1037
+ end
971
1038
  end
972
1039
 
973
- return ret_short
1040
+ if args[:short]
1041
+ ret_short = {}
1042
+ ret.each do |key, val|
1043
+ ret_short[key] = val[0..2]
1044
+ end
1045
+
1046
+ return ret_short
1047
+ end
974
1048
  end
975
1049
 
976
1050
  return ret
977
1051
  end
978
1052
 
979
1053
  #Returns a hash with the day-number as value (starting with 1 for monday). It uses the method "_" to translate the months names.
980
- def self.days_arr(args = {})
981
- ret = {
982
- 1 => _("Monday"),
983
- 2 => _("Tuesday"),
984
- 3 => _("Wednesday"),
985
- 4 => _("Thursday"),
986
- 5 => _("Friday"),
987
- 6 => _("Saturday"),
988
- 0 => _("Sunday")
989
- }
1054
+ #===Examples
1055
+ # Datet.days #=> {0=>"Sunday", 1=>"Monday", 2=>"Tuesday", 3=>"Wednesday", 4=>"Thursday", 5=>"Friday", 6=>"Saturday"}
1056
+ # Datet.days(:mfirst => true) #=> {0=>"Monday", 1=>"Tuesday", 2=>"Wednesday", 3=>"Thursday", 4=>"Friday", 5=>"Saturday", 6=>"Sunday"}
1057
+ def self.days(args = nil)
1058
+ if args
1059
+ args.each do |key, val|
1060
+ case key
1061
+ when :mfirst, :short, :trans
1062
+ else
1063
+ raise ArgumentError, "Unknown key in arguments: '#{key}'."
1064
+ end
1065
+ end
1066
+ end
1067
+
1068
+ ret = @@day_names.clone
990
1069
 
991
- if args["short"]
992
- ret_short = {}
993
- ret.each do |key, val|
994
- ret_short[key] = val[0..2]
1070
+ if args
1071
+ if args[:trans]
1072
+ ret.each do |key, val|
1073
+ ret[key] = _(val)
1074
+ end
995
1075
  end
996
1076
 
997
- return ret_short
1077
+ if args[:mfirst]
1078
+ newret = {}
1079
+ ret.each do |key, val|
1080
+ next if key == 0
1081
+ newret[key - 1] = val
1082
+ end
1083
+ newret[6] = ret[0]
1084
+ ret = newret
1085
+ end
1086
+
1087
+ if args[:short]
1088
+ ret_short = {}
1089
+ ret.each do |key, val|
1090
+ ret_short[key] = val[0..2]
1091
+ end
1092
+
1093
+ ret = ret_short
1094
+ end
998
1095
  end
999
1096
 
1000
1097
  return ret
@@ -1003,10 +1100,18 @@ class Datet
1003
1100
  #Converts a given day-name to the right day number.
1004
1101
  #===Examples
1005
1102
  # Datet.day_str_to_no('wed') #=> 3
1006
- def self.day_str_to_no(day_str)
1103
+ def self.day_str_to_no(day_str, args = nil)
1007
1104
  day_str = day_str.to_s.strip[0, 3]
1008
1105
 
1009
1106
  if no = @@days_lcase[day_str]
1107
+ if args and args[:mfirst]
1108
+ if no == 0
1109
+ no = 6
1110
+ else
1111
+ no -= 1
1112
+ end
1113
+ end
1114
+
1010
1115
  return no
1011
1116
  end
1012
1117
 
@@ -1021,19 +1126,7 @@ class Datet
1021
1126
  def self.month_str_to_no(str)
1022
1127
  str = str.to_s.downcase.strip
1023
1128
  return @@months_lcase[str] if @@months_lcase.key?(str)
1024
- raise "No month to return from that string: '#{str}'."
1025
- end
1026
-
1027
- def loc_wday
1028
- return _(self.time.strftime("%A"))
1029
- end
1030
-
1031
- def loc_wday_small
1032
- return _(self.time.strftime("%a"))
1033
- end
1034
-
1035
- def loc_month
1036
- return _(self.time.strftime("%B"))
1129
+ raise ArgumentError, "No month to return from that string: '#{str}'."
1037
1130
  end
1038
1131
 
1039
1132
  #This returns a code-string that can be used to recreate the Datet-object.
@@ -1044,19 +1137,23 @@ class Datet
1044
1137
  return "#{"%04d" % @t_year}#{"%02d" % @t_month}#{"%02d" % @t_day}#{"%02d" % @t_hour}#{"%02d" % @t_min}#{"%02d" % @t_sec}#{"%05d" % @t_usec}"
1045
1138
  end
1046
1139
 
1047
- #Returns the unix timestamp for this object.
1140
+ #Returns the unix timestamp for this object (uses 'Time' to calculate).
1048
1141
  #===Examples
1049
1142
  # datet.to_i #=> 487843200
1050
1143
  def to_i
1051
1144
  return self.time.to_i
1052
1145
  end
1053
1146
 
1147
+ #Returns the unix timestamp for this object as a float (uses 'Time' to calculate).
1148
+ #===Examples
1149
+ # Datet.new.to_f #=> 1342381158.0
1054
1150
  def to_f
1055
- return self.time_to_f
1151
+ return self.time.to_f
1056
1152
  end
1057
1153
 
1154
+ #Returns a string that describes the object.
1058
1155
  def to_s
1059
- return self.time.to_s
1156
+ return "#{"%04d" % @t_year}-#{"%02d" % @t_month}-#{"%02d" % @t_day} #{"%02d" % @t_hour}:#{"%02d" % @t_min}:#{"%02d" % @t_sec}"
1060
1157
  end
1061
1158
 
1062
1159
  #Returns arguments in an array.
@@ -1068,8 +1165,7 @@ class Datet
1068
1165
  #===Examples
1069
1166
  # datet.httpdate #=> "Mon, 17 Jun 1985 08:00:00 GMT"
1070
1167
  def httpdate
1071
- require "time"
1072
- return self.time.httpdate
1168
+ return "#{self.day_name[0, 3]}, #{@t_day} #{self.month_name[0, 3]} #{@t_year} #{"%02d" % @t_hour}:#{"%02d" % @t_min}:#{"%02d" % @t_sec} GMT"
1073
1169
  end
1074
1170
 
1075
1171
  #Returns various information about the offset as a hash.
@@ -176,6 +176,16 @@ describe "Datet" do
176
176
  tests.each do |test_str, right_res|
177
177
  res = Datet.day_str_to_no(test_str)
178
178
  raise "Expected result: '#{right_res}' but got: '#{res}'." if res != right_res
179
+
180
+ #Check that the ':mfirst' is working as well (monday first day of week).
181
+ res2 = Datet.day_str_to_no(test_str, :mfirst => true)
182
+ if res == 0
183
+ exp = 6
184
+ else
185
+ exp = res - 1
186
+ end
187
+
188
+ raise "Expected '#{exp}' but got: '#{res2}'." if res2 != exp
179
189
  end
180
190
  end
181
191
 
@@ -229,8 +239,8 @@ describe "Datet" do
229
239
  [Datet.new(2012, 7, 17), 1]
230
240
  ]
231
241
  tests.each do |data|
232
- day_in_week = data[0].day_in_week
233
- raise "Expected #{data[1]} but got #{day_in_week}" if day_in_week != data[1]
242
+ day_in_week = data[0].day_in_week(:mfirst => true)
243
+ raise "Expected '#{data[1]}' but got '#{day_in_week}'." if day_in_week != data[1]
234
244
 
235
245
  diw = data[0].time.strftime("%w").to_i
236
246
  if diw == 0
@@ -269,9 +279,62 @@ describe "Datet" do
269
279
  datet = Datet.new(1970, 1, 4)
270
280
  6.times do |i|
271
281
  day_str = datet.day_str
272
- exp = Datet.days_arr[i]
282
+ exp = Datet.days[i]
273
283
  raise "Expected '#{exp}' but got '#{day_str}' for day-no: '#{i}'." if day_str != exp
274
284
  datet.days + 1
275
285
  end
286
+
287
+ #Check date 'mfirst' works (monday first day of week).
288
+ days_str_sf = Datet.days
289
+ days_str_mf = Datet.days(:mfirst => true)
290
+
291
+ days_str_mf.each do |key, val|
292
+ if key == 6
293
+ use_key = 0
294
+ else
295
+ use_key = key + 1
296
+ end
297
+
298
+ res = days_str_sf[use_key]
299
+ raise "Expected '#{val}' but got: '#{res}' for key: '#{use_key}'." if res != val
300
+ end
301
+ end
302
+
303
+ it "should be able to calculate the day of the year" do
304
+ tests = [
305
+ [Datet.new(2005, 1, 1), 1],
306
+ [Datet.new(2005, 12, 31), 365],
307
+ [Datet.new(2005, 3, 1), 60],
308
+ [Datet.new(2008, 3, 1), 61],
309
+ [Datet.new(2005, 2, 27), 58],
310
+ [Datet.new(2008, 2, 27), 58]
311
+ ]
312
+
313
+ tests.each do |data|
314
+ res = data[0].day_of_year
315
+ raise "Expected '#{data[1]}' but got: '#{res}' for #{data[0]}." if res != data[1]
316
+ end
317
+ end
318
+
319
+ it "should return http-dates" do
320
+ tests = [
321
+ [Datet.new(1985, 6, 17, 8), "Mon, 17 Jun 1985 08:00:00 GMT"]
322
+ ]
323
+
324
+ tests.each do |data|
325
+ res = data[0].httpdate
326
+ raise "Expected: '#{data[1]}' but got: '#{res}'." if res != data[1]
327
+ end
328
+ end
329
+
330
+ it "should be able to do finds" do
331
+ #This is a monday.
332
+ datet = Datet.new(1970, 1, 4)
333
+
334
+ datet.find(:incr => :day, :wday => 4)
335
+ raise "Expected 'day_name' to be 'Thursday' but it wasnt: '#{datet.day_name}'." if datet.day_name != "Thursday"
336
+
337
+ datet.find(:incr => :month, :wday => 5)
338
+ raise "Expected dbstr to be '1970-05-08' but it wasnt: '#{datet.dbstr(:time => false)}'." if datet.dbstr(:time => false) != "1970-05-08"
276
339
  end
277
340
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: datet
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.6
5
+ version: 0.0.7
6
6
  platform: ruby
7
7
  authors:
8
8
  - Kasper Johansen
@@ -57,17 +57,6 @@ dependencies:
57
57
  type: :development
58
58
  prerelease: false
59
59
  version_requirements: *id004
60
- - !ruby/object:Gem::Dependency
61
- name: rcov
62
- requirement: &id005 !ruby/object:Gem::Requirement
63
- none: false
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
68
- type: :development
69
- prerelease: false
70
- version_requirements: *id005
71
60
  description: A framework for handeling date- and time-related stuff in Ruby.
72
61
  email: k@spernj.org
73
62
  executables: []
@@ -104,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
93
  requirements:
105
94
  - - ">="
106
95
  - !ruby/object:Gem::Version
107
- hash: 4324212231909308806
96
+ hash: 3008034930327995715
108
97
  segments:
109
98
  - 0
110
99
  version: "0"