diff options
Diffstat (limited to 'lib/rss/image.rb')
| -rw-r--r-- | lib/rss/image.rb | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/lib/rss/image.rb b/lib/rss/image.rb deleted file mode 100644 index 4dea91925b..0000000000 --- a/lib/rss/image.rb +++ /dev/null @@ -1,216 +0,0 @@ -require 'rss/1.0' -require 'rss/dublincore' - -module RSS - - IMAGE_PREFIX = 'image' - IMAGE_URI = 'http://web.resource.org/rss/1.0/modules/image/' - - RDF.install_ns(IMAGE_PREFIX, IMAGE_URI) - - module ImageModelUtils - def validate_one_tag_name(name, tags) - invalid = tags.find {|tag| tag != name} - raise UnknownTagError.new(invalid, IMAGE_URI) if invalid - raise TooMuchTagError.new(name, tag_name) if tags.size > 1 - end - end - - module ImageItemModel - include ImageModelUtils - extend BaseModel - - def self.append_features(klass) - super - - klass.install_have_child_element("#{IMAGE_PREFIX}_item") - end - - def image_validate(tags) - validate_one_tag_name("item", tags) - end - - class Item < Element - include RSS10 - include DublinCoreModel - - class << self - def required_prefix - IMAGE_PREFIX - end - - def required_uri - IMAGE_URI - end - end - - [ - ["about", ::RSS::RDF::URI, true], - ["resource", ::RSS::RDF::URI, false], - ].each do |name, uri, required| - install_get_attribute(name, uri, required) - end - - %w(width height).each do |tag| - full_name = "#{IMAGE_PREFIX}_#{tag}" - install_text_element(full_name) - BaseListener.install_get_text_element(IMAGE_URI, tag, "#{full_name}=") - end - - def initialize(about=nil, resource=nil) - super() - @about = about - @resource = resource - end - - def full_name - tag_name_with_prefix(IMAGE_PREFIX) - end - - def to_s(need_convert=true, indent=calc_indent) - rv = tag(indent) do |next_indent| - [ - other_element(false, next_indent), - ] - end - rv = convert(rv) if need_convert - rv - end - - alias _image_width= image_width= - def image_width=(new_value) - if @do_validate - self._image_width = Integer(new_value) - else - self._image_width = new_value.to_i - end - end - - alias _image_height= image_height= - def image_height=(new_value) - if @do_validate - self._image_height = Integer(new_value) - else - self._image_height = new_value.to_i - end - end - - alias width= image_width= - alias width image_width - alias height= image_height= - alias height image_height - - private - def _tags - [ - [IMAGE_URI, 'width'], - [IMAGE_URI, 'height'], - ].delete_if do |uri, name| - send(name).nil? - end - end - - def _attrs - [ - ["#{::RSS::RDF::PREFIX}:about", true, "about"], - ["#{::RSS::RDF::PREFIX}:resource", false, "resource"], - ] - end - - def maker_target(target) - target.image_item - end - - def setup_maker_attributes(item) - item.about = self.about - item.resource = self.resource - end - end - end - - module ImageFaviconModel - include ImageModelUtils - extend BaseModel - - def self.append_features(klass) - super - - unless klass.class == Module - klass.install_have_child_element("#{IMAGE_PREFIX}_favicon") - end - end - - def image_validate(tags) - validate_one_tag_name("favicon", tags) - end - - class Favicon < Element - include RSS10 - include DublinCoreModel - - class << self - def required_prefix - IMAGE_PREFIX - end - - def required_uri - IMAGE_URI - end - end - - [ - ["about", ::RSS::RDF::URI, true], - ["size", IMAGE_URI, true], - ].each do |name, uri, required| - install_get_attribute(name, uri, required) - end - - alias image_size= size= - alias image_size size - - def initialize(about=nil, size=nil) - super() - @about = about - @size = size - end - - def full_name - tag_name_with_prefix(IMAGE_PREFIX) - end - - def to_s(need_convert=true, indent=calc_indent) - rv = tag(indent) do |next_indent| - [ - other_element(false, next_indent), - ] - end - rv = convert(rv) if need_convert - rv - end - - private - def _attrs - [ - ["#{::RSS::RDF::PREFIX}:about", true, "about"], - ["#{IMAGE_PREFIX}:size", true, "size"], - ] - end - - def maker_target(target) - target.image_favicon - end - - def setup_maker_attributes(favicon) - favicon.about = self.about - favicon.size = self.size - end - end - - end - - class RDF - class Channel; include ImageFaviconModel; end - class Item; include ImageItemModel; end - end - -end |
