Class: Icalendar2::Property::Base
- Inherits:
-
Object
- Object
- Icalendar2::Property::Base
- Defined in:
- lib/icalendar2/property/base.rb
Direct Known Subclasses
CalendarProperty::Calscale, CalendarProperty::Method, CalendarProperty::Prodid, CalendarProperty::Version, Attach, Attendee, Categories, Comment, Contact, Description, Dtend, Dtstamp, Dtstart, Exdate, Geo, Klass, LastMod, Location, Organizer, Priority, Rdate, RelatedTo, Resources, Rrule, Rstatus, Sequence, Summary, Uid
Constant Summary collapse
- MAX_LINE_LENGTH =
75
Class Attribute Summary collapse
-
.value_factories ⇒ Object
readonly
Returns the value of attribute value_factories.
-
.value_types ⇒ Object
readonly
Returns the value of attribute value_types.
Instance Attribute Summary collapse
-
#parameters ⇒ Object
readonly
Returns the value of attribute parameters.
-
#value ⇒ Object
readonly
Returns the value of attribute value.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(value, parameters = {}) ⇒ Base
constructor
A new instance of Base.
- #name ⇒ Object
- #to_ical ⇒ Object
- #valid? ⇒ Boolean
Constructor Details
#initialize(value, parameters = {}) ⇒ Base
Returns a new instance of Base.
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/icalendar2/property/base.rb', line 26 def initialize(value, parameters = {}) @value = if list? value_list = value.respond_to?(:gsub) ? split_list(value) : value value_list.map { |v| value_object(v) } else value_object(value) end if @value.nil? raise "Invalid value for #{self.class}: '#{value}'. Must be one of these types: #{self.class.value_types}" end @parameters = parameters || {} validate end |
Class Attribute Details
.value_factories ⇒ Object (readonly)
Returns the value of attribute value_factories.
9 10 11 |
# File 'lib/icalendar2/property/base.rb', line 9 def value_factories @value_factories end |
.value_types ⇒ Object (readonly)
Returns the value of attribute value_types.
8 9 10 |
# File 'lib/icalendar2/property/base.rb', line 8 def value_types @value_types end |
Instance Attribute Details
#parameters ⇒ Object (readonly)
Returns the value of attribute parameters.
6 7 8 |
# File 'lib/icalendar2/property/base.rb', line 6 def parameters @parameters end |
#value ⇒ Object (readonly)
Returns the value of attribute value.
6 7 8 |
# File 'lib/icalendar2/property/base.rb', line 6 def value @value end |
Class Method Details
.name(str) ⇒ Object
22 23 24 |
# File 'lib/icalendar2/property/base.rb', line 22 def self.name(str) define_method(:name) { str } end |
.value(options = {}) ⇒ Object
11 12 13 14 15 16 17 18 19 20 |
# File 'lib/icalendar2/property/base.rb', line 11 def self.value( = {}) if ![:types].respond_to?(:map) raise ":types option must be enumberable, was #{[:types]}" end @value_types = [:types] @value_factories = [:types].map { |t| Value.get_factory(t) } define_method(:list?) do [:list] end end |
Instance Method Details
#name ⇒ Object
40 41 42 |
# File 'lib/icalendar2/property/base.rb', line 40 def name raise "Must define name attribute in Property sublcass #{self.class}." end |
#to_ical ⇒ Object
48 49 50 51 52 53 |
# File 'lib/icalendar2/property/base.rb', line 48 def to_ical parameters_str = @parameters.map { |k, v| "#{k}=#{v}" }.join(";") parameters_str = ";#{parameters_str}" if parameters_str != "" str = fold("#{name}#{parameters_str}:#{value}") str << Tokens::CRLF end |
#valid? ⇒ Boolean
44 45 46 |
# File 'lib/icalendar2/property/base.rb', line 44 def valid? @valid end |