[前][次][番号順一覧][スレッド一覧]

ruby-changes:64909

From: Sutou <ko1@a...>
Date: Sun, 17 Jan 2021 06:09:00 +0900 (JST)
Subject: [ruby-changes:64909] f2767cf091 (master): Move rss samples to ruby/rss

https://git.ruby-lang.org/ruby.git/commit/?id=f2767cf091

From f2767cf09174bfe5340c9269a2fa53f226f97ba8 Mon Sep 17 00:00:00 2001
From: Sutou Kouhei <kou@c...>
Date: Sun, 17 Jan 2021 06:07:54 +0900
Subject: Move rss samples to ruby/rss


diff --git a/sample/rss/blend.rb b/sample/rss/blend.rb
deleted file mode 100755
index 351f6f3..0000000
--- a/sample/rss/blend.rb
+++ /dev/null
@@ -1,79 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0
-#!/usr/bin/env ruby
-
-require "rss"
-
-feeds = []
-verbose = false
-encoding = "UTF-8"
-
-def error(exception)
-  mark = "=" * 20
-  mark = "#{mark} error #{mark}"
-  STDERR.puts mark
-  STDERR.puts exception.class
-  STDERR.puts exception.message
-  STDERR.puts exception.backtrace
-  STDERR.puts mark
-end
-
-before_time = Time.now
-ARGV.each do |fname|
-  if fname == '-v'
-    verbose = true
-    next
-  end
-  rss = nil
-  f = File.new(fname).read
-  begin
-    ## do validate parse
-    rss = RSS::Parser.parse(f)
-  rescue RSS::InvalidRSSError
-    error($!) if verbose
-    ## do non validate parse for invalid RSS 1.0
-    begin
-      rss = RSS::Parser.parse(f, false)
-    rescue RSS::Error
-      ## invalid RSS.
-      error($!) if verbose
-    end
-  rescue RSS::Error
-    error($!) if verbose
-  end
-  if rss.nil?
-    STDERR.puts "#{fname} does not include RSS 1.0 or 0.9x/2.0"
-  else
-    begin
-      rss.output_encoding = encoding
-    rescue RSS::UnknownConversionMethodError
-      error($!) if verbose
-    end
-    feeds << rss
-  end
-end
-processing_time = Time.now - before_time
-
-rss = RSS::Maker.make("1.0") do |maker|
-  maker.encoding = encoding
-  maker.channel.about = "http://example.com/blend.rdf"
-  maker.channel.title = "blended feeds"
-  maker.channel.link = "http://example.com/"
-  maker.channel.description = "blended feeds generated by RSS Parser"
-
-  feeds.each do |feed|
-    feed.items.each do |item|
-      item.setup_maker(maker.items)
-    end
-  end
-
-  maker.items.each do |item|
-    item.title ||= "UNKNOWN"
-    item.link ||= "UNKNOWN"
-  end
-
-  maker.items.do_sort = true
-  maker.items.max_size = 15
-end
-puts rss
-
-STDERR.puts "Used XML parser: #{RSS::Parser.default_parser}"
-STDERR.puts "Processing time: #{processing_time}s"
diff --git a/sample/rss/convert.rb b/sample/rss/convert.rb
deleted file mode 100755
index e6bff4c..0000000
--- a/sample/rss/convert.rb
+++ /dev/null
@@ -1,69 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0
-#!/usr/bin/env ruby
-
-require "rss"
-
-feeds = []
-verbose = false
-encoding = "UTF-8"
-to_version = "1.0"
-
-def error(exception)
-  mark = "=" * 20
-  mark = "#{mark} error #{mark}"
-  STDERR.puts mark
-  STDERR.puts exception.class
-  STDERR.puts exception.message
-  STDERR.puts exception.backtrace
-  STDERR.puts mark
-end
-
-before_time = Time.now
-ARGV.each do |fname|
-  case fname
-  when '-v'
-    verbose = true
-    next
-  when /^-t(0\.91|1\.0|2\.0|atom)$/
-    to_version = $1
-    next
-  end
-  rss = nil
-  f = File.read(fname)
-  begin
-    ## do validate parse
-    rss = RSS::Parser.parse(f)
-  rescue RSS::InvalidRSSError
-    error($!) if verbose
-    ## do non validate parse for invalid RSS 1.0
-    begin
-      rss = RSS::Parser.parse(f, false)
-    rescue RSS::Error
-      ## invalid RSS.
-      error($!) if verbose
-    end
-  rescue RSS::Error
-    error($!) if verbose
-  end
-  if rss.nil?
-    STDERR.puts "#{fname} does not include RSS 1.0 or 0.9x/2.0"
-  else
-    begin
-      rss.output_encoding = encoding
-    rescue RSS::UnknownConversionMethodError
-      error($!) if verbose
-    end
-    feeds << [fname, rss]
-  end
-end
-processing_time = Time.now - before_time
-
-feeds.each do |fname, rss|
-  converted_rss = rss.to_xml(to_version)
-  output_name = fname.sub(/(\.[^\.]+)$/, "-#{to_version}\\1")
-  File.open(output_name, "w") do |output|
-    output.print(converted_rss)
-  end
-end
-
-STDERR.puts "Used XML parser: #{RSS::Parser.default_parser}"
-STDERR.puts "Processing time: #{processing_time}s"
diff --git a/sample/rss/list_description.rb b/sample/rss/list_description.rb
deleted file mode 100755
index 990974d..0000000
--- a/sample/rss/list_description.rb
+++ /dev/null
@@ -1,91 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0
-#!/usr/bin/env ruby
-
-require "nkf"
-class String
-  # From tdiary.rb
-  def shorten( len = 120 )
-    lines = NKF::nkf( "-t -m0 -f#{len}", self.gsub( /\n/, ' ' ) ).split( /\n/ )
-    lines[0].concat( '...' ) if lines[0] and lines[1]
-    lines[0]
-  end
-end
-
-require "rss"
-
-channels = {}
-verbose = false
-
-def error(exception)
-  mark = "=" * 20
-  mark = "#{mark} error #{mark}"
-  puts mark
-  puts exception.class
-  puts exception.message
-  puts exception.backtrace
-  puts mark
-end
-
-before_time = Time.now
-ARGV.each do |fname|
-  if fname == '-v'
-    verbose = true
-    next
-  end
-  rss = nil
-  f = File.new(fname).read
-  begin
-    ## do validate parse
-    rss = RSS::Parser.parse(f)
-  rescue RSS::InvalidRSSError
-    error($!) if verbose
-    ## do non validate parse for invalid RSS 1.0
-    begin
-      rss = RSS::Parser.parse(f, false)
-    rescue RSS::Error
-      ## invalid RSS.
-      error($!) if verbose
-    end
-  rescue RSS::Error
-    error($!) if verbose
-  end
-  if rss.nil?
-    puts "#{fname} does not include RSS 1.0 or 0.9x/2.0"
-  else
-    begin
-      rss.output_encoding = "utf-8"
-    rescue RSS::UnknownConversionMethodError
-      error($!) if verbose
-    end
-
-    rss = rss.to_rss("1.0") do |maker|
-      maker.channel.about ||= maker.channel.link
-      maker.channel.description ||= "No description"
-      maker.items.each do |item|
-        item.title ||= "No title"
-        item.link ||= "UNKNOWN"
-      end
-    end
-    next if rss.nil?
-
-    rss.items.each do |item|
-      channels[rss.channel.title] ||= []
-      channels[rss.channel.title] << item if item.description
-    end
-  end
-end
-processing_time = Time.now - before_time
-
-channels.sort do |x, y|
-  x[0] <=> y[0]
-end[0..20].each do |title, items|
-  puts "Channel: #{title}" unless items.empty?
-  items.sort do |x, y|
-    x.title <=> y.title
-  end[0..10].each do |item|
-    puts "  Item: #{item.title.shorten(50)}"
-    puts "    Description: #{item.description.shorten(50)}"
-  end
-end
-
-puts "Used XML parser: #{RSS::Parser.default_parser}"
-puts "Processing time: #{processing_time}s"
diff --git a/sample/rss/re_read.rb b/sample/rss/re_read.rb
deleted file mode 100755
index c386ab2..0000000
--- a/sample/rss/re_read.rb
+++ /dev/null
@@ -1,64 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0
-#!/usr/bin/env ruby
-
-require "rss"
-
-def error(exception)
-  mark = "=" * 20
-  mark = "#{mark} error #{mark}"
-  puts mark
-  puts exception.class
-  puts exception.message
-  puts exception.backtrace
-  puts mark
-end
-
-verbose = false
-before_time = Time.now
-
-ARGV.each do |fname|
-  if fname == '-v'
-    verbose = true
-    next
-  end
-  source = nil
-  File.open(fname) do |f|
-    source = f.read
-  end
-
-  rss = nil
-  read = false
-  begin
-    rss = RSS::Parser.parse(source)
-    puts "Re-read valid feed: #{fname}"
-    RSS::Parser.parse(rss.to_s)
-    read = true
-  rescue RSS::InvalidRSSError
-    error($!) if verbose
-    ## do non validate parse for invalid feed
-    begin
-      rss = RSS::Parser.parse(source, false)
-    rescue RSS::Error
-      ## invalid feed
-      error($!) if verbose
-    end
-  rescue RSS::Error
-    error($!) if verbose
-  end
-
-  if rss.nil?
-    puts "Invalid feed: #{fname}"
-  elsif !read
-    puts "Re-read invalid feed: #{fname}"
-    begin
-      RSS::Parser.parse(rss.to_s)
-    rescue RSS::Error
-      puts "  Error occurred: #{fname}"
-      error($!) if verbose
-    end
-  end
-end
-
-processing_time = Time.now - before_time
-
-puts "Used XML parser: #{RSS::Parser.default_parser}"
-puts "Processing time: #{processing_time}s"
diff --git a/sample/rss/rss_recent.rb b/sample/rss/rss_recent.rb
deleted file mode 100755
index 14c8612..0000000
--- a/sample/rss/rss_recent.rb
+++ /dev/null
@@ -1,85 +0,0 @@ https://github.com/ruby/ruby/blob/trunk/#L0
-#!/usr/bin/env ruby
-
-require "nkf"
-class String
-  # From tdiary.rb
-  def shorten( len = 120 )
-    lines = NKF::nkf( "-t -m0 -f#{len}", self.gsub( /\n/, ' ' ) ).split( /\n/ )
-    lines[0].concat( '...' ) if lines[0] and lines[1]
-    lines[0]
-  end
-end
-
-require "rss"
-
-items = []
-verbose = false
-
-def error(exception)
-  mark = "=" * 20
-  mark = "#{mark} error #{mark}"
-  puts mark
-  puts exception.class
-  puts exception.message
-  puts exception.backtrace
-  puts mark
-end
-before_time = Time.now
-ARGV.each do |fname|
-  if fname == '-v'
-    verbose = true
-    next
-  end
-  rss = nil
-  f = File.new(fname).read
-  begin
-    ## do validate parse
-    rss = RSS::Parser.parse(f)
-  rescue RSS::InvalidRSSError
-    error($!) if verbose
-    ## do non validate parse for invalid RSS 1.0
-    begin
-      rss = RSS::Parser.parse(f, false)
-    rescue RSS::Error
-      ## invalid RSS.
-      error($!) if verbose
-    end
-  rescue RSS::Error
-    error($!) if verbose
-  end
-  if rss.nil?
-    puts "#{fname} does not include RSS 1.0 or 0.9x/2.0"
-  else
-    begin
-      rss.output_encoding = "utf-8"
-    rescue RSS::UnknownConversionMethodError
-      error($!) if verbose
-    end
-
-    rss = rss.to_rss("1.0") do |maker|
-      maker.channel.about ||= maker.channel.link
-      maker.channel.description ||= "No description"
-      maker.items.each do |item|
-        item.title ||= "UNKNOWN"
-        item.link ||= "UNKNOWN"
-      end
-    end
-    next if rss.nil?
-
-    rss.items.each do |item|
-      items << [rss.channel, item] if item.dc_date
-    end
-  end
-end
-processing_time = Time.now - before_time
-
-items.sort do |x, y|
-  y[1].dc_date <=> x[1].dc_date
-end[0..20].each do |channel, item|
-  puts "#{item.dc_date.localtime.iso8601}: " <<
-    "#{channel.title}: #{item.title}"
-  puts " Description: #{item.description.shorten(50)}" if item.description
-end
-
-puts "Used XML parser: #{RSS::Pa (... truncated)

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]