22# Name:: Automatic::Plugin::Store::Database
33# Author:: kzgs
44# 774 <http://id774.net>
5+ # soramugi <http://soramugi.net>
56# Created:: Feb 27, 2012
6- # Updated:: Sep 18 , 2012
7+ # Updated:: Dec 13 , 2012
78# Copyright:: kzgs Copyright (c) 2012
89# License:: Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
910
1011require 'active_record'
12+ require 'rss'
1113
1214module Automatic ::Plugin
1315 module Database
@@ -17,23 +19,46 @@ def for_each_new_feed
1719 @return_feeds = [ ]
1820 @pipeline . each { |feeds |
1921 unless feeds . nil?
20- new_feed = false
22+ new_feeds = [ ]
2123 feeds . items . each { |feed |
2224 unless feed . link . nil?
2325 unless existing_records . detect { |b | b . try ( unique_key ) == feed . link }
2426 yield ( feed )
25- new_feed = true
27+ new_feeds << feed
2628 end
2729 end
2830 }
29- @return_feeds << feeds if new_feed
31+ @return_feeds << create_rss ( new_feeds )
3032 end
3133 }
3234 @return_feeds
3335 end
3436
3537 private
3638
39+ def create_rss ( feeds )
40+ RSS ::Maker . make ( "2.0" ) { |maker |
41+ xss = maker . xml_stylesheets . new_xml_stylesheet
42+ xss . href = "http://www.rssboard.org/rss-specification"
43+ maker . channel . about = "http://feeds.rssboard.org/rssboard"
44+ maker . channel . title = "Automatic Ruby"
45+ maker . channel . description = "Automatic Ruby"
46+ maker . channel . link = "http://www.rssboard.org/rss-specification"
47+ maker . items . do_sort = true
48+ unless feeds . nil?
49+ feeds . each { |feed |
50+ unless feed . link . nil?
51+ item = maker . items . new_item
52+ item . title = feed . title
53+ item . link = feed . link
54+ item . date = Time . now
55+ item . description = "Automatic::Plugin::Store::Database"
56+ end
57+ }
58+ end
59+ }
60+ end
61+
3762 def create_table
3863 ActiveRecord ::Migration . create_table ( model_class . table_name ) { |t |
3964 column_definition . each_pair { |column_name , column_type |
0 commit comments