Class: When::V::Calendar

Inherits:
Root show all
Defined in:
lib/when_exe/icalendar.rb

Overview

ひとつの ics 形式ファイルをまとめて保持する

BEGIN:VCALENADR...END:VCALENDAR のブロックに対応

Constant Summary collapse

Properties =
[['prodid', 'version'], [],
['method'], [], []]
Classes =
nil

Constants inherited from Root

Root::AwareProperties, Root::DefaultOptional, Root::DefaultUnique

Constants included from Namespace

Namespace::DC, Namespace::DCQ, Namespace::DCT, Namespace::FOAF, Namespace::OWL, Namespace::RDF, Namespace::RDFC, Namespace::RDFS, Namespace::RSS, Namespace::XSD

Instance Attribute Summary collapse

Attributes inherited from Root

#calscale, #property

Attributes inherited from BasicTypes::Object

#label

Attributes included from Parts::Resource

#keys, #locale, #namespace

Instance Method Summary collapse

Methods inherited from Root

#include?

Methods included from Parts::Resource

#[], #^, _instance, _setup_, _setup_info, base_uri, #each, #enum_for, #hierarchy, #include?, #included?, #iri, #leaf?, #m17n, #map, #parent, #registered?, root_dir

Methods included from Parts::Resource::Pool

#[], #[]=, #_setup_

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class When::Parts::Resource

Instance Attribute Details

#childObject

Returns the value of attribute child.



478
479
480
# File 'lib/when_exe/icalendar.rb', line 478

def child
  @child
end

Instance Method Details

#intersection(keys = {}) ⇒ When::V::Calendar Also known as: subset

When::V::Event の検索

Parameters:

  • keys (Hash) (defaults to: {})

    { key => value }

Returns:

  • (When::V::Calendar)

    key で指定する Property の値が value に一致する When::V::Event のみを持つ self の複製を作る (一致の判断は演算子 === による)



488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
# File 'lib/when_exe/icalendar.rb', line 488

def intersection(keys={})
  copy = self.dup
  copy.child = @child.select {|ev|
    if ev.kind_of?(Event)
      keys.each_pair do |key, value|
        case value
        when String ; break unless ev.property[key].object.index(value)
        when Regexp ; break unless (ev.property[key].object =~ value)
        end
      end
    else
      true
    end
  }
  return copy
end