diff options
author | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-01 13:30:08 +0000 |
---|---|---|
committer | kou <kou@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2004-11-01 13:30:08 +0000 |
commit | 4058e0bbefcc0c82b725b7dba0ac00de405b8d01 (patch) | |
tree | 14b80106549cee7003c56ccecac4027a24ad17d8 /lib | |
parent | 02acbbe1a2404a4be5ee998a907d32b2493b9e43 (diff) | |
download | ruby-4058e0bbefcc0c82b725b7dba0ac00de405b8d01.tar.gz ruby-4058e0bbefcc0c82b725b7dba0ac00de405b8d01.tar.xz ruby-4058e0bbefcc0c82b725b7dba0ac00de405b8d01.zip |
* lib/rss/maker/base.rb: changed xml-stylesheet's API of RSS Maker
to like item's one.
* lib/rss/xml-stylesheet.rb (RSS::XMLStyleSheet#guess_type): fixed
regular expression bug.
* test/rss/test_maker_xml-stylesheet.rb: updated tests for xml-stylesheet.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@7173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/rss/maker/base.rb | 37 | ||||
-rw-r--r-- | lib/rss/xml-stylesheet.rb | 2 |
2 files changed, 29 insertions, 10 deletions
diff --git a/lib/rss/maker/base.rb b/lib/rss/maker/base.rb index a9f163950..eb61f37ee 100644 --- a/lib/rss/maker/base.rb +++ b/lib/rss/maker/base.rb @@ -143,7 +143,7 @@ module RSS end def setup_xml_stylesheets(rss) - rss.xml_stylesheets = @xml_stylesheets.normalize + @xml_stylesheets.to_rss(rss) end end @@ -153,22 +153,41 @@ module RSS extend Forwardable - def_delegators(:@xml_stylesheets, :<<, :[], :[]=) + def_delegators(:@xml_stylesheets, :<<, :[], :[]=, :first, :last) + def_delegators(:@xml_stylesheets, :push, :pop, :shift, :unshift) def initialize(maker) super @xml_stylesheets = [] end - - def normalize - @xml_stylesheets.collect do |info| - make_xml_stylesheet(info) + + def to_rss(rss) + @xml_stylesheets.each do |xss| + xss.to_rss(rss) end end - private - def make_xml_stylesheet(info) - RSS::XMLStyleSheet.new(*info) + def new_xml_stylesheet + xss = XMLStyleSheet.new(@maker) + @xml_stylesheets << xss + xss + end + + class XMLStyleSheet + include Base + + ::RSS::XMLStyleSheet::ATTRIBUTES.each do |attribute| + attr_accessor attribute + add_need_initialize_variable(attribute) + end + + def to_rss(rss) + xss = ::RSS::XMLStyleSheet.new + set = setup_values(xss) + if set + rss.xml_stylesheets << xss + end + end end end diff --git a/lib/rss/xml-stylesheet.rb b/lib/rss/xml-stylesheet.rb index 726899ed8..c51c0dc71 100644 --- a/lib/rss/xml-stylesheet.rb +++ b/lib/rss/xml-stylesheet.rb @@ -86,7 +86,7 @@ module RSS private def guess_type(filename) - /\.([^.]+)/ =~ filename + /\.([^.]+)$/ =~ filename GUESS_TABLE[$1] end |