* 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: svn+ssh://ci.ruby-lang.org/ruby/trunk@7173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
kou 2004-11-01 13:30:08 +00:00
Родитель 0aeea1ad38
Коммит c2d8185ba6
4 изменённых файлов: 61 добавлений и 18 удалений

Просмотреть файл

@ -1,3 +1,14 @@
Mon Nov 1 22:25:56 2004 Kouhei Sutou <kou@cozmixng.org>
* lib/rss/maker/base.rb: changed xml-stylesheet's API of RSS Maker
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.
Mon Nov 1 13:59:28 2004 WATANABE Hirofumi <eban@ruby-lang.org> Mon Nov 1 13:59:28 2004 WATANABE Hirofumi <eban@ruby-lang.org>
* ext/extmk.rb (MANIFEST): do not use anymore, use extconf.rb instead. * ext/extmk.rb (MANIFEST): do not use anymore, use extconf.rb instead.

Просмотреть файл

@ -143,7 +143,7 @@ module RSS
end end
def setup_xml_stylesheets(rss) def setup_xml_stylesheets(rss)
rss.xml_stylesheets = @xml_stylesheets.normalize @xml_stylesheets.to_rss(rss)
end end
end end
@ -153,22 +153,41 @@ module RSS
extend Forwardable extend Forwardable
def_delegators(:@xml_stylesheets, :<<, :[], :[]=) def_delegators(:@xml_stylesheets, :<<, :[], :[]=, :first, :last)
def_delegators(:@xml_stylesheets, :push, :pop, :shift, :unshift)
def initialize(maker) def initialize(maker)
super super
@xml_stylesheets = [] @xml_stylesheets = []
end end
def normalize def to_rss(rss)
@xml_stylesheets.collect do |info| @xml_stylesheets.each do |xss|
make_xml_stylesheet(info) xss.to_rss(rss)
end end
end end
private def new_xml_stylesheet
def make_xml_stylesheet(info) xss = XMLStyleSheet.new(@maker)
RSS::XMLStyleSheet.new(*info) @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
end end

Просмотреть файл

@ -86,7 +86,7 @@ module RSS
private private
def guess_type(filename) def guess_type(filename)
/\.([^.]+)/ =~ filename /\.([^.]+)$/ =~ filename
GUESS_TABLE[$1] GUESS_TABLE[$1]
end end

Просмотреть файл

@ -14,14 +14,13 @@ module RSS
alternate = 'yes' alternate = 'yes'
rss = RSS::Maker.make("1.0") do |maker| rss = RSS::Maker.make("1.0") do |maker|
maker.xml_stylesheets << { xss = maker.xml_stylesheets.new_xml_stylesheet
:href => href, xss.href = href
:type => type, xss.type = type
:title => title, xss.title = title
:media => media, xss.media = media
:charset => charset, xss.charset = charset
:alternate => alternate, xss.alternate = alternate
}
setup_dummy_channel(maker) setup_dummy_channel(maker)
end end
@ -33,6 +32,20 @@ module RSS
assert_equal(media, xss.media) assert_equal(media, xss.media)
assert_equal(charset, xss.charset) assert_equal(charset, xss.charset)
assert_equal(alternate, xss.alternate) assert_equal(alternate, xss.alternate)
href = 'http://example.com/index.xsl'
type = 'text/xsl'
rss = RSS::Maker.make("1.0") do |maker|
xss = maker.xml_stylesheets.new_xml_stylesheet
xss.href = href
setup_dummy_channel(maker)
end
xss = rss.xml_stylesheets.first
assert_equal(href, xss.href)
assert_equal(type, xss.type)
end end
end end