Module RSS::BaseTrackBackModel
In: lib/rss/trackback.rb

Methods

Included Modules

TrackBackUtils

Constants

ELEMENTS = %w(ping about)

Public Instance methods

[Source]

    # File lib/rss/trackback.rb, line 27
27:     def append_features(klass)
28:       super
29: 
30:       unless klass.class == Module
31:         klass.module_eval {include TrackBackUtils}
32: 
33:         klass.install_must_call_validator(TRACKBACK_PREFIX, TRACKBACK_URI)
34:         %w(ping).each do |name|
35:           var_name = "#{TRACKBACK_PREFIX}_#{name}"
36:           klass_name = "TrackBack#{Utils.to_class_name(name)}"
37:           klass.install_have_child_element(name, TRACKBACK_URI, "?", var_name)
38:           klass.module_eval("remove_method :\#{var_name}\ndef \#{var_name}\n@\#{var_name} and @\#{var_name}.value\nend\n\nremove_method :\#{var_name}=\ndef \#{var_name}=(value)\n@\#{var_name} = Utils.new_with_value_if_need(\#{klass_name}, value)\nend\n", __FILE__, __LINE__)
39:         end
40:         
41:         [%w(about s)].each do |name, postfix|
42:           var_name = "#{TRACKBACK_PREFIX}_#{name}"
43:           klass_name = "TrackBack#{Utils.to_class_name(name)}"
44:           klass.install_have_children_element(name, TRACKBACK_URI, "*",
45:                                               var_name)
46:           klass.module_eval("remove_method :\#{var_name}\ndef \#{var_name}(*args)\nif args.empty?\n@\#{var_name}.first and @\#{var_name}.first.value\nelse\nret = @\#{var_name}.__send__(\"[]\", *args)\nif ret.is_a?(Array)\nret.collect {|x| x.value}\nelse\nret.value\nend\nend\nend\n\nremove_method :\#{var_name}=\nremove_method :set_\#{var_name}\ndef \#{var_name}=(*args)\nif args.size == 1\nitem = Utils.new_with_value_if_need(\#{klass_name}, args[0])\n@\#{var_name}.push(item)\nelse\nnew_val = args.last\nif new_val.is_a?(Array)\nnew_val = new_value.collect do |val|\nUtils.new_with_value_if_need(\#{klass_name}, val)\nend\nelse\nnew_val = Utils.new_with_value_if_need(\#{klass_name}, new_val)\nend\n@\#{var_name}.__send__(\"[]=\", *(args[0..-2] + [new_val]))\nend\nend\nalias set_\#{var_name} \#{var_name}=\n", __FILE__, __LINE__)
47:         end
48:       end
49:     end

[Validate]