Class RSS::Element
In: rss/rss.rb
Parent: Object

Methods

Included Modules

Utils

Constants

INDENT = " "
MUST_CALL_VALIDATORS = {}
MODELS = []
GET_ATTRIBUTES = []
HAVE_CHILDREN_ELEMENTS = []
TO_ELEMENT_METHODS = []
NEED_INITIALIZE_VARIABLES = []
PLURAL_FORMS = {}

Attributes

do_validate  [RW] 

Public Class methods

[Source]

# File rss/rss.rb, line 431
      def get_attributes
        GET_ATTRIBUTES
      end

[Source]

# File rss/rss.rb, line 434
      def have_children_elements
        HAVE_CHILDREN_ELEMENTS
      end

[Source]

# File rss/rss.rb, line 448
      def inherited(klass)
        klass.const_set("MUST_CALL_VALIDATORS", {})
        klass.const_set("MODELS", [])
        klass.const_set("GET_ATTRIBUTES", [])
        klass.const_set("HAVE_CHILDREN_ELEMENTS", [])
        klass.const_set("TO_ELEMENT_METHODS", [])
        klass.const_set("NEED_INITIALIZE_VARIABLES", [])
        klass.const_set("PLURAL_FORMS", {})

        klass.module_eval("public\n\n@tag_name = name.split(/::/).last\n@tag_name[0,1] = @tag_name[0,1].downcase\n@have_content = false\n\ndef self.must_call_validators\nsuper.merge(MUST_CALL_VALIDATORS)\nend\ndef self.models\nMODELS + super\nend\ndef self.get_attributes\nGET_ATTRIBUTES + super\nend\ndef self.have_children_elements\nHAVE_CHILDREN_ELEMENTS + super\nend\ndef self.to_element_methods\nTO_ELEMENT_METHODS + super\nend\ndef self.need_initialize_variables\nNEED_INITIALIZE_VARIABLES + super\nend\ndef self.plural_forms\nsuper.merge(PLURAL_FORMS)\nend\n\n\ndef self.install_must_call_validator(prefix, uri)\nMUST_CALL_VALIDATORS[uri] = prefix\nend\n\ndef self.install_model(tag, uri, occurs=nil, getter=nil)\ngetter ||= tag\nif m = MODELS.find {|t, u, o, g| t == tag and u == uri}\nm[2] = occurs\nelse\nMODELS << [tag, uri, occurs, getter]\nend\nend\n\ndef self.install_get_attribute(name, uri, required=true,\ntype=nil, disp_name=nil,\nelement_name=nil)\ndisp_name ||= name\nelement_name ||= name\ndef_corresponded_attr_writer name, type, disp_name\nconvert_attr_reader name\nif type == :boolean and /^is/ =~ name\nalias_method \"\\\#{$POSTMATCH}?\", name\nend\nGET_ATTRIBUTES << [name, uri, required, element_name]\nadd_need_initialize_variable(disp_name)\nend\n\ndef self.def_corresponded_attr_writer(name, type=nil, disp_name=name)\ncase type\nwhen :integer\ninteger_writer name, disp_name\nwhen :positive_integer\npositive_integer_writer name, disp_name\nwhen :boolean\nboolean_writer name, disp_name\nwhen :w3cdtf, :rfc822, :rfc2822\ndate_writer name, type, disp_name\nelse\nattr_writer name\nend\nend\n\ndef self.content_setup(type=nil)\ndef_corresponded_attr_writer \"content\", type\nconvert_attr_reader :content\n@have_content = true\nend\n\ndef self.have_content?\n@have_content\nend\n\ndef self.add_have_children_element(variable_name, plural_name)\nHAVE_CHILDREN_ELEMENTS << [variable_name, plural_name]\nend\n\ndef self.add_to_element_method(method_name)\nTO_ELEMENT_METHODS << method_name\nend\n\ndef self.add_need_initialize_variable(variable_name)\nNEED_INITIALIZE_VARIABLES << variable_name\nend\n\ndef self.add_plural_form(singular, plural)\nPLURAL_FORMS[singular] = plural\nend\n\n")
      end

[Source]

# File rss/rss.rb, line 567
      def install_ns(prefix, uri)
        if self::NSPOOL.has_key?(prefix)
          raise OverlappedPrefixError.new(prefix)
        end
        self::NSPOOL[prefix] = uri
      end

[Source]

# File rss/rss.rb, line 428
      def models
        MODELS
      end

[Source]

# File rss/rss.rb, line 425
      def must_call_validators
        MUST_CALL_VALIDATORS
      end

[Source]

# File rss/rss.rb, line 440
      def need_initialize_variables
        NEED_INITIALIZE_VARIABLES
      end

[Source]

# File rss/rss.rb, line 581
    def initialize(do_validate=true, attrs={})
      @converter = nil
      @do_validate = do_validate
      initialize_variables(attrs)
    end

[Source]

# File rss/rss.rb, line 443
      def plural_forms
        PLURAL_FORMS
      end

[Source]

# File rss/rss.rb, line 559
      def required_prefix
        nil
      end

[Source]

# File rss/rss.rb, line 563
      def required_uri
        ""
      end

[Source]

# File rss/rss.rb, line 574
      def tag_name
        @tag_name
      end

[Source]

# File rss/rss.rb, line 437
      def to_element_methods
        TO_ELEMENT_METHODS
      end

Public Instance methods

[Source]

# File rss/rss.rb, line 606
    def convert(value)
      if @converter
        @converter.convert(value)
      else
        value
      end
    end

[Source]

# File rss/rss.rb, line 595
    def converter=(converter)
      @converter = converter
      targets = children.dup
      self.class.have_children_elements.each do |variable_name, plural_name|
        targets.concat(__send__(plural_name))
      end
      targets.each do |target|
        target.converter = converter unless target.nil?
      end
    end

[Source]

# File rss/rss.rb, line 591
    def full_name
      tag_name
    end

[Source]

# File rss/rss.rb, line 624
    def setup_maker(maker)
      target = maker_target(maker)
      unless target.nil?
        setup_maker_attributes(target)
        setup_maker_element(target)
        setup_maker_elements(target)
      end
    end

[Source]

# File rss/rss.rb, line 587
    def tag_name
      self.class.tag_name
    end

[Source]

# File rss/rss.rb, line 633
    def to_s(need_convert=true, indent='')
      if self.class.have_content?
        return "" unless @content
        rv = tag(indent) do |next_indent|
          h(@content)
        end
      else
        rv = tag(indent) do |next_indent|
          self.class.to_element_methods.collect do |method_name|
            __send__(method_name, false, next_indent)
          end
        end
      end
      rv = convert(rv) if need_convert
      rv
    end

[Source]

# File rss/rss.rb, line 614
    def validate(ignore_unknown_element=true)
      validate_attribute
      __validate(ignore_unknown_element)
    end

[Source]

# File rss/rss.rb, line 619
    def validate_for_stream(tags, ignore_unknown_element=true)
      validate_attribute
      __validate(ignore_unknown_element, tags, false)
    end

[Validate]

ruby-doc.org is a community service provided by James Britt and Happy Camper Studios, a Phoenix, Arizona, Ruby application development company.

Documentation content on ruby-doc.org is provided by remarkable members of the Ruby community.

For more information on the Ruby programming language, visit ruby-lang.org.

Want to help improve Ruby's API docs? See Ruby Documentation Guidelines.