source: projects/web/trunk/bin/rss_cdata.rb @ 1284

Revision 1284, 1.1 KB checked in by daisuke, 14 years ago (diff)

Initial import

Line 
1require 'rss'
2
3module RSS
4  module BaseModel
5    def install_cdata_element(tag_name, uri, occurs, name=nil, type=nil, disp_name=nil)
6      name ||= tag_name
7      disp_name ||= name
8      self::ELEMENTS << name
9      add_need_initialize_variable(name)
10      install_model(tag_name, uri, occurs, name)
11
12      def_corresponded_attr_writer name, type, disp_name
13      convert_attr_reader name
14      install_element(name) do |n, elem_name|
15        <<-EOC
16        if @#{n}
17          rv = "\#{indent}<#{elem_name}>"
18          value = "<![CDATA[" + eval("@#{n}") + "]]>"
19          if need_convert
20            rv << convert(value)
21          else
22            rv << value
23          end
24          rv << "</#{elem_name}>"
25          rv
26        else
27          ''
28        end
29EOC
30      end
31    end
32  end 
33 
34  module ContentModel
35    def self.append_features(klass)
36      super 
37     
38      klass.install_must_call_validator(CONTENT_PREFIX, CONTENT_URI)
39      %w(encoded).each do |name|
40        klass.install_cdata_element(name, CONTENT_URI, "?", "#{CONTENT_PREFIX}_#{name}")
41      end
42    end
43  end 
44 
45  class RDF
46    class Item; include ContentModel; end
47  end
48end
Note: See TracBrowser for help on using the repository browser.