1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

This commit was manufactured by cvs2svn to create branch 'ruby_1_8'.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
(no author) 2004-11-01 08:21:06 +00:00
parent 8522deb2b2
commit 8b33686b91
12 changed files with 9831 additions and 0 deletions

View file

@ -0,0 +1,2 @@
require 'mkmf'
create_makefile('enumerator')

2
ext/fcntl/extconf.rb Normal file
View file

@ -0,0 +1,2 @@
require 'mkmf'
create_makefile('fcntl')

52
ext/nkf/nkf-utf8/config.h Normal file
View file

@ -0,0 +1,52 @@
#ifndef _CONFIG_H_
#define _CONFIG_H_
/* UTF8 $BF~=PNO(B */
#define UTF8_INPUT_ENABLE
#define UTF8_OUTPUT_ENABLE
/* Shift_JIS $BHO0O30$NJ8;z$r!"(BCP932 $B$GF1CM$JJ8;z$KFI$_49$($k(B */
#define SHIFTJIS_CP932
/* $B%*%W%7%g%s$GF~NO$r;XDj$7$?;~$K!"J8;z%3!<%I$r8GDj$9$k(B */
#define INPUT_CODE_FIX
/* --overwrite $B%*%W%7%g%s(B */
/* by Satoru Takabayashi <ccsatoru@vega.aichi-u.ac.jp> */
#define OVERWRITE
/* --cap-input, --url-input $B%*%W%7%g%s(B */
#define INPUT_OPTION
/* --numchar-input $B%*%W%7%g%s(B */
#define NUMCHAR_OPTION
/* --debug, --no-output $B%*%W%7%g%s(B */
#define CHECK_OPTION
/* --exec-in, --exec-out $B%*%W%7%g%s(B
* pipe, fork, execvp $B$"$?$j$,L5$$$HF0$-$^$;$s!#(B
* MS-DOS, MinGW $B$J$I$G$O(B undef $B$K$7$F$/$@$5$$(B
* child process $B=*N;;~$N=hM}$,$$$$$+$2$s$J$N$G!"(B
* $B%G%U%)%k%H$GL58z$K$7$F$$$^$9!#(B
*/
/* #define EXEC_IO */
/* SunOS $B$N(B cc $B$r;H$&$H$-$O(B undef $B$K$7$F$/$@$5$$(B */
#define ANSI_C_PROTOTYPE
/* int $B$,(B 32bit $BL$K~$N4D6-$G(B NUMCHAR_OPTION $B$r;H$&$K$O!"(B
* $B%3%a%s%H$r30$7$F$/$@$5$$!#(B
*/
/* #define INT_IS_SHORT */
/******************************/
/* $B%G%U%)%k%H$N=PNO%3!<%IA*Br(B */
/* Select DEFAULT_CODE */
#define DEFAULT_CODE_JIS
/* #define DEFAULT_CODE_SJIS */
/* #define DEFAULT_CODE_EUC */
/* #define DEFAULT_CODE_UTF8 */
/******************************/
#endif /* _CONFIG_H_ */

4060
ext/nkf/nkf-utf8/nkf.c Normal file

File diff suppressed because it is too large Load diff

5313
ext/nkf/nkf-utf8/utf8tbl.c Normal file

File diff suppressed because it is too large Load diff

2
ext/stringio/extconf.rb Normal file
View file

@ -0,0 +1,2 @@
require 'mkmf'
create_makefile('stringio')

33
lib/rss/maker.rb Normal file
View file

@ -0,0 +1,33 @@
require "rss/rss"
module RSS
module Maker
MAKERS = {}
class << self
def make(version, modules=[], &block)
prefix = "rss/maker"
require "#{prefix}/#{version}"
modules.each do |mod|
require "#{prefix}/#{mod}"
end
maker(version).make(&block)
end
def maker(version)
MAKERS[version]
end
def add_maker(version, maker)
MAKERS[version] = maker
end
def filename_to_version(filename)
File.basename(filename, ".*")
end
end
end
end

184
lib/rss/maker/1.0.rb Normal file
View file

@ -0,0 +1,184 @@
require "rss/1.0"
require "rss/maker/base"
module RSS
module Maker
class RSS10 < RSSBase
def initialize
super("1.0")
end
def to_rss
rss = RDF.new(@version, @encoding, @standalone)
setup_xml_stylesheets(rss)
setup_channel(rss)
setup_image(rss)
setup_items(rss)
setup_textinput(rss)
setup_other_elements(rss)
if rss.channel
rss
else
nil
end
end
private
def setup_channel(rss)
@channel.to_rss(rss)
end
def setup_image(rss)
@image.to_rss(rss)
end
def setup_items(rss)
@items.to_rss(rss)
end
def setup_textinput(rss)
@textinput.to_rss(rss)
end
class Channel < ChannelBase
def to_rss(rss)
if @about
channel = RDF::Channel.new(@about)
set = setup_values(channel)
if set
rss.channel = channel
setup_items(rss)
setup_image(rss)
setup_textinput(rss)
setup_other_elements(rss)
end
end
end
def have_required_values?
@about and @title and @link and @description
end
private
def setup_items(rss)
items = RDF::Channel::Items.new
seq = items.Seq
@maker.items.normalize.each do |item|
seq.lis << RDF::Channel::Items::Seq::Li.new(item.link)
end
rss.channel.items = items
end
def setup_image(rss)
if @maker.image.have_required_values?
rss.channel.image = RDF::Channel::Image.new(@maker.image.url)
end
end
def setup_textinput(rss)
if @maker.textinput.have_required_values?
textinput = RDF::Channel::Textinput.new(@maker.textinput.link)
rss.channel.textinput = textinput
end
end
class Cloud < CloudBase
end
end
class Image < ImageBase
def to_rss(rss)
if @url
image = RDF::Image.new(@url)
set = setup_values(image)
if set
rss.image = image
setup_other_elements(rss)
end
end
end
def have_required_values?
@url and @title and link and @maker.channel.have_required_values?
end
private
def variables
super + ["link"]
end
end
class Items < ItemsBase
def to_rss(rss)
if rss.channel
normalize.each do |item|
item.to_rss(rss)
end
setup_other_elements(rss)
end
end
class Item < ItemBase
def to_rss(rss)
if @link
item = RDF::Item.new(@link)
set = setup_values(item)
if set
rss.items << item
setup_other_elements(rss)
end
end
end
def have_required_values?
@title and @link
end
class Guid < GuidBase
def to_rss(*args)
end
end
class Enclosure < EnclosureBase
def to_rss(*args)
end
end
class Source < SourceBase
def to_rss(*args)
end
end
class Category < CategoryBase
def to_rss(*args)
end
end
end
end
class Textinput < TextinputBase
def to_rss(rss)
if @link
textinput = RDF::Textinput.new(@link)
set = setup_values(textinput)
if set
rss.textinput = textinput
setup_other_elements(rss)
end
end
end
def have_required_values?
@title and @description and @name and @link and
@maker.channel.have_required_values?
end
end
end
add_maker(filename_to_version(__FILE__), RSS10)
end
end

View file

@ -0,0 +1,34 @@
require "rss-testcase"
require "rss/maker"
module RSS
class TestMakerContent < TestCase
def setup
@uri = "http://purl.org/rss/1.0/modules/content/"
@elements = {
:encoded => "<em>ATTENTION</em>",
}
end
def test_rss10
rss = RSS::Maker.make("1.0", ["content"]) do |maker|
setup_dummy_channel(maker)
setup_dummy_item(maker)
item = maker.items.last
@elements.each do |name, value|
item.__send__("#{accessor_name(name)}=", value)
end
end
assert_content(@elements, rss.items.last)
end
private
def accessor_name(name)
"content_#{name}"
end
end
end

71
test/rss/test_maker_dc.rb Normal file
View file

@ -0,0 +1,71 @@
require "rss-testcase"
require "rss/maker"
module RSS
class TestMakerDublinCore < TestCase
def setup
@uri = "http://purl.org/dc/elements/1.1/"
t = Time.iso8601("2000-01-01T12:00:05+00:00")
class << t
alias_method(:to_s, :iso8601)
end
@elements = {
:title => "hoge",
:description =>
" XML is placing increasingly heavy loads on
the existing technical infrastructure of the Internet.",
:creator => "Rael Dornfest (mailto:rael@oreilly.com)",
:subject => "XML",
:publisher => "The O'Reilly Network",
:contributor => "hogehoge",
:type => "fugafuga",
:format => "hohoho",
:identifier => "fufufu",
:source => "barbar",
:language => "ja",
:relation => "cococo",
:rights => "Copyright (c) 2000 O'Reilly &amp; Associates, Inc.",
:date => t,
}
end
def test_rss10
rss = RSS::Maker.make("1.0", ["dublincore"]) do |maker|
setup_dummy_channel(maker)
set_elements(maker.channel)
setup_dummy_image(maker)
set_elements(maker.image)
setup_dummy_item(maker)
item = maker.items.last
@elements.each do |name, value|
item.__send__("#{accessor_name(name)}=", value)
end
setup_dummy_textinput(maker)
set_elements(maker.textinput)
end
assert_dublin_core(@elements, rss.channel)
assert_dublin_core(@elements, rss.image)
assert_dublin_core(@elements, rss.items.last)
assert_dublin_core(@elements, rss.textinput)
end
private
def accessor_name(name)
"dc_#{name}"
end
def set_elements(target)
@elements.each do |name, value|
target.__send__("#{accessor_name(name)}=", value)
end
end
end
end

43
test/rss/test_maker_sy.rb Normal file
View file

@ -0,0 +1,43 @@
require "rss-testcase"
require "rss/maker"
module RSS
class TestMakerSyndication < TestCase
def setup
@uri = "http://purl.org/rss/1.0/modules/syndication/"
t = Time.iso8601("2000-01-01T12:00:05+00:00")
class << t
alias_method(:to_s, :iso8601)
end
@elements = {
:updatePeriod => "hourly",
:updateFrequency => 2,
:updateBase => t,
}
end
def test_rss10
rss = RSS::Maker.make("1.0", ["syndication"]) do |maker|
setup_dummy_channel(maker)
set_elements(maker.channel)
end
assert_syndication(@elements, rss.channel)
end
private
def accessor_name(name)
"sy_#{name}"
end
def set_elements(target)
@elements.each do |name, value|
target.__send__("#{accessor_name(name)}=", value)
end
end
end
end

View file

@ -0,0 +1,35 @@
require "rss-testcase"
require "rss/maker"
module RSS
class TestMakerTrackBack < TestCase
def setup
@uri = "http://madskills.com/public/xml/rss/module/trackback/"
@elements = {
:ping => "http://bar.com/tb.cgi?tb_id=rssplustrackback",
:about => "http://foo.com/trackback/tb.cgi?tb_id=20020923",
}
end
def test_rss10
rss = RSS::Maker.make("1.0", ["trackback"]) do |maker|
setup_dummy_channel(maker)
setup_dummy_item(maker)
item = maker.items.last
@elements.each do |name, value|
item.__send__("#{accessor_name(name)}=", value)
end
end
assert_trackback(@elements, rss.items.last)
end
private
def accessor_name(name)
"trackback_#{name}"
end
end
end