rubyredrick-ri_cal 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. data/History.txt +19 -2
  2. data/Manifest.txt +6 -3
  3. data/README.txt +130 -44
  4. data/Rakefile +1 -1
  5. data/copyrights.txt +1 -2
  6. data/lib/ri_cal/component/alarm.rb +1 -2
  7. data/lib/ri_cal/component/calendar.rb +25 -9
  8. data/lib/ri_cal/component/event.rb +1 -2
  9. data/lib/ri_cal/component/freebusy.rb +1 -2
  10. data/lib/ri_cal/component/journal.rb +1 -2
  11. data/lib/ri_cal/component/t_z_info_timezone.rb +1 -2
  12. data/lib/ri_cal/component/timezone/daylight_period.rb +1 -2
  13. data/lib/ri_cal/component/timezone/standard_period.rb +1 -2
  14. data/lib/ri_cal/component/timezone/timezone_period.rb +1 -2
  15. data/lib/ri_cal/component/timezone.rb +5 -2
  16. data/lib/ri_cal/component.rb +22 -7
  17. data/lib/ri_cal/core_extensions/date/conversions.rb +8 -7
  18. data/lib/ri_cal/core_extensions/date_time.rb +4 -2
  19. data/lib/ri_cal/core_extensions/object/conversions.rb +1 -1
  20. data/lib/ri_cal/core_extensions/string/conversions.rb +37 -6
  21. data/lib/ri_cal/core_extensions/time/conversions.rb +11 -7
  22. data/lib/ri_cal/core_extensions/time/tzid_access.rb +37 -0
  23. data/lib/ri_cal/core_extensions/time.rb +3 -1
  24. data/lib/ri_cal/floating_timezone.rb +32 -0
  25. data/lib/ri_cal/invalid_property_value.rb +8 -0
  26. data/lib/ri_cal/invalid_timezone_identifer.rb +2 -2
  27. data/lib/ri_cal/occurrence_enumerator.rb +5 -3
  28. data/lib/ri_cal/parser.rb +8 -8
  29. data/lib/ri_cal/properties/alarm.rb +8 -8
  30. data/lib/ri_cal/properties/event.rb +60 -60
  31. data/lib/ri_cal/properties/freebusy.rb +16 -16
  32. data/lib/ri_cal/properties/journal.rb +58 -58
  33. data/lib/ri_cal/properties/timezone_period.rb +23 -23
  34. data/lib/ri_cal/properties/todo.rb +63 -64
  35. data/lib/ri_cal/property_value/array.rb +10 -2
  36. data/lib/ri_cal/property_value/cal_address.rb +1 -2
  37. data/lib/ri_cal/property_value/date.rb +15 -3
  38. data/lib/ri_cal/property_value/date_time/additive_methods.rb +34 -33
  39. data/lib/ri_cal/property_value/date_time/time_machine.rb +175 -174
  40. data/lib/ri_cal/property_value/date_time/timezone_support.rb +70 -52
  41. data/lib/ri_cal/property_value/date_time.rb +47 -77
  42. data/lib/ri_cal/property_value/duration.rb +6 -3
  43. data/lib/ri_cal/property_value/geo.rb +1 -2
  44. data/lib/ri_cal/property_value/integer.rb +1 -2
  45. data/lib/ri_cal/property_value/occurrence_list.rb +79 -26
  46. data/lib/ri_cal/property_value/period.rb +23 -3
  47. data/lib/ri_cal/property_value/recurrence_rule/enumeration_support_methods.rb +1 -2
  48. data/lib/ri_cal/property_value/recurrence_rule/enumerator.rb +1 -2
  49. data/lib/ri_cal/property_value/recurrence_rule/initialization_methods.rb +1 -2
  50. data/lib/ri_cal/property_value/recurrence_rule/negative_setpos_enumerator.rb +1 -2
  51. data/lib/ri_cal/property_value/recurrence_rule/numbered_span.rb +1 -2
  52. data/lib/ri_cal/property_value/recurrence_rule/occurence_incrementer.rb +1 -2
  53. data/lib/ri_cal/property_value/recurrence_rule/recurring_day.rb +1 -2
  54. data/lib/ri_cal/property_value/recurrence_rule/recurring_month_day.rb +1 -2
  55. data/lib/ri_cal/property_value/recurrence_rule/recurring_numbered_week.rb +1 -2
  56. data/lib/ri_cal/property_value/recurrence_rule/recurring_year_day.rb +1 -2
  57. data/lib/ri_cal/property_value/recurrence_rule/validations.rb +1 -2
  58. data/lib/ri_cal/property_value/recurrence_rule.rb +3 -4
  59. data/lib/ri_cal/property_value/text.rb +1 -2
  60. data/lib/ri_cal/property_value/uri.rb +1 -2
  61. data/lib/ri_cal/property_value/utc_offset.rb +1 -2
  62. data/lib/ri_cal/property_value.rb +42 -11
  63. data/lib/ri_cal/required_timezones.rb +1 -2
  64. data/lib/ri_cal.rb +1 -2
  65. data/ri_cal.gemspec +6 -4
  66. data/spec/ri_cal/component/alarm_spec.rb +1 -2
  67. data/spec/ri_cal/component/calendar_spec.rb +1 -2
  68. data/spec/ri_cal/component/event_spec.rb +168 -13
  69. data/spec/ri_cal/component/freebusy_spec.rb +1 -2
  70. data/spec/ri_cal/component/journal_spec.rb +1 -2
  71. data/spec/ri_cal/component/t_z_info_timezone_spec.rb +1 -2
  72. data/spec/ri_cal/component/timezone_spec.rb +1 -2
  73. data/spec/ri_cal/component/todo_spec.rb +4 -5
  74. data/spec/ri_cal/component_spec.rb +30 -18
  75. data/spec/ri_cal/core_extensions/string/conversions_spec.rb +78 -0
  76. data/spec/ri_cal/core_extensions/time/calculations_spec.rb +1 -2
  77. data/spec/ri_cal/core_extensions/time/week_day_predicates_spec.rb +1 -2
  78. data/spec/ri_cal/occurrence_enumerator_spec.rb +23 -2
  79. data/spec/ri_cal/parser_spec.rb +6 -7
  80. data/spec/ri_cal/property_value/date_spec.rb +1 -2
  81. data/spec/ri_cal/property_value/date_time_spec.rb +54 -119
  82. data/spec/ri_cal/property_value/duration_spec.rb +12 -2
  83. data/spec/ri_cal/property_value/occurrence_list_spec.rb +67 -0
  84. data/spec/ri_cal/property_value/period_spec.rb +1 -2
  85. data/spec/ri_cal/property_value/recurrence_rule/recurring_year_day_spec.rb +1 -2
  86. data/spec/ri_cal/property_value/recurrence_rule_spec.rb +1 -2
  87. data/spec/ri_cal/property_value/text_spec.rb +1 -2
  88. data/spec/ri_cal/property_value/utc_offset_spec.rb +1 -2
  89. data/spec/ri_cal/property_value_spec.rb +19 -8
  90. data/spec/ri_cal/required_timezones_spec.rb +1 -2
  91. data/spec/ri_cal_spec.rb +1 -2
  92. data/spec/spec_helper.rb +2 -7
  93. data/tasks/ri_cal.rake +20 -13
  94. data/tasks/spec.rake +1 -1
  95. metadata +8 -5
  96. data/lib/ri_cal/core_extensions/date_time/conversions.rb +0 -27
  97. data/lib/ri_cal/time_with_floating_timezone.rb +0 -59
@@ -1,7 +1,6 @@
1
1
  module RiCal
2
2
  module Properties #:nodoc:
3
- #- ©2009 Rick DeNatale
4
- #- All rights reserved. Refer to the file README.txt for the license
3
+ #- ©2009 Rick DeNatale, All rights reserved. Refer to the file README.txt for the license
5
4
  #
6
5
  # Properties::Todo provides property accessing methods for the Todo class
7
6
  # This source file is generated by the rical:gen_propmodules rake tasks, DO NOT EDIT
@@ -688,7 +687,7 @@ module RiCal
688
687
 
689
688
  # set the value of the ATTACH property to multiple values
690
689
  # one or more instances of Uri may be passed to this method
691
- def attachments=(*ruby_values)
690
+ def attachments=(ruby_values)
692
691
  @attach_property = ruby_values.map {|val| RiCal::PropertyValue::Uri.convert(self, val)}
693
692
  end
694
693
 
@@ -701,7 +700,7 @@ module RiCal
701
700
  # add one or more values to the ATTACH property
702
701
  # one or more instances of Uri may be passed to this method
703
702
  def add_attachments(*ruby_values)
704
- ruby_values.do {|val| self.attach_property << RiCal::PropertyValue::Uri.convert(self, val)}
703
+ ruby_values.each {|val| self.attach_property << RiCal::PropertyValue::Uri.convert(self, val)}
705
704
  end
706
705
 
707
706
  # add one value to the ATTACH property
@@ -713,7 +712,7 @@ module RiCal
713
712
  # remove one or more values from the ATTACH property
714
713
  # one or more instances of Uri may be passed to this method
715
714
  def remove_attachments(*ruby_values)
716
- ruby_values.do {|val| self.attach_property.delete(RiCal::PropertyValue::Uri.convert(self, val))}
715
+ ruby_values.each {|val| self.attach_property.delete(RiCal::PropertyValue::Uri.convert(self, val))}
717
716
  end
718
717
 
719
718
  # remove one value from the ATTACH property
@@ -725,7 +724,7 @@ module RiCal
725
724
  # return the value of the ATTACH property
726
725
  # which will be an array of instances of Uri
727
726
  def attach
728
- attach_property.map {|prop| prop ? prop.value : prop}
727
+ attach_property.map {|prop| prop ? prop.ruby_value : prop}
729
728
  end
730
729
 
731
730
  def attach_property_from_string(line) # :nodoc:
@@ -751,7 +750,7 @@ module RiCal
751
750
 
752
751
  # set the value of the ATTENDEE property to multiple values
753
752
  # one or more instances of CalAddress may be passed to this method
754
- def attendees=(*ruby_values)
753
+ def attendees=(ruby_values)
755
754
  @attendee_property = ruby_values.map {|val| RiCal::PropertyValue::CalAddress.convert(self, val)}
756
755
  end
757
756
 
@@ -764,7 +763,7 @@ module RiCal
764
763
  # add one or more values to the ATTENDEE property
765
764
  # one or more instances of CalAddress may be passed to this method
766
765
  def add_attendees(*ruby_values)
767
- ruby_values.do {|val| self.attendee_property << RiCal::PropertyValue::CalAddress.convert(self, val)}
766
+ ruby_values.each {|val| self.attendee_property << RiCal::PropertyValue::CalAddress.convert(self, val)}
768
767
  end
769
768
 
770
769
  # add one value to the ATTENDEE property
@@ -776,7 +775,7 @@ module RiCal
776
775
  # remove one or more values from the ATTENDEE property
777
776
  # one or more instances of CalAddress may be passed to this method
778
777
  def remove_attendees(*ruby_values)
779
- ruby_values.do {|val| self.attendee_property.delete(RiCal::PropertyValue::CalAddress.convert(self, val))}
778
+ ruby_values.each {|val| self.attendee_property.delete(RiCal::PropertyValue::CalAddress.convert(self, val))}
780
779
  end
781
780
 
782
781
  # remove one value from the ATTENDEE property
@@ -788,7 +787,7 @@ module RiCal
788
787
  # return the value of the ATTENDEE property
789
788
  # which will be an array of instances of CalAddress
790
789
  def attendee
791
- attendee_property.map {|prop| prop ? prop.value : prop}
790
+ attendee_property.map {|prop| prop ? prop.ruby_value : prop}
792
791
  end
793
792
 
794
793
  def attendee_property_from_string(line) # :nodoc:
@@ -814,7 +813,7 @@ module RiCal
814
813
 
815
814
  # set the value of the CATEGORIES property to multiple values
816
815
  # one or more instances of Array may be passed to this method
817
- def multiple_categories=(*ruby_values)
816
+ def multiple_categories=(ruby_values)
818
817
  @categories_property = ruby_values.map {|val| RiCal::PropertyValue::Array.convert(self, val)}
819
818
  end
820
819
 
@@ -827,7 +826,7 @@ module RiCal
827
826
  # add one or more values to the CATEGORIES property
828
827
  # one or more instances of Array may be passed to this method
829
828
  def add_multiple_categories(*ruby_values)
830
- ruby_values.do {|val| self.categories_property << RiCal::PropertyValue::Array.convert(self, val)}
829
+ ruby_values.each {|val| self.categories_property << RiCal::PropertyValue::Array.convert(self, val)}
831
830
  end
832
831
 
833
832
  # add one value to the CATEGORIES property
@@ -839,7 +838,7 @@ module RiCal
839
838
  # remove one or more values from the CATEGORIES property
840
839
  # one or more instances of Array may be passed to this method
841
840
  def remove_multiple_categories(*ruby_values)
842
- ruby_values.do {|val| self.categories_property.delete(RiCal::PropertyValue::Array.convert(self, val))}
841
+ ruby_values.each {|val| self.categories_property.delete(RiCal::PropertyValue::Array.convert(self, val))}
843
842
  end
844
843
 
845
844
  # remove one value from the CATEGORIES property
@@ -851,7 +850,7 @@ module RiCal
851
850
  # return the value of the CATEGORIES property
852
851
  # which will be an array of instances of Array
853
852
  def categories
854
- categories_property.map {|prop| prop ? prop.value : prop}
853
+ categories_property.map {|prop| prop ? prop.ruby_value : prop}
855
854
  end
856
855
 
857
856
  def categories_property_from_string(line) # :nodoc:
@@ -877,7 +876,7 @@ module RiCal
877
876
 
878
877
  # set the value of the COMMENT property to multiple values
879
878
  # one or more instances of String may be passed to this method
880
- def comments=(*ruby_values)
879
+ def comments=(ruby_values)
881
880
  @comment_property = ruby_values.map {|val| RiCal::PropertyValue::Text.convert(self, val)}
882
881
  end
883
882
 
@@ -890,7 +889,7 @@ module RiCal
890
889
  # add one or more values to the COMMENT property
891
890
  # one or more instances of String may be passed to this method
892
891
  def add_comments(*ruby_values)
893
- ruby_values.do {|val| self.comment_property << RiCal::PropertyValue::Text.convert(self, val)}
892
+ ruby_values.each {|val| self.comment_property << RiCal::PropertyValue::Text.convert(self, val)}
894
893
  end
895
894
 
896
895
  # add one value to the COMMENT property
@@ -902,7 +901,7 @@ module RiCal
902
901
  # remove one or more values from the COMMENT property
903
902
  # one or more instances of String may be passed to this method
904
903
  def remove_comments(*ruby_values)
905
- ruby_values.do {|val| self.comment_property.delete(RiCal::PropertyValue::Text.convert(self, val))}
904
+ ruby_values.each {|val| self.comment_property.delete(RiCal::PropertyValue::Text.convert(self, val))}
906
905
  end
907
906
 
908
907
  # remove one value from the COMMENT property
@@ -914,7 +913,7 @@ module RiCal
914
913
  # return the value of the COMMENT property
915
914
  # which will be an array of instances of String
916
915
  def comment
917
- comment_property.map {|prop| prop ? prop.value : prop}
916
+ comment_property.map {|prop| prop ? prop.ruby_value : prop}
918
917
  end
919
918
 
920
919
  def comment_property_from_string(line) # :nodoc:
@@ -940,7 +939,7 @@ module RiCal
940
939
 
941
940
  # set the value of the CONTACT property to multiple values
942
941
  # one or more instances of String may be passed to this method
943
- def contacts=(*ruby_values)
942
+ def contacts=(ruby_values)
944
943
  @contact_property = ruby_values.map {|val| RiCal::PropertyValue::Text.convert(self, val)}
945
944
  end
946
945
 
@@ -953,7 +952,7 @@ module RiCal
953
952
  # add one or more values to the CONTACT property
954
953
  # one or more instances of String may be passed to this method
955
954
  def add_contacts(*ruby_values)
956
- ruby_values.do {|val| self.contact_property << RiCal::PropertyValue::Text.convert(self, val)}
955
+ ruby_values.each {|val| self.contact_property << RiCal::PropertyValue::Text.convert(self, val)}
957
956
  end
958
957
 
959
958
  # add one value to the CONTACT property
@@ -965,7 +964,7 @@ module RiCal
965
964
  # remove one or more values from the CONTACT property
966
965
  # one or more instances of String may be passed to this method
967
966
  def remove_contacts(*ruby_values)
968
- ruby_values.do {|val| self.contact_property.delete(RiCal::PropertyValue::Text.convert(self, val))}
967
+ ruby_values.each {|val| self.contact_property.delete(RiCal::PropertyValue::Text.convert(self, val))}
969
968
  end
970
969
 
971
970
  # remove one value from the CONTACT property
@@ -977,7 +976,7 @@ module RiCal
977
976
  # return the value of the CONTACT property
978
977
  # which will be an array of instances of String
979
978
  def contact
980
- contact_property.map {|prop| prop ? prop.value : prop}
979
+ contact_property.map {|prop| prop ? prop.ruby_value : prop}
981
980
  end
982
981
 
983
982
  def contact_property_from_string(line) # :nodoc:
@@ -1003,44 +1002,44 @@ module RiCal
1003
1002
 
1004
1003
  # set the value of the EXDATE property to multiple values
1005
1004
  # one or more instances of OccurrenceList may be passed to this method
1006
- def exdates=(*ruby_values)
1007
- @exdate_property = ruby_values.map {|val| RiCal::PropertyValue::OccurrenceList.convert(self, val)}
1005
+ def exdates=(ruby_values)
1006
+ @exdate_property = ruby_values.map {|val| RiCal::PropertyValue::OccurrenceList.convert(self, *val)}
1008
1007
  end
1009
1008
 
1010
1009
  # set the value of the EXDATE property to a single value
1011
1010
  # one instance of OccurrenceList may be passed to this method
1012
- def exdate=(ruby_value)
1013
- @exdate_property = [RiCal::PropertyValue::OccurrenceList.convert(self, ruby_value)]
1011
+ def exdate=(*ruby_value)
1012
+ @exdate_property = [RiCal::PropertyValue::OccurrenceList.convert(self, *ruby_value)]
1014
1013
  end
1015
1014
 
1016
1015
  # add one or more values to the EXDATE property
1017
1016
  # one or more instances of OccurrenceList may be passed to this method
1018
1017
  def add_exdates(*ruby_values)
1019
- ruby_values.do {|val| self.exdate_property << RiCal::PropertyValue::OccurrenceList.convert(self, val)}
1018
+ ruby_values.each {|val| self.exdate_property << RiCal::PropertyValue::OccurrenceList.convert(self, *val)}
1020
1019
  end
1021
1020
 
1022
1021
  # add one value to the EXDATE property
1023
1022
  # one instances of OccurrenceList may be passed to this method
1024
- def add_exdate(ruby_value)
1025
- self.exdate_property << RiCal::PropertyValue::OccurrenceList.convert(self, ruby_value)
1023
+ def add_exdate(*ruby_value)
1024
+ self.exdate_property << RiCal::PropertyValue::OccurrenceList.convert(self, *ruby_value)
1026
1025
  end
1027
1026
 
1028
1027
  # remove one or more values from the EXDATE property
1029
1028
  # one or more instances of OccurrenceList may be passed to this method
1030
1029
  def remove_exdates(*ruby_values)
1031
- ruby_values.do {|val| self.exdate_property.delete(RiCal::PropertyValue::OccurrenceList.convert(self, val))}
1030
+ ruby_values.each {|val| self.exdate_property.delete(RiCal::PropertyValue::OccurrenceList.convert(self, *val))}
1032
1031
  end
1033
1032
 
1034
1033
  # remove one value from the EXDATE property
1035
1034
  # one instances of OccurrenceList may be passed to this method
1036
- def remove_exdate(ruby_value)
1037
- self.exdate_property.delete(RiCal::PropertyValue::OccurrenceList.convert(self, ruby_value))
1035
+ def remove_exdate(*ruby_value)
1036
+ self.exdate_property.delete(RiCal::PropertyValue::OccurrenceList.convert(self, *ruby_value))
1038
1037
  end
1039
1038
 
1040
1039
  # return the value of the EXDATE property
1041
1040
  # which will be an array of instances of OccurrenceList
1042
1041
  def exdate
1043
- exdate_property.map {|prop| prop ? prop.value : prop}
1042
+ exdate_property.map {|prop| prop ? prop.ruby_value : prop}
1044
1043
  end
1045
1044
 
1046
1045
  def exdate_property_from_string(line) # :nodoc:
@@ -1066,7 +1065,7 @@ module RiCal
1066
1065
 
1067
1066
  # set the value of the EXRULE property to multiple values
1068
1067
  # one or more instances of RecurrenceRule may be passed to this method
1069
- def exrules=(*ruby_values)
1068
+ def exrules=(ruby_values)
1070
1069
  @exrule_property = ruby_values.map {|val| RiCal::PropertyValue::RecurrenceRule.convert(self, val)}
1071
1070
  end
1072
1071
 
@@ -1079,7 +1078,7 @@ module RiCal
1079
1078
  # add one or more values to the EXRULE property
1080
1079
  # one or more instances of RecurrenceRule may be passed to this method
1081
1080
  def add_exrules(*ruby_values)
1082
- ruby_values.do {|val| self.exrule_property << RiCal::PropertyValue::RecurrenceRule.convert(self, val)}
1081
+ ruby_values.each {|val| self.exrule_property << RiCal::PropertyValue::RecurrenceRule.convert(self, val)}
1083
1082
  end
1084
1083
 
1085
1084
  # add one value to the EXRULE property
@@ -1091,7 +1090,7 @@ module RiCal
1091
1090
  # remove one or more values from the EXRULE property
1092
1091
  # one or more instances of RecurrenceRule may be passed to this method
1093
1092
  def remove_exrules(*ruby_values)
1094
- ruby_values.do {|val| self.exrule_property.delete(RiCal::PropertyValue::RecurrenceRule.convert(self, val))}
1093
+ ruby_values.each {|val| self.exrule_property.delete(RiCal::PropertyValue::RecurrenceRule.convert(self, val))}
1095
1094
  end
1096
1095
 
1097
1096
  # remove one value from the EXRULE property
@@ -1103,7 +1102,7 @@ module RiCal
1103
1102
  # return the value of the EXRULE property
1104
1103
  # which will be an array of instances of RecurrenceRule
1105
1104
  def exrule
1106
- exrule_property.map {|prop| prop ? prop.value : prop}
1105
+ exrule_property.map {|prop| prop ? prop.ruby_value : prop}
1107
1106
  end
1108
1107
 
1109
1108
  def exrule_property_from_string(line) # :nodoc:
@@ -1126,7 +1125,7 @@ module RiCal
1126
1125
 
1127
1126
  # set the value of the REQUEST-STATUS property to multiple values
1128
1127
  # one or more instances of String may be passed to this method
1129
- def request_statuses=(*ruby_values)
1128
+ def request_statuses=(ruby_values)
1130
1129
  @request_status_property = ruby_values.map {|val| RiCal::PropertyValue::Text.convert(self, val)}
1131
1130
  end
1132
1131
 
@@ -1139,7 +1138,7 @@ module RiCal
1139
1138
  # add one or more values to the REQUEST-STATUS property
1140
1139
  # one or more instances of String may be passed to this method
1141
1140
  def add_request_statuses(*ruby_values)
1142
- ruby_values.do {|val| self.request_status_property << RiCal::PropertyValue::Text.convert(self, val)}
1141
+ ruby_values.each {|val| self.request_status_property << RiCal::PropertyValue::Text.convert(self, val)}
1143
1142
  end
1144
1143
 
1145
1144
  # add one value to the REQUEST-STATUS property
@@ -1151,7 +1150,7 @@ module RiCal
1151
1150
  # remove one or more values from the REQUEST-STATUS property
1152
1151
  # one or more instances of String may be passed to this method
1153
1152
  def remove_request_statuses(*ruby_values)
1154
- ruby_values.do {|val| self.request_status_property.delete(RiCal::PropertyValue::Text.convert(self, val))}
1153
+ ruby_values.each {|val| self.request_status_property.delete(RiCal::PropertyValue::Text.convert(self, val))}
1155
1154
  end
1156
1155
 
1157
1156
  # remove one value from the REQUEST-STATUS property
@@ -1163,7 +1162,7 @@ module RiCal
1163
1162
  # return the value of the REQUEST-STATUS property
1164
1163
  # which will be an array of instances of String
1165
1164
  def request_status
1166
- request_status_property.map {|prop| prop ? prop.value : prop}
1165
+ request_status_property.map {|prop| prop ? prop.ruby_value : prop}
1167
1166
  end
1168
1167
 
1169
1168
  def request_status_property_from_string(line) # :nodoc:
@@ -1189,7 +1188,7 @@ module RiCal
1189
1188
 
1190
1189
  # set the value of the RELATED-TO property to multiple values
1191
1190
  # one or more instances of String may be passed to this method
1192
- def multiple_related_to=(*ruby_values)
1191
+ def multiple_related_to=(ruby_values)
1193
1192
  @related_to_property = ruby_values.map {|val| RiCal::PropertyValue::Text.convert(self, val)}
1194
1193
  end
1195
1194
 
@@ -1202,7 +1201,7 @@ module RiCal
1202
1201
  # add one or more values to the RELATED-TO property
1203
1202
  # one or more instances of String may be passed to this method
1204
1203
  def add_multiple_related_to(*ruby_values)
1205
- ruby_values.do {|val| self.related_to_property << RiCal::PropertyValue::Text.convert(self, val)}
1204
+ ruby_values.each {|val| self.related_to_property << RiCal::PropertyValue::Text.convert(self, val)}
1206
1205
  end
1207
1206
 
1208
1207
  # add one value to the RELATED-TO property
@@ -1214,7 +1213,7 @@ module RiCal
1214
1213
  # remove one or more values from the RELATED-TO property
1215
1214
  # one or more instances of String may be passed to this method
1216
1215
  def remove_multiple_related_to(*ruby_values)
1217
- ruby_values.do {|val| self.related_to_property.delete(RiCal::PropertyValue::Text.convert(self, val))}
1216
+ ruby_values.each {|val| self.related_to_property.delete(RiCal::PropertyValue::Text.convert(self, val))}
1218
1217
  end
1219
1218
 
1220
1219
  # remove one value from the RELATED-TO property
@@ -1226,7 +1225,7 @@ module RiCal
1226
1225
  # return the value of the RELATED-TO property
1227
1226
  # which will be an array of instances of String
1228
1227
  def related_to
1229
- related_to_property.map {|prop| prop ? prop.value : prop}
1228
+ related_to_property.map {|prop| prop ? prop.ruby_value : prop}
1230
1229
  end
1231
1230
 
1232
1231
  def related_to_property_from_string(line) # :nodoc:
@@ -1252,7 +1251,7 @@ module RiCal
1252
1251
 
1253
1252
  # set the value of the RESOURCES property to multiple values
1254
1253
  # one or more instances of Array may be passed to this method
1255
- def multiple_resources=(*ruby_values)
1254
+ def multiple_resources=(ruby_values)
1256
1255
  @resources_property = ruby_values.map {|val| RiCal::PropertyValue::Array.convert(self, val)}
1257
1256
  end
1258
1257
 
@@ -1265,7 +1264,7 @@ module RiCal
1265
1264
  # add one or more values to the RESOURCES property
1266
1265
  # one or more instances of Array may be passed to this method
1267
1266
  def add_multiple_resources(*ruby_values)
1268
- ruby_values.do {|val| self.resources_property << RiCal::PropertyValue::Array.convert(self, val)}
1267
+ ruby_values.each {|val| self.resources_property << RiCal::PropertyValue::Array.convert(self, val)}
1269
1268
  end
1270
1269
 
1271
1270
  # add one value to the RESOURCES property
@@ -1277,7 +1276,7 @@ module RiCal
1277
1276
  # remove one or more values from the RESOURCES property
1278
1277
  # one or more instances of Array may be passed to this method
1279
1278
  def remove_multiple_resources(*ruby_values)
1280
- ruby_values.do {|val| self.resources_property.delete(RiCal::PropertyValue::Array.convert(self, val))}
1279
+ ruby_values.each {|val| self.resources_property.delete(RiCal::PropertyValue::Array.convert(self, val))}
1281
1280
  end
1282
1281
 
1283
1282
  # remove one value from the RESOURCES property
@@ -1289,7 +1288,7 @@ module RiCal
1289
1288
  # return the value of the RESOURCES property
1290
1289
  # which will be an array of instances of Array
1291
1290
  def resources
1292
- resources_property.map {|prop| prop ? prop.value : prop}
1291
+ resources_property.map {|prop| prop ? prop.ruby_value : prop}
1293
1292
  end
1294
1293
 
1295
1294
  def resources_property_from_string(line) # :nodoc:
@@ -1315,44 +1314,44 @@ module RiCal
1315
1314
 
1316
1315
  # set the value of the RDATE property to multiple values
1317
1316
  # one or more instances of OccurrenceList may be passed to this method
1318
- def rdates=(*ruby_values)
1319
- @rdate_property = ruby_values.map {|val| RiCal::PropertyValue::OccurrenceList.convert(self, val)}
1317
+ def rdates=(ruby_values)
1318
+ @rdate_property = ruby_values.map {|val| RiCal::PropertyValue::OccurrenceList.convert(self, *val)}
1320
1319
  end
1321
1320
 
1322
1321
  # set the value of the RDATE property to a single value
1323
1322
  # one instance of OccurrenceList may be passed to this method
1324
- def rdate=(ruby_value)
1325
- @rdate_property = [RiCal::PropertyValue::OccurrenceList.convert(self, ruby_value)]
1323
+ def rdate=(*ruby_value)
1324
+ @rdate_property = [RiCal::PropertyValue::OccurrenceList.convert(self, *ruby_value)]
1326
1325
  end
1327
1326
 
1328
1327
  # add one or more values to the RDATE property
1329
1328
  # one or more instances of OccurrenceList may be passed to this method
1330
1329
  def add_rdates(*ruby_values)
1331
- ruby_values.do {|val| self.rdate_property << RiCal::PropertyValue::OccurrenceList.convert(self, val)}
1330
+ ruby_values.each {|val| self.rdate_property << RiCal::PropertyValue::OccurrenceList.convert(self, *val)}
1332
1331
  end
1333
1332
 
1334
1333
  # add one value to the RDATE property
1335
1334
  # one instances of OccurrenceList may be passed to this method
1336
- def add_rdate(ruby_value)
1337
- self.rdate_property << RiCal::PropertyValue::OccurrenceList.convert(self, ruby_value)
1335
+ def add_rdate(*ruby_value)
1336
+ self.rdate_property << RiCal::PropertyValue::OccurrenceList.convert(self, *ruby_value)
1338
1337
  end
1339
1338
 
1340
1339
  # remove one or more values from the RDATE property
1341
1340
  # one or more instances of OccurrenceList may be passed to this method
1342
1341
  def remove_rdates(*ruby_values)
1343
- ruby_values.do {|val| self.rdate_property.delete(RiCal::PropertyValue::OccurrenceList.convert(self, val))}
1342
+ ruby_values.each {|val| self.rdate_property.delete(RiCal::PropertyValue::OccurrenceList.convert(self, *val))}
1344
1343
  end
1345
1344
 
1346
1345
  # remove one value from the RDATE property
1347
1346
  # one instances of OccurrenceList may be passed to this method
1348
- def remove_rdate(ruby_value)
1349
- self.rdate_property.delete(RiCal::PropertyValue::OccurrenceList.convert(self, ruby_value))
1347
+ def remove_rdate(*ruby_value)
1348
+ self.rdate_property.delete(RiCal::PropertyValue::OccurrenceList.convert(self, *ruby_value))
1350
1349
  end
1351
1350
 
1352
1351
  # return the value of the RDATE property
1353
1352
  # which will be an array of instances of OccurrenceList
1354
1353
  def rdate
1355
- rdate_property.map {|prop| prop ? prop.value : prop}
1354
+ rdate_property.map {|prop| prop ? prop.ruby_value : prop}
1356
1355
  end
1357
1356
 
1358
1357
  def rdate_property_from_string(line) # :nodoc:
@@ -1378,7 +1377,7 @@ module RiCal
1378
1377
 
1379
1378
  # set the value of the RRULE property to multiple values
1380
1379
  # one or more instances of RecurrenceRule may be passed to this method
1381
- def rrules=(*ruby_values)
1380
+ def rrules=(ruby_values)
1382
1381
  @rrule_property = ruby_values.map {|val| RiCal::PropertyValue::RecurrenceRule.convert(self, val)}
1383
1382
  end
1384
1383
 
@@ -1391,7 +1390,7 @@ module RiCal
1391
1390
  # add one or more values to the RRULE property
1392
1391
  # one or more instances of RecurrenceRule may be passed to this method
1393
1392
  def add_rrules(*ruby_values)
1394
- ruby_values.do {|val| self.rrule_property << RiCal::PropertyValue::RecurrenceRule.convert(self, val)}
1393
+ ruby_values.each {|val| self.rrule_property << RiCal::PropertyValue::RecurrenceRule.convert(self, val)}
1395
1394
  end
1396
1395
 
1397
1396
  # add one value to the RRULE property
@@ -1403,7 +1402,7 @@ module RiCal
1403
1402
  # remove one or more values from the RRULE property
1404
1403
  # one or more instances of RecurrenceRule may be passed to this method
1405
1404
  def remove_rrules(*ruby_values)
1406
- ruby_values.do {|val| self.rrule_property.delete(RiCal::PropertyValue::RecurrenceRule.convert(self, val))}
1405
+ ruby_values.each {|val| self.rrule_property.delete(RiCal::PropertyValue::RecurrenceRule.convert(self, val))}
1407
1406
  end
1408
1407
 
1409
1408
  # remove one value from the RRULE property
@@ -1415,7 +1414,7 @@ module RiCal
1415
1414
  # return the value of the RRULE property
1416
1415
  # which will be an array of instances of RecurrenceRule
1417
1416
  def rrule
1418
- rrule_property.map {|prop| prop ? prop.value : prop}
1417
+ rrule_property.map {|prop| prop ? prop.ruby_value : prop}
1419
1418
  end
1420
1419
 
1421
1420
  def rrule_property_from_string(line) # :nodoc:
@@ -1,7 +1,6 @@
1
1
  module RiCal
2
2
  class PropertyValue
3
- #- ©2009 Rick DeNatale
4
- #- All rights reserved. Refer to the file README.txt for the license
3
+ #- ©2009 Rick DeNatale, All rights reserved. Refer to the file README.txt for the license
5
4
  #
6
5
  class Array < PropertyValue # :nodoc:
7
6
 
@@ -13,6 +12,15 @@ module RiCal
13
12
  @value = val
14
13
  end
15
14
  end
15
+
16
+ def value
17
+ @value.join(",")
18
+ end
19
+
20
+ def self.convert(timezone_finder, ruby_object) # :nodoc:
21
+ self.new(timezone_finder, :value => ruby_object)
22
+ end
23
+
16
24
  end
17
25
  end
18
26
 
@@ -1,7 +1,6 @@
1
1
  module RiCal
2
2
  class PropertyValue
3
- #- ©2009 Rick DeNatale
4
- #- All rights reserved. Refer to the file README.txt for the license
3
+ #- ©2009 Rick DeNatale, All rights reserved. Refer to the file README.txt for the license
5
4
  #
6
5
  # RiCal::PropertyValue::CalAddress represents an icalendar CalAddress property value
7
6
  # which is defined in
@@ -1,13 +1,17 @@
1
1
  require 'date'
2
2
  module RiCal
3
3
  class PropertyValue
4
- #- ©2009 Rick DeNatale
5
- #- All rights reserved. Refer to the file README.txt for the license
4
+ #- ©2009 Rick DeNatale, All rights reserved. Refer to the file README.txt for the license
6
5
  #
7
6
  # RiCal::PropertyValue::CalAddress represents an icalendar Date property value
8
7
  # which is defined in
9
8
  # RFC 2445 section 4.3.4 p 34
10
9
  class Date < PropertyValue
10
+
11
+ def self.valid_string?(string) #:nodoc:
12
+ string =~ /^\d{8}$/
13
+ end
14
+
11
15
  # Returns the value of the reciever as an RFC 2445 iCalendar string
12
16
  def value
13
17
  if @date_time_value
@@ -36,6 +40,14 @@ module RiCal
36
40
  end
37
41
  end
38
42
 
43
+ # Nop to allow occurrence list to try to set it
44
+ def tzid=(val)#:nodoc:
45
+ end
46
+
47
+ def tzid #:nodoc:
48
+ nil
49
+ end
50
+
39
51
  def visible_params #:nodoc:
40
52
  {"VALUE" => "DATE"}.merge(params)
41
53
  end
@@ -68,7 +80,7 @@ module RiCal
68
80
  end
69
81
 
70
82
  # Return this date property
71
- def to_ri_cal_date_value
83
+ def to_ri_cal_date_value(timezone_finder = nil)
72
84
  self
73
85
  end
74
86
 
@@ -1,42 +1,43 @@
1
1
  module RiCal
2
2
  class PropertyValue
3
- #- ©2009 Rick DeNatale
4
- #- All rights reserved. Refer to the file README.txt for the license
5
- #
6
- # Methods for DateTime which support adding or subtracting another DateTime or Duration
7
- module AdditiveMethods
8
- # if end_time is nil => nil
9
- # otherwise convert end_time to a DateTime and compute the difference
10
- def duration_until(end_time) # :nodoc:
11
- end_time && RiCal::PropertyValue::Duration.from_datetimes(timezone_finder, to_datetime, end_time.to_datetime)
12
- end
3
+ class DateTime
4
+ #- ©2009 Rick DeNatale, All rights reserved. Refer to the file README.txt for the license
5
+ #
6
+ # Methods for DateTime which support adding or subtracting another DateTime or Duration
7
+ module AdditiveMethods
8
+ # if end_time is nil => nil
9
+ # otherwise convert end_time to a DateTime and compute the difference
10
+ def duration_until(end_time) # :nodoc:
11
+ end_time && RiCal::PropertyValue::Duration.from_datetimes(timezone_finder, to_datetime, end_time.to_datetime)
12
+ end
13
13
 
14
- # Double-dispatch method for subtraction.
15
- def subtract_from_date_time_value(dtvalue) #:nodoc:
16
- RiCal::PropertyValue::Duration.from_datetimes(timezone_finder, to_datetime,dtvalue.to_datetime)
17
- end
14
+ # Double-dispatch method for subtraction.
15
+ def subtract_from_date_time_value(dtvalue) #:nodoc:
16
+ RiCal::PropertyValue::Duration.from_datetimes(timezone_finder, to_datetime,dtvalue.to_datetime)
17
+ end
18
18
 
19
- # Double-dispatch method for addition.
20
- def add_to_date_time_value(date_time_value) #:nodoc:
21
- raise ArgumentError.new("Cannot add #{date_time_value} to #{self}")
22
- end
19
+ # Double-dispatch method for addition.
20
+ def add_to_date_time_value(date_time_value) #:nodoc:
21
+ raise ArgumentError.new("Cannot add #{date_time_value} to #{self}")
22
+ end
23
23
 
24
- # Return the difference between the receiver and other
25
- #
26
- # The parameter other should be either a RiCal::PropertyValue::Duration or a RiCal::PropertyValue::DateTime
27
- #
28
- # If other is a Duration, the result will be a DateTime, if it is a DateTime the result will be a Duration
29
- def -(other)
30
- other.subtract_from_date_time_value(self)
31
- end
24
+ # Return the difference between the receiver and other
25
+ #
26
+ # The parameter other should be either a RiCal::PropertyValue::Duration or a RiCal::PropertyValue::DateTime
27
+ #
28
+ # If other is a Duration, the result will be a DateTime, if it is a DateTime the result will be a Duration
29
+ def -(other)
30
+ other.subtract_from_date_time_value(self)
31
+ end
32
32
 
33
- # Return the sum of the receiver and duration
34
- #
35
- # The parameter other duration should be a RiCal::PropertyValue::Duration
36
- #
37
- # The result will be an RiCal::PropertyValue::DateTime
38
- def +(duration)
39
- duration.add_to_date_time_value(self)
33
+ # Return the sum of the receiver and duration
34
+ #
35
+ # The parameter other duration should be a RiCal::PropertyValue::Duration
36
+ #
37
+ # The result will be an RiCal::PropertyValue::DateTime
38
+ def +(duration)
39
+ duration.add_to_date_time_value(self)
40
+ end
40
41
  end
41
42
  end
42
43
  end