diff options
Diffstat (limited to 'ruby_1_8_5/lib/rss/maker')
-rw-r--r-- | ruby_1_8_5/lib/rss/maker/0.9.rb | 224 | ||||
-rw-r--r-- | ruby_1_8_5/lib/rss/maker/1.0.rb | 204 | ||||
-rw-r--r-- | ruby_1_8_5/lib/rss/maker/2.0.rb | 168 | ||||
-rw-r--r-- | ruby_1_8_5/lib/rss/maker/base.rb | 546 | ||||
-rw-r--r-- | ruby_1_8_5/lib/rss/maker/content.rb | 29 | ||||
-rw-r--r-- | ruby_1_8_5/lib/rss/maker/dublincore.rb | 169 | ||||
-rw-r--r-- | ruby_1_8_5/lib/rss/maker/image.rb | 145 | ||||
-rw-r--r-- | ruby_1_8_5/lib/rss/maker/syndication.rb | 27 | ||||
-rw-r--r-- | ruby_1_8_5/lib/rss/maker/taxonomy.rb | 182 | ||||
-rw-r--r-- | ruby_1_8_5/lib/rss/maker/trackback.rb | 130 |
10 files changed, 0 insertions, 1824 deletions
diff --git a/ruby_1_8_5/lib/rss/maker/0.9.rb b/ruby_1_8_5/lib/rss/maker/0.9.rb deleted file mode 100644 index b82585fb96..0000000000 --- a/ruby_1_8_5/lib/rss/maker/0.9.rb +++ /dev/null @@ -1,224 +0,0 @@ -require "rss/0.9" - -require "rss/maker/base" - -module RSS - module Maker - - class RSS09 < RSSBase - - def initialize(rss_version="0.91") - super - end - - private - def make_rss - Rss.new(@rss_version, @version, @encoding, @standalone) - end - - def setup_elements(rss) - setup_channel(rss) - end - - class Channel < ChannelBase - - def to_rss(rss) - channel = Rss::Channel.new - set = setup_values(channel) - if set - rss.channel = channel - setup_items(rss) - setup_image(rss) - setup_textinput(rss) - setup_other_elements(rss) - if rss.channel.image - rss - else - nil - end - elsif variable_is_set? - raise NotSetError.new("maker.channel", not_set_required_variables) - end - end - - def have_required_values? - @title and @link and @description and @language - end - - private - def setup_items(rss) - @maker.items.to_rss(rss) - end - - def setup_image(rss) - @maker.image.to_rss(rss) - end - - def setup_textinput(rss) - @maker.textinput.to_rss(rss) - end - - def variables - super + ["pubDate"] - end - - def required_variable_names - %w(title link description language) - end - - class SkipDays < SkipDaysBase - def to_rss(rss, channel) - unless @days.empty? - skipDays = Rss::Channel::SkipDays.new - channel.skipDays = skipDays - @days.each do |day| - day.to_rss(rss, skipDays.days) - end - end - end - - class Day < DayBase - def to_rss(rss, days) - day = Rss::Channel::SkipDays::Day.new - set = setup_values(day) - if set - days << day - setup_other_elements(rss) - end - end - - def have_required_values? - @content - end - end - end - - class SkipHours < SkipHoursBase - def to_rss(rss, channel) - unless @hours.empty? - skipHours = Rss::Channel::SkipHours.new - channel.skipHours = skipHours - @hours.each do |hour| - hour.to_rss(rss, skipHours.hours) - end - end - end - - class Hour < HourBase - def to_rss(rss, hours) - hour = Rss::Channel::SkipHours::Hour.new - set = setup_values(hour) - if set - hours << hour - setup_other_elements(rss) - end - end - - def have_required_values? - @content - end - end - end - - class Cloud < CloudBase - def to_rss(*args) - end - end - - class Categories < CategoriesBase - def to_rss(*args) - end - - class Category < CategoryBase - end - end - end - - class Image < ImageBase - def to_rss(rss) - image = Rss::Channel::Image.new - set = setup_values(image) - if set - image.link = link - rss.channel.image = image - setup_other_elements(rss) - end - end - - def have_required_values? - @url and @title and 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) - item = Rss::Channel::Item.new - set = setup_values(item) - if set - rss.items << item - setup_other_elements(rss) - end - end - - private - 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 Categories < CategoriesBase - def to_rss(*args) - end - - class Category < CategoryBase - end - end - - end - end - - class Textinput < TextinputBase - def to_rss(rss) - textInput = Rss::Channel::TextInput.new - set = setup_values(textInput) - if set - rss.channel.textInput = textInput - setup_other_elements(rss) - end - end - - private - def have_required_values? - @title and @description and @name and @link - end - end - end - - add_maker(filename_to_version(__FILE__), RSS09) - add_maker(filename_to_version(__FILE__) + "1", RSS09) - end -end diff --git a/ruby_1_8_5/lib/rss/maker/1.0.rb b/ruby_1_8_5/lib/rss/maker/1.0.rb deleted file mode 100644 index 3e6542a007..0000000000 --- a/ruby_1_8_5/lib/rss/maker/1.0.rb +++ /dev/null @@ -1,204 +0,0 @@ -require "rss/1.0" - -require "rss/maker/base" - -module RSS - module Maker - - class RSS10 < RSSBase - - def initialize - super("1.0") - end - - private - def make_rss - RDF.new(@version, @encoding, @standalone) - end - - def setup_elements(rss) - setup_channel(rss) - setup_image(rss) - setup_items(rss) - setup_textinput(rss) - end - - class Channel < ChannelBase - - def to_rss(rss) - set = false - if @about - channel = RDF::Channel.new(@about) - set = setup_values(channel) - if set - channel.dc_dates.clear - rss.channel = channel - setup_items(rss) - setup_image(rss) - setup_textinput(rss) - setup_other_elements(rss) - end - end - - if (!@about or !set) and variable_is_set? - raise NotSetError.new("maker.channel", not_set_required_variables) - 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 - - def required_variable_names - %w(about title link description) - end - - class SkipDays < SkipDaysBase - def to_rss(*args) - end - - class Day < DayBase - end - end - - class SkipHours < SkipHoursBase - def to_rss(*args) - end - - class Hour < HourBase - end - end - - class Cloud < CloudBase - def to_rss(*args) - end - end - - class Categories < CategoriesBase - def to_rss(*args) - end - - class Category < CategoryBase - end - 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 - item.dc_dates.clear - 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 Categories < CategoriesBase - def to_rss(*args) - end - - class Category < CategoryBase - 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 diff --git a/ruby_1_8_5/lib/rss/maker/2.0.rb b/ruby_1_8_5/lib/rss/maker/2.0.rb deleted file mode 100644 index a958661614..0000000000 --- a/ruby_1_8_5/lib/rss/maker/2.0.rb +++ /dev/null @@ -1,168 +0,0 @@ -require "rss/2.0" - -require "rss/maker/0.9" - -module RSS - module Maker - - class RSS20 < RSS09 - - def initialize(rss_version="2.0") - super - end - - class Channel < RSS09::Channel - - def have_required_values? - @title and @link and @description - end - - def required_variable_names - %w(title link description) - end - - class SkipDays < RSS09::Channel::SkipDays - class Day < RSS09::Channel::SkipDays::Day - end - end - - class SkipHours < RSS09::Channel::SkipHours - class Hour < RSS09::Channel::SkipHours::Hour - end - end - - class Cloud < RSS09::Channel::Cloud - def to_rss(rss, channel) - cloud = Rss::Channel::Cloud.new - set = setup_values(cloud) - if set - channel.cloud = cloud - setup_other_elements(rss) - end - end - - def have_required_values? - @domain and @port and @path and - @registerProcedure and @protocol - end - end - - class Categories < RSS09::Channel::Categories - def to_rss(rss, channel) - @categories.each do |category| - category.to_rss(rss, channel) - end - end - - class Category < RSS09::Channel::Categories::Category - def to_rss(rss, channel) - category = Rss::Channel::Category.new - set = setup_values(category) - if set - channel.categories << category - setup_other_elements(rss) - end - end - - def have_required_values? - @content - end - end - end - - end - - class Image < RSS09::Image - end - - class Items < RSS09::Items - - class Item < RSS09::Items::Item - - def have_required_values? - @title or @description - end - - private - def variables - super + ["pubDate"] - end - - class Guid < RSS09::Items::Item::Guid - def to_rss(rss, item) - guid = Rss::Channel::Item::Guid.new - set = setup_values(guid) - if set - item.guid = guid - setup_other_elements(rss) - end - end - - def have_required_values? - @content - end - end - - class Enclosure < RSS09::Items::Item::Enclosure - def to_rss(rss, item) - enclosure = Rss::Channel::Item::Enclosure.new - set = setup_values(enclosure) - if set - item.enclosure = enclosure - setup_other_elements(rss) - end - end - - def have_required_values? - @url and @length and @type - end - end - - class Source < RSS09::Items::Item::Source - def to_rss(rss, item) - source = Rss::Channel::Item::Source.new - set = setup_values(source) - if set - item.source = source - setup_other_elements(rss) - end - end - - def have_required_values? - @url and @content - end - end - - class Categories < RSS09::Items::Item::Categories - def to_rss(rss, item) - @categories.each do |category| - category.to_rss(rss, item) - end - end - - class Category < RSS09::Items::Item::Categories::Category - def to_rss(rss, item) - category = Rss::Channel::Item::Category.new - set = setup_values(category) - if set - item.categories << category - setup_other_elements(rss) - end - end - - def have_required_values? - @content - end - end - end - end - - end - - class Textinput < RSS09::Textinput - end - end - - add_maker(filename_to_version(__FILE__), RSS20) - end -end diff --git a/ruby_1_8_5/lib/rss/maker/base.rb b/ruby_1_8_5/lib/rss/maker/base.rb deleted file mode 100644 index 2327dd98e4..0000000000 --- a/ruby_1_8_5/lib/rss/maker/base.rb +++ /dev/null @@ -1,546 +0,0 @@ -require 'forwardable' - -require 'rss/rss' - -module RSS - module Maker - - module Base - - def self.append_features(klass) - super - - klass.module_eval(<<-EOC, __FILE__, __LINE__) - - OTHER_ELEMENTS = [] - NEED_INITIALIZE_VARIABLES = [] - - def self.inherited(subclass) - subclass.const_set("OTHER_ELEMENTS", []) - subclass.const_set("NEED_INITIALIZE_VARIABLES", []) - - subclass.module_eval(<<-EOEOC, __FILE__, __LINE__) - def self.other_elements - OTHER_ELEMENTS + super - end - - def self.need_initialize_variables - NEED_INITIALIZE_VARIABLES + super - end - EOEOC - end - - def self.add_other_element(variable_name) - OTHER_ELEMENTS << variable_name - end - - def self.other_elements - OTHER_ELEMENTS - end - - def self.add_need_initialize_variable(variable_name, init_value="nil") - NEED_INITIALIZE_VARIABLES << [variable_name, init_value] - end - - def self.need_initialize_variables - NEED_INITIALIZE_VARIABLES - end - - def self.def_array_element(name) - include Enumerable - extend Forwardable - - def_delegators("@\#{name}", :<<, :[], :[]=, :first, :last) - def_delegators("@\#{name}", :push, :pop, :shift, :unshift) - def_delegators("@\#{name}", :each, :size) - - add_need_initialize_variable(name, "[]") - end - EOC - end - - def initialize(maker) - @maker = maker - initialize_variables - end - - def have_required_values? - true - end - - private - def initialize_variables - self.class.need_initialize_variables.each do |variable_name, init_value| - instance_eval("@#{variable_name} = #{init_value}", __FILE__, __LINE__) - end - end - - def setup_other_elements(rss) - self.class.other_elements.each do |element| - __send__("setup_#{element}", rss, current_element(rss)) - end - end - - def current_element(rss) - rss - end - - def setup_values(target) - set = false - if have_required_values? - variables.each do |var| - setter = "#{var}=" - if target.respond_to?(setter) - value = __send__(var) - if value - target.__send__(setter, value) - set = true - end - end - end - end - set - end - - def variables - self.class.need_initialize_variables.find_all do |name, init| - "nil" == init - end.collect do |name, init| - name - end - end - - def variable_is_set? - variables.find {|var| !__send__(var).nil?} - end - - def not_set_required_variables - required_variable_names.find_all do |var| - __send__(var).nil? - end - end - - def required_variables_are_set? - required_variable_names.each do |var| - return false if __send__(var).nil? - end - true - end - - end - - class RSSBase - include Base - - class << self - def make(&block) - new.make(&block) - end - end - - %w(xml_stylesheets channel image items textinput).each do |element| - attr_reader element - add_need_initialize_variable(element, "make_#{element}") - module_eval(<<-EOC, __FILE__, __LINE__) - private - def setup_#{element}(rss) - @#{element}.to_rss(rss) - end - - def make_#{element} - self.class::#{Utils.to_class_name(element)}.new(self) - end -EOC - end - - attr_reader :rss_version - attr_accessor :version, :encoding, :standalone - - def initialize(rss_version) - super(self) - @rss_version = rss_version - @version = "1.0" - @encoding = "UTF-8" - @standalone = nil - end - - def make - if block_given? - yield(self) - to_rss - else - nil - end - end - - def to_rss - rss = make_rss - setup_xml_stylesheets(rss) - setup_elements(rss) - setup_other_elements(rss) - if rss.channel - rss - else - nil - end - end - - private - remove_method :make_xml_stylesheets - def make_xml_stylesheets - XMLStyleSheets.new(self) - end - - end - - class XMLStyleSheets - include Base - - def_array_element("xml_stylesheets") - - def to_rss(rss) - @xml_stylesheets.each do |xss| - xss.to_rss(rss) - end - end - - def new_xml_stylesheet - xss = XMLStyleSheet.new(@maker) - @xml_stylesheets << xss - if block_given? - yield xss - else - xss - end - 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 - guess_type_if_need(xss) - set = setup_values(xss) - if set - rss.xml_stylesheets << xss - end - end - - def have_required_values? - @href and @type - end - - private - def guess_type_if_need(xss) - if @type.nil? - xss.href = @href - @type = xss.type - end - end - end - end - - class ChannelBase - include Base - - %w(cloud categories skipDays skipHours).each do |element| - attr_reader element - add_other_element(element) - add_need_initialize_variable(element, "make_#{element}") - module_eval(<<-EOC, __FILE__, __LINE__) - private - def setup_#{element}(rss, current) - @#{element}.to_rss(rss, current) - end - - def make_#{element} - self.class::#{Utils.to_class_name(element)}.new(@maker) - end -EOC - end - - %w(about title link description language copyright - managingEditor webMaster rating docs date - lastBuildDate generator ttl).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - - alias_method(:pubDate, :date) - alias_method(:pubDate=, :date=) - - def current_element(rss) - rss.channel - end - - class SkipDaysBase - include Base - - def_array_element("days") - - def new_day - day = self.class::Day.new(@maker) - @days << day - if block_given? - yield day - else - day - end - end - - def current_element(rss) - rss.channel.skipDays - end - - class DayBase - include Base - - %w(content).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - - def current_element(rss) - rss.channel.skipDays.last - end - - end - end - - class SkipHoursBase - include Base - - def_array_element("hours") - - def new_hour - hour = self.class::Hour.new(@maker) - @hours << hour - if block_given? - yield hour - else - hour - end - end - - def current_element(rss) - rss.channel.skipHours - end - - class HourBase - include Base - - %w(content).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - - def current_element(rss) - rss.channel.skipHours.last - end - - end - end - - class CloudBase - include Base - - %w(domain port path registerProcedure protocol).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - - def current_element(rss) - rss.channel.cloud - end - - end - - class CategoriesBase - include Base - - def_array_element("categories") - - def new_category - category = self.class::Category.new(@maker) - @categories << category - if block_given? - yield category - else - category - end - end - - class CategoryBase - include Base - - %w(domain content).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - end - end - end - - class ImageBase - include Base - - %w(title url width height description).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - - def link - @maker.channel.link - end - - def current_element(rss) - rss.image - end - end - - class ItemsBase - include Base - - def_array_element("items") - - attr_accessor :do_sort, :max_size - - def initialize(maker) - super - @do_sort = false - @max_size = -1 - end - - def normalize - if @max_size >= 0 - sort_if_need[0...@max_size] - else - sort_if_need[0..@max_size] - end - end - - def current_element(rss) - rss.items - end - - def new_item - item = self.class::Item.new(@maker) - @items << item - if block_given? - yield item - else - item - end - end - - private - def sort_if_need - if @do_sort.respond_to?(:call) - @items.sort do |x, y| - @do_sort.call(x, y) - end - elsif @do_sort - @items.sort do |x, y| - y <=> x - end - else - @items - end - end - - class ItemBase - include Base - - %w(guid enclosure source categories).each do |element| - attr_reader element - add_other_element(element) - add_need_initialize_variable(element, "make_#{element}") - module_eval(<<-EOC, __FILE__, __LINE__) - private - def setup_#{element}(rss, current) - @#{element}.to_rss(rss, current) - end - - def make_#{element} - self.class::#{Utils.to_class_name(element)}.new(@maker) - end -EOC - end - - %w(title link description date author comments).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - - alias_method(:pubDate, :date) - alias_method(:pubDate=, :date=) - - def <=>(other) - if date and other.date - date <=> other.date - elsif date - 1 - elsif other.date - -1 - else - 0 - end - end - - def current_element(rss) - rss.items.last - end - - class GuidBase - include Base - - %w(isPermaLink content).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - end - - class EnclosureBase - include Base - - %w(url length type).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - end - - class SourceBase - include Base - - %w(url content).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - end - - CategoriesBase = ChannelBase::CategoriesBase - - end - end - - class TextinputBase - include Base - - %w(title description name link).each do |element| - attr_accessor element - add_need_initialize_variable(element) - end - - def current_element(rss) - rss.textinput - end - - end - - end -end diff --git a/ruby_1_8_5/lib/rss/maker/content.rb b/ruby_1_8_5/lib/rss/maker/content.rb deleted file mode 100644 index 18590d0cf8..0000000000 --- a/ruby_1_8_5/lib/rss/maker/content.rb +++ /dev/null @@ -1,29 +0,0 @@ -require 'rss/content' -require 'rss/maker/1.0' - -module RSS - module Maker - module ContentModel - def self.append_features(klass) - super - - ::RSS::ContentModel::ELEMENTS.each do |element| - klass.add_need_initialize_variable(element) - klass.add_other_element(element) - klass.module_eval(<<-EOC, __FILE__, __LINE__+1) - attr_accessor :#{element} - def setup_#{element}(rss, current) - if #{element} and current.respond_to?(:#{element}=) - current.#{element} = @#{element} if @#{element} - end - end - EOC - end - end - end - - class ItemsBase - class ItemBase; include ContentModel; end - end - end -end diff --git a/ruby_1_8_5/lib/rss/maker/dublincore.rb b/ruby_1_8_5/lib/rss/maker/dublincore.rb deleted file mode 100644 index 0cf1255e82..0000000000 --- a/ruby_1_8_5/lib/rss/maker/dublincore.rb +++ /dev/null @@ -1,169 +0,0 @@ -require 'rss/dublincore' -require 'rss/maker/1.0' - -module RSS - module Maker - module DublinCoreModel - def self.append_features(klass) - super - - ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name| - plural_name ||= "#{name}s" - full_name = "#{RSS::DC_PREFIX}_#{name}" - full_plural_name = "#{RSS::DC_PREFIX}_#{plural_name}" - klass_name = Utils.to_class_name(name) - plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}" - full_plural_klass_name = "self.class::#{plural_klass_name}" - full_klass_name = "#{full_plural_klass_name}::#{klass_name}" - klass.add_need_initialize_variable(full_plural_name, - "make_#{full_plural_name}") - klass.add_other_element(full_plural_name) - klass.module_eval(<<-EOC, __FILE__, __LINE__+1) - attr_accessor :#{full_plural_name} - def make_#{full_plural_name} - #{full_plural_klass_name}.new(@maker) - end - - def setup_#{full_plural_name}(rss, current) - @#{full_plural_name}.to_rss(rss, current) - end - - def #{full_name} - @#{full_plural_name}[0] and @#{full_plural_name}[0].value - end - - def #{full_name}=(new_value) - @#{full_plural_name}[0] = #{full_klass_name}.new(self) - @#{full_plural_name}[0].value = new_value - end -EOC - end - end - - ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name| - plural_name ||= "#{name}s" - klass_name = Utils.to_class_name(name) - plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}" - module_eval(<<-EOC, __FILE__, __LINE__) - class #{plural_klass_name}Base - include Base - - def_array_element(#{plural_name.dump}) - - def new_#{name} - #{name} = self.class::#{klass_name}.new(self) - @#{plural_name} << #{name} - if block_given? - yield #{name} - else - #{name} - end - end - - def to_rss(rss, current) - @#{plural_name}.each do |#{name}| - #{name}.to_rss(rss, current) - end - end - - class #{klass_name}Base - include Base - - attr_accessor :value - add_need_initialize_variable("value") - alias_method(:content, :value) - alias_method(:content=, :value=) - - def have_required_values? - @value - end - end - end - EOC - end - - def self.install_dublin_core(klass) - ::RSS::DublinCoreModel::ELEMENT_NAME_INFOS.each do |name, plural_name| - plural_name ||= "#{name}s" - klass_name = Utils.to_class_name(name) - plural_klass_name = "DublinCore#{Utils.to_class_name(plural_name)}" - full_klass_name = "DublinCore#{klass_name}" - klass.module_eval(<<-EOC, *Utils.get_file_and_line_from_caller(1)) - class #{plural_klass_name} < #{plural_klass_name}Base - class #{klass_name} < #{klass_name}Base - def to_rss(rss, current) - if value and current.respond_to?(:dc_#{name}) - new_item = current.class::#{full_klass_name}.new(value) - current.dc_#{plural_name} << new_item - end - end - end - end -EOC - end - end - end - - class ChannelBase - include DublinCoreModel - - remove_method(:date) - remove_method(:date=) - alias_method(:date, :dc_date) - alias_method(:date=, :dc_date=) - end - - class ImageBase; include DublinCoreModel; end - class ItemsBase - class ItemBase - include DublinCoreModel - - remove_method(:date) - remove_method(:date=) - alias_method(:date, :dc_date) - alias_method(:date=, :dc_date=) - end - end - class TextinputBase; include DublinCoreModel; end - - class RSS10 - class Channel - DublinCoreModel.install_dublin_core(self) - end - - class Image - DublinCoreModel.install_dublin_core(self) - end - - class Items - class Item - DublinCoreModel.install_dublin_core(self) - end - end - - class Textinput - DublinCoreModel.install_dublin_core(self) - end - end - - class RSS09 - class Channel - DublinCoreModel.install_dublin_core(self) - end - - class Image - DublinCoreModel.install_dublin_core(self) - end - - class Items - class Item - DublinCoreModel.install_dublin_core(self) - end - end - - class Textinput - DublinCoreModel.install_dublin_core(self) - end - end - end -end diff --git a/ruby_1_8_5/lib/rss/maker/image.rb b/ruby_1_8_5/lib/rss/maker/image.rb deleted file mode 100644 index ed51c8ecba..0000000000 --- a/ruby_1_8_5/lib/rss/maker/image.rb +++ /dev/null @@ -1,145 +0,0 @@ -require 'rss/image' -require 'rss/maker/1.0' -require 'rss/maker/dublincore' - -module RSS - module Maker - module ImageItemModel - def self.append_features(klass) - super - - name = "#{RSS::IMAGE_PREFIX}_item" - klass.add_need_initialize_variable(name, "make_#{name}") - klass.add_other_element(name) - klass.module_eval(<<-EOC, __FILE__, __LINE__+1) - attr_reader :#{name} - def setup_#{name}(rss, current) - if @#{name} - @#{name}.to_rss(rss, current) - end - end - - def make_#{name} - self.class::#{Utils.to_class_name(name)}.new(@maker) - end -EOC - end - - class ImageItemBase - include Base - include Maker::DublinCoreModel - - attr_accessor :about, :resource, :image_width, :image_height - add_need_initialize_variable("about") - add_need_initialize_variable("resource") - add_need_initialize_variable("image_width") - add_need_initialize_variable("image_height") - alias width= image_width= - alias width image_width - alias height= image_height= - alias height image_height - - def have_required_values? - @about - end - end - end - - module ImageFaviconModel - def self.append_features(klass) - super - - name = "#{RSS::IMAGE_PREFIX}_favicon" - klass.add_need_initialize_variable(name, "make_#{name}") - klass.add_other_element(name) - klass.module_eval(<<-EOC, __FILE__, __LINE__+1) - attr_reader :#{name} - def setup_#{name}(rss, current) - if @#{name} - @#{name}.to_rss(rss, current) - end - end - - def make_#{name} - self.class::#{Utils.to_class_name(name)}.new(@maker) - end -EOC - end - - class ImageFaviconBase - include Base - include Maker::DublinCoreModel - - attr_accessor :about, :image_size - add_need_initialize_variable("about") - add_need_initialize_variable("image_size") - alias size image_size - alias size= image_size= - - def have_required_values? - @about and @image_size - end - end - end - - class ChannelBase; include Maker::ImageFaviconModel; end - - class ItemsBase - class ItemBase; include Maker::ImageItemModel; end - end - - class RSS10 - class Items - class Item - class ImageItem < ImageItemBase - DublinCoreModel.install_dublin_core(self) - def to_rss(rss, current) - if @about - item = ::RSS::ImageItemModel::ImageItem.new(@about, @resource) - setup_values(item) - setup_other_elements(item) - current.image_item = item - end - end - end - end - end - - class Channel - class ImageFavicon < ImageFaviconBase - DublinCoreModel.install_dublin_core(self) - def to_rss(rss, current) - if @about and @image_size - args = [@about, @image_size] - favicon = ::RSS::ImageFaviconModel::ImageFavicon.new(*args) - setup_values(favicon) - setup_other_elements(favicon) - current.image_favicon = favicon - end - end - end - end - end - - class RSS09 - class Items - class Item - class ImageItem < ImageItemBase - DublinCoreModel.install_dublin_core(self) - def to_rss(*args) - end - end - end - end - - class Channel - class ImageFavicon < ImageFaviconBase - DublinCoreModel.install_dublin_core(self) - def to_rss(*args) - end - end - end - end - - end -end diff --git a/ruby_1_8_5/lib/rss/maker/syndication.rb b/ruby_1_8_5/lib/rss/maker/syndication.rb deleted file mode 100644 index 3717086257..0000000000 --- a/ruby_1_8_5/lib/rss/maker/syndication.rb +++ /dev/null @@ -1,27 +0,0 @@ -require 'rss/syndication' -require 'rss/maker/1.0' - -module RSS - module Maker - module SyndicationModel - def self.append_features(klass) - super - - ::RSS::SyndicationModel::ELEMENTS.each do |element| - klass.add_need_initialize_variable(element) - klass.add_other_element(element) - klass.module_eval(<<-EOC, __FILE__, __LINE__+1) - attr_accessor :#{element} - def setup_#{element}(rss, current) - if #{element} and current.respond_to?(:#{element}=) - current.#{element} = @#{element} if @#{element} - end - end - EOC - end - end - end - - class ChannelBase; include SyndicationModel; end - end -end diff --git a/ruby_1_8_5/lib/rss/maker/taxonomy.rb b/ruby_1_8_5/lib/rss/maker/taxonomy.rb deleted file mode 100644 index f272996581..0000000000 --- a/ruby_1_8_5/lib/rss/maker/taxonomy.rb +++ /dev/null @@ -1,182 +0,0 @@ -require 'rss/taxonomy' -require 'rss/maker/1.0' -require 'rss/maker/dublincore' - -module RSS - module Maker - module TaxonomyTopicsModel - def self.append_features(klass) - super - - klass.add_need_initialize_variable("taxo_topics", "make_taxo_topics") - klass.add_other_element("taxo_topics") - klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1) - attr_reader :taxo_topics - def make_taxo_topics - self.class::TaxonomyTopics.new(@maker) - end - - def setup_taxo_topics(rss, current) - @taxo_topics.to_rss(rss, current) - end -EOC - end - - def self.install_taxo_topics(klass) - klass.module_eval(<<-EOC, *Utils.get_file_and_line_from_caller(1)) - class TaxonomyTopics < TaxonomyTopicsBase - def to_rss(rss, current) - if current.respond_to?(:taxo_topics) - topics = current.class::TaxonomyTopics.new - bag = topics.Bag - @resources.each do |resource| - bag.lis << RDF::Bag::Li.new(resource) - end - current.taxo_topics = topics - end - end - end -EOC - end - - class TaxonomyTopicsBase - include Base - - attr_reader :resources - def_array_element("resources") - end - end - - module TaxonomyTopicModel - def self.append_features(klass) - super - - klass.add_need_initialize_variable("taxo_topics", "make_taxo_topics") - klass.add_other_element("taxo_topics") - klass.module_eval(<<-EOC, __FILE__, __LINE__ + 1) - attr_reader :taxo_topics - def make_taxo_topics - self.class::TaxonomyTopics.new(@maker) - end - - def setup_taxo_topics(rss, current) - @taxo_topics.to_rss(rss, current) - end - - def taxo_topic - @taxo_topics[0] and @taxo_topics[0].value - end - - def taxo_topic=(new_value) - @taxo_topic[0] = self.class::TaxonomyTopic.new(self) - @taxo_topic[0].value = new_value - end -EOC - end - - def self.install_taxo_topic(klass) - klass.module_eval(<<-EOC, *Utils.get_file_and_line_from_caller(1)) - class TaxonomyTopics < TaxonomyTopicsBase - class TaxonomyTopic < TaxonomyTopicBase - DublinCoreModel.install_dublin_core(self) - TaxonomyTopicsModel.install_taxo_topics(self) - - def to_rss(rss, current) - if current.respond_to?(:taxo_topics) - topic = current.class::TaxonomyTopic.new(value) - topic.taxo_link = value - taxo_topics.to_rss(rss, topic) if taxo_topics - current.taxo_topics << topic - setup_other_elements(rss) - end - end - - def current_element(rss) - super.taxo_topics.last - end - end - end -EOC - end - - class TaxonomyTopicsBase - include Base - - def_array_element("taxo_topics") - - def new_taxo_topic - taxo_topic = self.class::TaxonomyTopic.new(self) - @taxo_topics << taxo_topic - if block_given? - yield taxo_topic - else - taxo_topic - end - end - - def to_rss(rss, current) - @taxo_topics.each do |taxo_topic| - taxo_topic.to_rss(rss, current) - end - end - - class TaxonomyTopicBase - include Base - include DublinCoreModel - include TaxonomyTopicsModel - - attr_accessor :value - add_need_initialize_variable("value") - alias_method(:taxo_link, :value) - alias_method(:taxo_link=, :value=) - - def have_required_values? - @value - end - end - end - end - - class RSSBase - include TaxonomyTopicModel - end - - class ChannelBase - include TaxonomyTopicsModel - end - - class ItemsBase - class ItemBase - include TaxonomyTopicsModel - end - end - - class RSS10 - TaxonomyTopicModel.install_taxo_topic(self) - - class Channel - TaxonomyTopicsModel.install_taxo_topics(self) - end - - class Items - class Item - TaxonomyTopicsModel.install_taxo_topics(self) - end - end - end - - class RSS09 - TaxonomyTopicModel.install_taxo_topic(self) - - class Channel - TaxonomyTopicsModel.install_taxo_topics(self) - end - - class Items - class Item - TaxonomyTopicsModel.install_taxo_topics(self) - end - end - end - end -end diff --git a/ruby_1_8_5/lib/rss/maker/trackback.rb b/ruby_1_8_5/lib/rss/maker/trackback.rb deleted file mode 100644 index 4ae6164f68..0000000000 --- a/ruby_1_8_5/lib/rss/maker/trackback.rb +++ /dev/null @@ -1,130 +0,0 @@ -require 'rss/trackback' -require 'rss/maker/1.0' -require 'rss/maker/2.0' - -module RSS - module Maker - module TrackBackModel - def self.append_features(klass) - super - - name = "#{RSS::TRACKBACK_PREFIX}_ping" - klass.add_need_initialize_variable(name) - klass.add_other_element(name) - klass.module_eval(<<-EOC, __FILE__, __LINE__+1) - attr_accessor :#{name} - def setup_#{name}(rss, current) - if #{name} and current.respond_to?(:#{name}=) - current.#{name} = #{name} - end - end - EOC - - name = "#{RSS::TRACKBACK_PREFIX}_abouts" - klass.add_need_initialize_variable(name, "make_#{name}") - klass.add_other_element(name) - klass.module_eval(<<-EOC, __FILE__, __LINE__+1) - attr_accessor :#{name} - def make_#{name} - self.class::TrackBackAbouts.new(self) - end - - def setup_#{name}(rss, current) - @#{name}.to_rss(rss, current) - end - EOC - end - - class TrackBackAboutsBase - include Base - - def_array_element("abouts") - - def new_about - about = self.class::TrackBackAbout.new(@maker) - @abouts << about - if block_given? - yield about - else - about - end - end - - def to_rss(rss, current) - @abouts.each do |about| - about.to_rss(rss, current) - end - end - - class TrackBackAboutBase - include Base - - attr_accessor :value - add_need_initialize_variable("value") - - alias_method(:resource, :value) - alias_method(:resource=, :value=) - alias_method(:content, :value) - alias_method(:content=, :value=) - - def have_required_values? - @value - end - - end - end - end - - class ItemsBase - class ItemBase; include TrackBackModel; end - end - - class RSS10 - class Items - class Item - class TrackBackAbouts < TrackBackAboutsBase - class TrackBackAbout < TrackBackAboutBase - def to_rss(rss, current) - if resource - about = ::RSS::TrackBackModel10::TrackBackAbout.new(resource) - current.trackback_abouts << about - end - end - end - end - end - end - end - - class RSS09 - class Items - class Item - class TrackBackAbouts < TrackBackAboutsBase - def to_rss(*args) - end - class TrackBackAbout < TrackBackAboutBase - end - end - end - end - end - - class RSS20 - class Items - class Item - class TrackBackAbouts < TrackBackAboutsBase - class TrackBackAbout < TrackBackAboutBase - def to_rss(rss, current) - if content - about = ::RSS::TrackBackModel20::TrackBackAbout.new(content) - current.trackback_abouts << about - end - end - end - end - end - end - end - - end -end |