mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 1b56bcce22
			
		
	
	
		1b56bcce22
		
	
	
	
	
		
			
			- 0.1.9 -> 0.2.0. - supported Slash module. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'rss/1.0'
 | |
| 
 | |
| module RSS
 | |
|   SLASH_PREFIX = 'slash'
 | |
|   SLASH_URI = "http://purl.org/rss/1.0/modules/slash/"
 | |
| 
 | |
|   RDF.install_ns(SLASH_PREFIX, SLASH_URI)
 | |
| 
 | |
|   module SlashModel
 | |
|     extend BaseModel
 | |
| 
 | |
|     ELEMENT_INFOS = \
 | |
|     [
 | |
|      ["section"],
 | |
|      ["department"],
 | |
|      ["comments", :positive_integer],
 | |
|      ["hit_parade", :csv_integer],
 | |
|     ]
 | |
| 
 | |
|     class << self
 | |
|       def append_features(klass)
 | |
|         super
 | |
| 
 | |
|         return if klass.instance_of?(Module)
 | |
|         klass.install_must_call_validator(SLASH_PREFIX, SLASH_URI)
 | |
|         ELEMENT_INFOS.each do |name, type, *additional_infos|
 | |
|           full_name = "#{SLASH_PREFIX}_#{name}"
 | |
|           klass.install_text_element(full_name, SLASH_URI, "?",
 | |
|                                      full_name, type, name)
 | |
|         end
 | |
| 
 | |
|         klass.module_eval do
 | |
|           alias_method(:slash_hit_parades, :slash_hit_parade)
 | |
|           undef_method(:slash_hit_parade)
 | |
|           alias_method(:slash_hit_parade, :slash_hit_parade_content)
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   class RDF
 | |
|     class Item; include SlashModel; end
 | |
|   end
 | |
| 
 | |
|   SlashModel::ELEMENT_INFOS.each do |name, type|
 | |
|     accessor_base = "#{SLASH_PREFIX}_#{name}"
 | |
|     BaseListener.install_get_text_element(SLASH_URI, name, accessor_base)
 | |
|   end
 | |
| end
 |