automatic 12.10.0 → 13.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/automatic.gemspec +2 -2
- data/bin/automatic-config +3 -3
- data/doc/AUTHORS +1 -0
- data/doc/ChangeLog +11 -0
- data/doc/PLUGINS +3 -0
- data/doc/PLUGINS.ja +3 -0
- data/lib/automatic.rb +2 -2
- data/lib/automatic/feed_parser.rb +55 -2
- data/plugins/notify/ikachan.rb +1 -1
- data/plugins/publish/google_calendar.rb +2 -2
- data/plugins/publish/hatena_bookmark.rb +2 -2
- data/plugins/store/database.rb +10 -9
- data/plugins/store/full_text.rb +1 -1
- data/plugins/store/target_link.rb +7 -7
- data/plugins/subscription/feed.rb +1 -2
- data/plugins/subscription/link.rb +3 -20
- data/plugins/subscription/tumblr.rb +3 -22
- data/plugins/subscription/twitter.rb +2 -1
- data/spec/lib/automatic_spec.rb +2 -2
- data/spec/plugins/custom_feed/svn_log_spec.rb +2 -2
- data/spec/plugins/store/permalink_spec.rb +118 -5
- data/spec/plugins/subscription/link_spec.rb +3 -2
- data/spec/plugins/subscription/tumblr_spec.rb +4 -3
- data/spec/plugins/subscription/twitter_spec.rb +3 -2
- data/test/integration/test_svnlog.yml +1 -1
- metadata +2 -2
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
             | 
| 1 | 
            +
            13.1.0
         | 
    
        data/automatic.gemspec
    CHANGED
    
    | @@ -5,11 +5,11 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = "automatic"
         | 
| 8 | 
            -
              s.version = " | 
| 8 | 
            +
              s.version = "13.1.0"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.authors = ["id774"]
         | 
| 12 | 
            -
              s.date = " | 
| 12 | 
            +
              s.date = "2013-01-08"
         | 
| 13 13 | 
             
              s.description = "Ruby General Automation Framework"
         | 
| 14 14 | 
             
              s.email = "idnanashi@gmail.com"
         | 
| 15 15 | 
             
              s.executables = ["automatic", "automatic-config"]
         | 
    
        data/bin/automatic-config
    CHANGED
    
    | @@ -4,7 +4,7 @@ | |
| 4 4 | 
             
            # Author::    kzgs
         | 
| 5 5 | 
             
            #             774 <http://id774.net>
         | 
| 6 6 | 
             
            # Created::   Mar 11, 2012
         | 
| 7 | 
            -
            # Updated::    | 
| 7 | 
            +
            # Updated::   Dec 20, 2012
         | 
| 8 8 | 
             
            # Copyright:: kzgs Copyright (c) 2012
         | 
| 9 9 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 10 10 |  | 
| @@ -62,7 +62,7 @@ subparsers = { | |
| 62 62 | 
             
              'feedparser' => lambda { |argv|
         | 
| 63 63 | 
             
                require 'automatic/feed_parser'
         | 
| 64 64 | 
             
                url = argv.shift || abort_with_usage("feedparser", "<url>")
         | 
| 65 | 
            -
                rss_results = Automatic::FeedParser. | 
| 65 | 
            +
                rss_results = Automatic::FeedParser.get(url)
         | 
| 66 66 | 
             
                pp rss_results
         | 
| 67 67 | 
             
              },
         | 
| 68 68 | 
             
              'inspect' => lambda { |argv|
         | 
| @@ -70,7 +70,7 @@ subparsers = { | |
| 70 70 | 
             
                url = argv.shift || abort_with_usage("inspect", "<url>")
         | 
| 71 71 | 
             
                feeds = Feedbag.find(url)
         | 
| 72 72 | 
             
                pp feeds
         | 
| 73 | 
            -
                rss_results = Automatic::FeedParser. | 
| 73 | 
            +
                rss_results = Automatic::FeedParser.get(feeds.pop)
         | 
| 74 74 | 
             
                pp rss_results
         | 
| 75 75 | 
             
              },
         | 
| 76 76 | 
             
              'opmlparser' => lambda { |argv|
         | 
    
        data/doc/AUTHORS
    CHANGED
    
    
    
        data/doc/ChangeLog
    CHANGED
    
    
    
        data/doc/PLUGINS
    CHANGED
    
    | @@ -32,6 +32,7 @@ SubscriptionLink | |
| 32 32 | 
             
                  urls:
         | 
| 33 33 | 
             
                    - URL
         | 
| 34 34 | 
             
                    - URL ...
         | 
| 35 | 
            +
                  interval: INTERVAL_FOR_SCRAPING (in seconds.)
         | 
| 35 36 |  | 
| 36 37 |  | 
| 37 38 | 
             
            SubscriptionTwitter
         | 
| @@ -48,6 +49,7 @@ SubscriptionTwitter | |
| 48 49 | 
             
                  urls:
         | 
| 49 50 | 
             
                    - URL
         | 
| 50 51 | 
             
                    - URL ...
         | 
| 52 | 
            +
                  interval: INTERVAL_FOR_SCRAPING (in seconds.)
         | 
| 51 53 |  | 
| 52 54 |  | 
| 53 55 | 
             
            SubscriptionTumblr
         | 
| @@ -66,6 +68,7 @@ SubscriptionTumblr | |
| 66 68 | 
             
                    - URL
         | 
| 67 69 | 
             
                    - URL ...
         | 
| 68 70 | 
             
                  pages: PAGES
         | 
| 71 | 
            +
                  interval: INTERVAL_FOR_SCRAPING (in seconds.)
         | 
| 69 72 |  | 
| 70 73 |  | 
| 71 74 | 
             
            FilterReverse
         | 
    
        data/doc/PLUGINS.ja
    CHANGED
    
    | @@ -32,6 +32,7 @@ SubscriptionLink | |
| 32 32 | 
             
                  urls:
         | 
| 33 33 | 
             
                    - URL
         | 
| 34 34 | 
             
                    - URL ...
         | 
| 35 | 
            +
                  interval: スクレイピングの間隔 (秒数, 省略可)
         | 
| 35 36 |  | 
| 36 37 |  | 
| 37 38 | 
             
            SubscriptionTwitter
         | 
| @@ -48,6 +49,7 @@ SubscriptionTwitter | |
| 48 49 | 
             
                  urls:
         | 
| 49 50 | 
             
                    - URL
         | 
| 50 51 | 
             
                    - URL ...
         | 
| 52 | 
            +
                  interval: スクレイピングの間隔 (秒数, 省略可)
         | 
| 51 53 |  | 
| 52 54 |  | 
| 53 55 | 
             
            SubscriptionTumblr
         | 
| @@ -66,6 +68,7 @@ SubscriptionTumblr | |
| 66 68 | 
             
                    - URL
         | 
| 67 69 | 
             
                    - URL ...
         | 
| 68 70 | 
             
                  pages: PAGES
         | 
| 71 | 
            +
                  interval: スクレイピングの間隔 (秒数, 省略可)
         | 
| 69 72 |  | 
| 70 73 |  | 
| 71 74 | 
             
            FilterReverse
         | 
    
        data/lib/automatic.rb
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Ruby
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 4 | 
             
            # Created::   Feb 18, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 6 6 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| @@ -13,7 +13,7 @@ module Automatic | |
| 13 13 | 
             
              require 'automatic/log'
         | 
| 14 14 | 
             
              require 'automatic/feed_parser'
         | 
| 15 15 |  | 
| 16 | 
            -
              VERSION = " | 
| 16 | 
            +
              VERSION = "13.1.0"
         | 
| 17 17 | 
             
              USER_DIR = "/.automatic"
         | 
| 18 18 |  | 
| 19 19 | 
             
              class << self
         | 
| @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            # Name::      Automatic::FeedParser
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 4 | 
             
            # Created::   Feb 19, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 6 6 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| @@ -10,10 +10,12 @@ module Automatic | |
| 10 10 | 
             
              module FeedParser
         | 
| 11 11 | 
             
                require 'rss'
         | 
| 12 12 | 
             
                require 'uri'
         | 
| 13 | 
            +
                require 'nokogiri'
         | 
| 13 14 |  | 
| 14 | 
            -
                def self. | 
| 15 | 
            +
                def self.get(url)
         | 
| 15 16 | 
             
                  begin
         | 
| 16 17 | 
             
                    unless url.nil?
         | 
| 18 | 
            +
                      Automatic::Log.puts("info", "Parsing: #{url}")
         | 
| 17 19 | 
             
                      feed = URI.parse(url).normalize
         | 
| 18 20 | 
             
                      open(feed) {|http|
         | 
| 19 21 | 
             
                        response = http.read
         | 
| @@ -24,5 +26,56 @@ module Automatic | |
| 24 26 | 
             
                    raise e
         | 
| 25 27 | 
             
                  end
         | 
| 26 28 | 
             
                end
         | 
| 29 | 
            +
             | 
| 30 | 
            +
                def self.create(feeds = [])
         | 
| 31 | 
            +
                  RSS::Maker.make("2.0") {|maker|
         | 
| 32 | 
            +
                    xss = maker.xml_stylesheets.new_xml_stylesheet
         | 
| 33 | 
            +
                    maker.channel.title = "Automatic Ruby"
         | 
| 34 | 
            +
                    maker.channel.description = "Automatic Ruby"
         | 
| 35 | 
            +
                    maker.channel.link = "https://github.com/id774/automaticruby"
         | 
| 36 | 
            +
                    maker.items.do_sort = true
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                    unless feeds.nil?
         | 
| 39 | 
            +
                      feeds.each {|feed|
         | 
| 40 | 
            +
                        unless feed.link.nil?
         | 
| 41 | 
            +
                          Automatic::Log.puts("info", "Creating: #{feed.link}")
         | 
| 42 | 
            +
                          item = maker.items.new_item
         | 
| 43 | 
            +
                          item.title = feed.title
         | 
| 44 | 
            +
                          item.link = feed.link
         | 
| 45 | 
            +
                          begin
         | 
| 46 | 
            +
                            item.description = feed.description
         | 
| 47 | 
            +
                            item.author = feed.author
         | 
| 48 | 
            +
                            item.comments = feed.comments
         | 
| 49 | 
            +
                            item.date = feed.pubDate || Time.now
         | 
| 50 | 
            +
                          rescue NoMethodError
         | 
| 51 | 
            +
                            Automatic::Log.puts("warn", "Undefined field detected in feed.")
         | 
| 52 | 
            +
                          end
         | 
| 53 | 
            +
                        end
         | 
| 54 | 
            +
                      }
         | 
| 55 | 
            +
                    end
         | 
| 56 | 
            +
                  }
         | 
| 57 | 
            +
                end
         | 
| 58 | 
            +
             | 
| 59 | 
            +
                def self.parse(html)
         | 
| 60 | 
            +
                  RSS::Maker.make("2.0") {|maker|
         | 
| 61 | 
            +
                    xss = maker.xml_stylesheets.new_xml_stylesheet
         | 
| 62 | 
            +
                    maker.channel.title = "Automatic Ruby"
         | 
| 63 | 
            +
                    maker.channel.description = "Automatic Ruby"
         | 
| 64 | 
            +
                    maker.channel.link = "https://github.com/id774/automaticruby"
         | 
| 65 | 
            +
                    maker.items.do_sort = true
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                    doc = Nokogiri::HTML(html)
         | 
| 68 | 
            +
                    (doc/:a).each {|link|
         | 
| 69 | 
            +
                      unless link[:href].nil?
         | 
| 70 | 
            +
                        item = maker.items.new_item
         | 
| 71 | 
            +
                        item.title = "Automatic Ruby"
         | 
| 72 | 
            +
                        item.link = link[:href]
         | 
| 73 | 
            +
                        item.date = Time.now
         | 
| 74 | 
            +
                        item.description = ""
         | 
| 75 | 
            +
                      end
         | 
| 76 | 
            +
                    }
         | 
| 77 | 
            +
                  }
         | 
| 78 | 
            +
                end
         | 
| 79 | 
            +
             | 
| 27 80 | 
             
              end
         | 
| 28 81 | 
             
            end
         | 
    
        data/plugins/notify/ikachan.rb
    CHANGED
    
    | @@ -75,7 +75,7 @@ module Automatic::Plugin | |
| 75 75 | 
             
                      feeds.items.each {|feed|
         | 
| 76 76 | 
             
                        Automatic::Log.puts("info", %Q(Ikachan: [#{feed.link}] sending with params #{ikachan.params.to_s}...))
         | 
| 77 77 | 
             
                        ikachan.post(feed.link, feed.title)
         | 
| 78 | 
            -
                        sleep @config['interval'].to_i
         | 
| 78 | 
            +
                        sleep @config['interval'].to_i unless @config['interval'].nil?
         | 
| 79 79 | 
             
                      }
         | 
| 80 80 | 
             
                    end
         | 
| 81 81 | 
             
                  }
         | 
| @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Plugin::Publish::Googlecalendar
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 4 | 
             
            # Created::   Feb 24, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 6 6 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| @@ -74,7 +74,7 @@ module Automatic::Plugin | |
| 74 74 | 
             
                    unless feeds.nil?
         | 
| 75 75 | 
             
                      feeds.items.each {|feed|
         | 
| 76 76 | 
             
                        @gc.add('今日 ' + feed.title)
         | 
| 77 | 
            -
                        sleep @config['interval'].to_i
         | 
| 77 | 
            +
                        sleep @config['interval'].to_i unless @config['interval'].nil?
         | 
| 78 78 | 
             
                      }
         | 
| 79 79 | 
             
                    end
         | 
| 80 80 | 
             
                  }
         | 
| @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Plugin::Publish::HatenaBookmark
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 4 | 
             
            # Created::   Feb 22, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 6 6 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| @@ -89,7 +89,7 @@ module Automatic::Plugin | |
| 89 89 | 
             
                      feeds.items.each {|feed|
         | 
| 90 90 | 
             
                        Automatic::Log.puts("info", "Bookmarking: #{feed.link}")
         | 
| 91 91 | 
             
                        hb.post(feed.link, nil)
         | 
| 92 | 
            -
                        sleep @config['interval'].to_i
         | 
| 92 | 
            +
                        sleep @config['interval'].to_i unless @config['interval'].nil?
         | 
| 93 93 | 
             
                      }
         | 
| 94 94 | 
             
                    end
         | 
| 95 95 | 
             
                  }
         | 
    
        data/plugins/store/database.rb
    CHANGED
    
    | @@ -2,8 +2,9 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Plugin::Store::Database
         | 
| 3 3 | 
             
            # Author::    kzgs
         | 
| 4 4 | 
             
            #             774 <http://id774.net>
         | 
| 5 | 
            +
            #             soramugi <http://soramugi.net>
         | 
| 5 6 | 
             
            # Created::   Feb 27, 2012
         | 
| 6 | 
            -
            # Updated::    | 
| 7 | 
            +
            # Updated::   Dec 20, 2012
         | 
| 7 8 | 
             
            # Copyright:: kzgs Copyright (c) 2012
         | 
| 8 9 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 9 10 |  | 
| @@ -15,18 +16,18 @@ module Automatic::Plugin | |
| 15 16 | 
             
                  prepare_database
         | 
| 16 17 | 
             
                  existing_records = model_class.find(:all)
         | 
| 17 18 | 
             
                  @return_feeds = []
         | 
| 18 | 
            -
                  @pipeline.each { | 
| 19 | 
            +
                  @pipeline.each {|feeds|
         | 
| 19 20 | 
             
                    unless feeds.nil?
         | 
| 20 | 
            -
                       | 
| 21 | 
            -
                      feeds.items.each { | 
| 21 | 
            +
                      new_feeds = []
         | 
| 22 | 
            +
                      feeds.items.each {|feed|
         | 
| 22 23 | 
             
                        unless feed.link.nil?
         | 
| 23 | 
            -
                          unless existing_records.detect { | 
| 24 | 
            +
                          unless existing_records.detect {|b| b.try(unique_key) == feed.link }
         | 
| 24 25 | 
             
                            yield(feed)
         | 
| 25 | 
            -
                             | 
| 26 | 
            +
                            new_feeds << feed
         | 
| 26 27 | 
             
                          end
         | 
| 27 28 | 
             
                        end
         | 
| 28 29 | 
             
                      }
         | 
| 29 | 
            -
                      @return_feeds <<  | 
| 30 | 
            +
                      @return_feeds << Automatic::FeedParser.create(new_feeds) if new_feeds.length > 0
         | 
| 30 31 | 
             
                    end
         | 
| 31 32 | 
             
                  }
         | 
| 32 33 | 
             
                  @return_feeds
         | 
| @@ -35,8 +36,8 @@ module Automatic::Plugin | |
| 35 36 | 
             
                private
         | 
| 36 37 |  | 
| 37 38 | 
             
                def create_table
         | 
| 38 | 
            -
                  ActiveRecord::Migration.create_table(model_class.table_name) { | 
| 39 | 
            -
                    column_definition.each_pair { | 
| 39 | 
            +
                  ActiveRecord::Migration.create_table(model_class.table_name) {|t|
         | 
| 40 | 
            +
                    column_definition.each_pair {|column_name, column_type|
         | 
| 40 41 | 
             
                      t.column column_name, column_type
         | 
| 41 42 | 
             
                    }
         | 
| 42 43 | 
             
                  }
         | 
    
        data/plugins/store/full_text.rb
    CHANGED
    
    | @@ -40,6 +40,7 @@ module Automatic::Plugin | |
| 40 40 |  | 
| 41 41 | 
             
                def run
         | 
| 42 42 | 
             
                  for_each_new_feed { |feed|
         | 
| 43 | 
            +
                    Automatic::Log.puts("info", "Saving: #{feed.link}")
         | 
| 43 44 | 
             
                    begin
         | 
| 44 45 | 
             
                      Blog.create(
         | 
| 45 46 | 
             
                        :title => feed.title,
         | 
| @@ -47,7 +48,6 @@ module Automatic::Plugin | |
| 47 48 | 
             
                        :description => feed.description,
         | 
| 48 49 | 
             
                        :content => feed.content_encoded,
         | 
| 49 50 | 
             
                        :created_at => Time.now.strftime("%Y/%m/%d %X"))
         | 
| 50 | 
            -
                      Automatic::Log.puts("info", "Saving: #{feed.link}")
         | 
| 51 51 | 
             
                    rescue
         | 
| 52 52 | 
             
                      Automatic::Log.puts("warn", "Skip feed due to fault in save.")
         | 
| 53 53 | 
             
                    end
         | 
| @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            # Name::      Automatic::Plugin::Store::TargetLink
         | 
| 4 4 | 
             
            # Author::    774 <http://id774.net>
         | 
| 5 5 | 
             
            # Created::   Feb 28, 2012
         | 
| 6 | 
            -
            # Updated::    | 
| 6 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 7 7 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 8 8 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 9 9 |  | 
| @@ -30,14 +30,14 @@ module Automatic::Plugin | |
| 30 30 | 
             
                  @pipeline.each {|feeds|
         | 
| 31 31 | 
             
                    unless feeds.nil?
         | 
| 32 32 | 
             
                      feeds.items.each {|feed|
         | 
| 33 | 
            -
                         | 
| 34 | 
            -
                           | 
| 35 | 
            -
             | 
| 33 | 
            +
                        unless feed.link.nil?
         | 
| 34 | 
            +
                          Automatic::Log.puts("info", "Downloading: #{feed.link}")
         | 
| 35 | 
            +
                          begin
         | 
| 36 36 | 
             
                            wget(feed.link)
         | 
| 37 | 
            -
                            sleep @config['interval'].to_i
         | 
| 37 | 
            +
                            sleep @config['interval'].to_i unless @config['interval'].nil?
         | 
| 38 | 
            +
                          rescue
         | 
| 39 | 
            +
                            Automatic::Log.puts("error", "Error found during file download.")
         | 
| 38 40 | 
             
                          end
         | 
| 39 | 
            -
                        rescue
         | 
| 40 | 
            -
                          Automatic::Log.puts("error", "Error found during file download.")
         | 
| 41 41 | 
             
                        end
         | 
| 42 42 | 
             
                      }
         | 
| 43 43 | 
             
                    end
         | 
| @@ -16,8 +16,7 @@ module Automatic::Plugin | |
| 16 16 | 
             
                def run
         | 
| 17 17 | 
             
                  @config['feeds'].each {|feed|
         | 
| 18 18 | 
             
                    begin
         | 
| 19 | 
            -
                      Automatic:: | 
| 20 | 
            -
                      rss = Automatic::FeedParser.get_rss(feed)
         | 
| 19 | 
            +
                      rss = Automatic::FeedParser.get(feed)
         | 
| 21 20 | 
             
                      @pipeline << rss
         | 
| 22 21 | 
             
                    rescue
         | 
| 23 22 | 
             
                      Automatic::Log.puts("error", "Fault in parsing: #{feed}")
         | 
| @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Plugin::Subscription::Link
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 4 | 
             
            # Created::   Sep 18, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 6 6 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| @@ -21,25 +21,8 @@ module Automatic::Plugin | |
| 21 21 | 
             
                  Automatic::Log.puts("info", "Parsing: #{url}")
         | 
| 22 22 | 
             
                  html = open(url).read
         | 
| 23 23 | 
             
                  unless html.nil?
         | 
| 24 | 
            -
                    rss =  | 
| 25 | 
            -
             | 
| 26 | 
            -
                      xss.href = "http://www.rssboard.org/rss-specification"
         | 
| 27 | 
            -
                      maker.channel.about = "http://feeds.rssboard.org/rssboard"
         | 
| 28 | 
            -
                      maker.channel.title = "Automatic Ruby"
         | 
| 29 | 
            -
                      maker.channel.description = "Automatic Ruby"
         | 
| 30 | 
            -
                      maker.channel.link = "http://www.rssboard.org/rss-specification"
         | 
| 31 | 
            -
                      maker.items.do_sort = true
         | 
| 32 | 
            -
                      doc = Nokogiri::HTML(html)
         | 
| 33 | 
            -
                      (doc/:a).each {|link|
         | 
| 34 | 
            -
                        unless link[:href].nil?
         | 
| 35 | 
            -
                          item = maker.items.new_item
         | 
| 36 | 
            -
                          item.title = "Automatic Ruby"
         | 
| 37 | 
            -
                          item.link = link[:href]
         | 
| 38 | 
            -
                          item.date = Time.now
         | 
| 39 | 
            -
                          item.description = "Automatic::Plugin::Subscription::Link"
         | 
| 40 | 
            -
                        end
         | 
| 41 | 
            -
                      }
         | 
| 42 | 
            -
                    }
         | 
| 24 | 
            +
                    rss = Automatic::FeedParser.parse(html)
         | 
| 25 | 
            +
                    sleep @config['interval'].to_i unless @config['interval'].nil?
         | 
| 43 26 | 
             
                    @return_feeds << rss
         | 
| 44 27 | 
             
                  end
         | 
| 45 28 | 
             
                end
         | 
| @@ -2,15 +2,13 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Plugin::Subscription::Tumblr
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 4 | 
             
            # Created::   Oct 16, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 6 6 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| 9 9 | 
             
            module Automatic::Plugin
         | 
| 10 10 | 
             
              class SubscriptionTumblr
         | 
| 11 11 | 
             
                require 'open-uri'
         | 
| 12 | 
            -
                require 'nokogiri'
         | 
| 13 | 
            -
                require 'rss'
         | 
| 14 12 |  | 
| 15 13 | 
             
                def initialize(config, pipeline=[])
         | 
| 16 14 | 
             
                  @config = config
         | 
| @@ -21,25 +19,8 @@ module Automatic::Plugin | |
| 21 19 | 
             
                  Automatic::Log.puts("info", "Parsing: #{url}")
         | 
| 22 20 | 
             
                  html = open(url).read
         | 
| 23 21 | 
             
                  unless html.nil?
         | 
| 24 | 
            -
                    rss =  | 
| 25 | 
            -
             | 
| 26 | 
            -
                      xss.href = "http://www.rssboard.org/rss-specification"
         | 
| 27 | 
            -
                      maker.channel.about = "http://feeds.rssboard.org/rssboard"
         | 
| 28 | 
            -
                      maker.channel.title = "Automatic Ruby"
         | 
| 29 | 
            -
                      maker.channel.description = "Automatic Ruby"
         | 
| 30 | 
            -
                      maker.channel.link = "http://www.rssboard.org/rss-specification"
         | 
| 31 | 
            -
                      maker.items.do_sort = true
         | 
| 32 | 
            -
                      doc = Nokogiri::HTML(html)
         | 
| 33 | 
            -
                      (doc/:a).each {|link|
         | 
| 34 | 
            -
                        unless link[:href].nil?
         | 
| 35 | 
            -
                          item = maker.items.new_item
         | 
| 36 | 
            -
                          item.title = "Automatic Ruby"
         | 
| 37 | 
            -
                          item.link = link[:href]
         | 
| 38 | 
            -
                          item.date = Time.now
         | 
| 39 | 
            -
                          item.description = "Automatic::Plugin::Subscription::Link"
         | 
| 40 | 
            -
                        end
         | 
| 41 | 
            -
                      }
         | 
| 42 | 
            -
                    }
         | 
| 22 | 
            +
                    rss = Automatic::FeedParser.parse(html)
         | 
| 23 | 
            +
                    sleep @config['interval'].to_i unless @config['interval'].nil?
         | 
| 43 24 | 
             
                    @return_feeds << rss
         | 
| 44 25 | 
             
                  end
         | 
| 45 26 | 
             
                end
         | 
| @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Plugin::Subscription::Twitter
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 4 | 
             
            # Created::   Sep  9, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 6 6 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| @@ -42,6 +42,7 @@ module Automatic::Plugin | |
| 42 42 | 
             
                        item.description = content.search('[@class="js-tweet-text"]').text.to_s
         | 
| 43 43 | 
             
                      }
         | 
| 44 44 | 
             
                    }
         | 
| 45 | 
            +
                    sleep @config['interval'].to_i unless @config['interval'].nil?
         | 
| 45 46 | 
             
                    @return_feeds << rss
         | 
| 46 47 | 
             
                  end
         | 
| 47 48 | 
             
                end
         | 
    
        data/spec/lib/automatic_spec.rb
    CHANGED
    
    | @@ -3,7 +3,7 @@ | |
| 3 3 | 
             
            # Author::    kzgs
         | 
| 4 4 | 
             
            #             774 <http://id774.net>
         | 
| 5 5 | 
             
            # Created::   Mar  9, 2012
         | 
| 6 | 
            -
            # Updated::    | 
| 6 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 7 7 | 
             
            # Copyright:: kzgs Copyright (c) 2012
         | 
| 8 8 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 9 9 |  | 
| @@ -26,7 +26,7 @@ describe Automatic do | |
| 26 26 |  | 
| 27 27 | 
             
              describe "#version" do
         | 
| 28 28 | 
             
                specify {
         | 
| 29 | 
            -
                  Automatic.const_get(:VERSION).should == " | 
| 29 | 
            +
                  Automatic.const_get(:VERSION).should == "13.1.0"
         | 
| 30 30 | 
             
                }
         | 
| 31 31 | 
             
              end
         | 
| 32 32 |  | 
| @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Plugin::CustomFeed::SVNFLog
         | 
| 3 3 | 
             
            # Author::    kzgs
         | 
| 4 4 | 
             
            # Created::   Feb 29, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Nov  3, 2012
         | 
| 6 6 | 
             
            # Copyright:: kzgs Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| @@ -15,7 +15,7 @@ describe Automatic::Plugin::CustomFeedSVNLog do | |
| 15 15 | 
             
                subject {
         | 
| 16 16 | 
             
                  Automatic::Plugin::CustomFeedSVNLog.new(
         | 
| 17 17 | 
             
                    {
         | 
| 18 | 
            -
                      'target' => 'http:// | 
| 18 | 
            +
                      'target' => 'http://svn.apache.org/repos/asf/',
         | 
| 19 19 | 
             
                      'fetch_items' => 2
         | 
| 20 20 | 
             
                    })
         | 
| 21 21 | 
             
                }
         | 
| @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            # -*- coding: utf-8 -*-
         | 
| 2 2 | 
             
            # Name::      Automatic::Plugin::Store::Permalink
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 | 
            -
            # Updated::    | 
| 4 | 
            +
            # Updated::   Dec 17, 2012
         | 
| 5 5 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 6 6 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 7 7 |  | 
| @@ -11,14 +11,11 @@ require 'store/permalink' | |
| 11 11 | 
             
            require 'pathname'
         | 
| 12 12 |  | 
| 13 13 | 
             
            describe Automatic::Plugin::StorePermalink do
         | 
| 14 | 
            -
               | 
| 14 | 
            +
              it "should store 1 record for the new link" do
         | 
| 15 15 | 
             
                @db_filename = "test_permalink.db"
         | 
| 16 16 | 
             
                db_path = Pathname(AutomaticSpec.db_dir).cleanpath+"#{@db_filename}"
         | 
| 17 17 | 
             
                db_path.delete if db_path.exist?
         | 
| 18 18 | 
             
                Automatic::Plugin::StorePermalink.new({"db" => @db_filename}).run
         | 
| 19 | 
            -
              end
         | 
| 20 | 
            -
             | 
| 21 | 
            -
              it "should store 1 record for the new link" do
         | 
| 22 19 | 
             
                instance = Automatic::Plugin::StorePermalink.new({"db" => @db_filename},
         | 
| 23 20 | 
             
                  AutomaticSpec.generate_pipeline {
         | 
| 24 21 | 
             
                    feed { item "http://github.com" }
         | 
| @@ -30,6 +27,10 @@ describe Automatic::Plugin::StorePermalink do | |
| 30 27 | 
             
              end
         | 
| 31 28 |  | 
| 32 29 | 
             
              it "should not store record for the existent link" do
         | 
| 30 | 
            +
                @db_filename = "test_permalink.db"
         | 
| 31 | 
            +
                db_path = Pathname(AutomaticSpec.db_dir).cleanpath+"#{@db_filename}"
         | 
| 32 | 
            +
                db_path.delete if db_path.exist?
         | 
| 33 | 
            +
                Automatic::Plugin::StorePermalink.new({"db" => @db_filename}).run
         | 
| 33 34 | 
             
                instance = Automatic::Plugin::StorePermalink.new({"db" => @db_filename},
         | 
| 34 35 | 
             
                  AutomaticSpec.generate_pipeline {
         | 
| 35 36 | 
             
                    feed { item "http://github.com" }
         | 
| @@ -43,6 +44,10 @@ describe Automatic::Plugin::StorePermalink do | |
| 43 44 | 
             
              end
         | 
| 44 45 |  | 
| 45 46 | 
             
              it "should be considered the case of the feed link nil" do
         | 
| 47 | 
            +
                @db_filename = "test_permalink.db"
         | 
| 48 | 
            +
                db_path = Pathname(AutomaticSpec.db_dir).cleanpath+"#{@db_filename}"
         | 
| 49 | 
            +
                db_path.delete if db_path.exist?
         | 
| 50 | 
            +
                Automatic::Plugin::StorePermalink.new({"db" => @db_filename}).run
         | 
| 46 51 | 
             
                instance = Automatic::Plugin::StorePermalink.new({"db" => @db_filename},
         | 
| 47 52 | 
             
                  AutomaticSpec.generate_pipeline {
         | 
| 48 53 | 
             
                    feed {
         | 
| @@ -68,6 +73,39 @@ describe Automatic::Plugin::StorePermalink do | |
| 68 73 | 
             
              end
         | 
| 69 74 |  | 
| 70 75 | 
             
              it "should be considered the case of duplicated links" do
         | 
| 76 | 
            +
                @db_filename = "test_permalink.db"
         | 
| 77 | 
            +
                db_path = Pathname(AutomaticSpec.db_dir).cleanpath+"#{@db_filename}"
         | 
| 78 | 
            +
                db_path.delete if db_path.exist?
         | 
| 79 | 
            +
                Automatic::Plugin::StorePermalink.new({"db" => @db_filename}).run
         | 
| 80 | 
            +
                instance = Automatic::Plugin::StorePermalink.new({"db" => @db_filename},
         | 
| 81 | 
            +
                  AutomaticSpec.generate_pipeline {
         | 
| 82 | 
            +
                    feed {
         | 
| 83 | 
            +
                      item "http://id774.net/images/link_1.jpg"
         | 
| 84 | 
            +
                      item "http://id774.net/images/link_1.jpg"
         | 
| 85 | 
            +
                      item "http://id774.net/images/link_3.JPG"
         | 
| 86 | 
            +
                      item "http://id774.net/images/link_4.png"
         | 
| 87 | 
            +
                      item "http://id774.net/images/link_5.jpeg"
         | 
| 88 | 
            +
                      item "http://id774.net/images/link_6.PNG"
         | 
| 89 | 
            +
                      item nil
         | 
| 90 | 
            +
                      item "http://id774.net/images/link_8.gif"
         | 
| 91 | 
            +
                      item "http://id774.net/images/link_9.GIF"
         | 
| 92 | 
            +
                      item "http://id774.net/images/link_10.tiff"
         | 
| 93 | 
            +
                      item "http://id774.net/images/link_11.TIFF"
         | 
| 94 | 
            +
                    }
         | 
| 95 | 
            +
                  }
         | 
| 96 | 
            +
                )
         | 
| 97 | 
            +
             | 
| 98 | 
            +
                instance.run.should have(1).feed
         | 
| 99 | 
            +
                lambda {
         | 
| 100 | 
            +
                  instance.run.should have(0).feed
         | 
| 101 | 
            +
                }.should change(Automatic::Plugin::Permalink, :count).by(0)
         | 
| 102 | 
            +
              end
         | 
| 103 | 
            +
             | 
| 104 | 
            +
              it "No feed should be generated when there is same feed." do
         | 
| 105 | 
            +
                @db_filename = "test_permalink.db"
         | 
| 106 | 
            +
                db_path = Pathname(AutomaticSpec.db_dir).cleanpath+"#{@db_filename}"
         | 
| 107 | 
            +
                db_path.delete if db_path.exist?
         | 
| 108 | 
            +
                Automatic::Plugin::StorePermalink.new({"db" => @db_filename}).run
         | 
| 71 109 | 
             
                instance = Automatic::Plugin::StorePermalink.new({"db" => @db_filename},
         | 
| 72 110 | 
             
                  AutomaticSpec.generate_pipeline {
         | 
| 73 111 | 
             
                    feed {
         | 
| @@ -86,6 +124,81 @@ describe Automatic::Plugin::StorePermalink do | |
| 86 124 | 
             
                  }
         | 
| 87 125 | 
             
                )
         | 
| 88 126 |  | 
| 127 | 
            +
                instance.run.should have(1).feed
         | 
| 128 | 
            +
                lambda {
         | 
| 129 | 
            +
                  instance.run.should have(0).feed
         | 
| 130 | 
            +
                }.should change(Automatic::Plugin::Permalink, :count).by(0)
         | 
| 131 | 
            +
                Automatic::Plugin::StorePermalink.new({"db" => @db_filename}).run
         | 
| 132 | 
            +
                instance = Automatic::Plugin::StorePermalink.new({"db" => @db_filename},
         | 
| 133 | 
            +
                  AutomaticSpec.generate_pipeline {
         | 
| 134 | 
            +
                    feed {
         | 
| 135 | 
            +
                      item "http://id774.net/images/link_1.jpg"
         | 
| 136 | 
            +
                      item "http://id774.net/images/link_1.jpg"
         | 
| 137 | 
            +
                      item "http://id774.net/images/link_3.JPG"
         | 
| 138 | 
            +
                      item "http://id774.net/images/link_4.png"
         | 
| 139 | 
            +
                      item "http://id774.net/images/link_5.jpeg"
         | 
| 140 | 
            +
                      item "http://id774.net/images/link_6.PNG"
         | 
| 141 | 
            +
                      item nil
         | 
| 142 | 
            +
                      item "http://id774.net/images/link_8.gif"
         | 
| 143 | 
            +
                      item "http://id774.net/images/link_9.GIF"
         | 
| 144 | 
            +
                      item "http://id774.net/images/link_10.tiff"
         | 
| 145 | 
            +
                      item "http://id774.net/images/link_11.TIFF"
         | 
| 146 | 
            +
                    }
         | 
| 147 | 
            +
                  }
         | 
| 148 | 
            +
                )
         | 
| 149 | 
            +
             | 
| 150 | 
            +
                instance.run.should have(0).feed
         | 
| 151 | 
            +
                lambda {
         | 
| 152 | 
            +
                  instance.run.should have(0).feed
         | 
| 153 | 
            +
                }.should change(Automatic::Plugin::Permalink, :count).by(0)
         | 
| 154 | 
            +
              end
         | 
| 155 | 
            +
             | 
| 156 | 
            +
              it "Only new feed should be generated when there is new feed." do
         | 
| 157 | 
            +
                @db_filename = "test_permalink.db"
         | 
| 158 | 
            +
                db_path = Pathname(AutomaticSpec.db_dir).cleanpath+"#{@db_filename}"
         | 
| 159 | 
            +
                db_path.delete if db_path.exist?
         | 
| 160 | 
            +
                Automatic::Plugin::StorePermalink.new({"db" => @db_filename}).run
         | 
| 161 | 
            +
                instance = Automatic::Plugin::StorePermalink.new({"db" => @db_filename},
         | 
| 162 | 
            +
                  AutomaticSpec.generate_pipeline {
         | 
| 163 | 
            +
                    feed {
         | 
| 164 | 
            +
                      item "http://id774.net/images/link_1.jpg"
         | 
| 165 | 
            +
                      item "http://id774.net/images/link_1.jpg"
         | 
| 166 | 
            +
                      item "http://id774.net/images/link_3.JPG"
         | 
| 167 | 
            +
                      item "http://id774.net/images/link_4.png"
         | 
| 168 | 
            +
                      item "http://id774.net/images/link_5.jpeg"
         | 
| 169 | 
            +
                      item "http://id774.net/images/link_6.PNG"
         | 
| 170 | 
            +
                      item nil
         | 
| 171 | 
            +
                      item "http://id774.net/images/link_8.gif"
         | 
| 172 | 
            +
                      item "http://id774.net/images/link_9.GIF"
         | 
| 173 | 
            +
                      item "http://id774.net/images/link_10.tiff"
         | 
| 174 | 
            +
                      item "http://id774.net/images/link_11.TIFF"
         | 
| 175 | 
            +
                    }
         | 
| 176 | 
            +
                  }
         | 
| 177 | 
            +
                )
         | 
| 178 | 
            +
             | 
| 179 | 
            +
                instance.run.should have(1).feed
         | 
| 180 | 
            +
                lambda {
         | 
| 181 | 
            +
                  instance.run.should have(0).feed
         | 
| 182 | 
            +
                }.should change(Automatic::Plugin::Permalink, :count).by(0)
         | 
| 183 | 
            +
                Automatic::Plugin::StorePermalink.new({"db" => @db_filename}).run
         | 
| 184 | 
            +
                instance = Automatic::Plugin::StorePermalink.new({"db" => @db_filename},
         | 
| 185 | 
            +
                  AutomaticSpec.generate_pipeline {
         | 
| 186 | 
            +
                    feed {
         | 
| 187 | 
            +
                      item "http://id774.net/images/link_1.jpg"
         | 
| 188 | 
            +
                      item "http://id774.net/images/link_1.jpg"
         | 
| 189 | 
            +
                      item "http://id774.net/images/link_3.JPG"
         | 
| 190 | 
            +
                      item "http://id774.net/images/link_4_2.png"
         | 
| 191 | 
            +
                      item "http://id774.net/images/link_5_2.jpeg"
         | 
| 192 | 
            +
                      item "http://id774.net/images/link_6.PNG"
         | 
| 193 | 
            +
                      item nil
         | 
| 194 | 
            +
                      item "http://id774.net/images/link_8.gif"
         | 
| 195 | 
            +
                      item "http://id774.net/images/link_9.GIF"
         | 
| 196 | 
            +
                      item "http://id774.net/images/link_10.tiff"
         | 
| 197 | 
            +
                      item "http://id774.net/images/link_11.TIFF"
         | 
| 198 | 
            +
                    }
         | 
| 199 | 
            +
                  }
         | 
| 200 | 
            +
                )
         | 
| 201 | 
            +
             | 
| 89 202 | 
             
                instance.run.should have(1).feed
         | 
| 90 203 | 
             
                lambda {
         | 
| 91 204 | 
             
                  instance.run.should have(0).feed
         | 
| @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Plugin::Subscription::Link
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 4 | 
             
            # Created::   Sep 18, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 6 6 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| @@ -34,7 +34,8 @@ describe Automatic::Plugin::SubscriptionLink do | |
| 34 34 | 
             
                subject {
         | 
| 35 35 | 
             
                  Automatic::Plugin::SubscriptionLink.new(
         | 
| 36 36 | 
             
                    { 'urls' => [
         | 
| 37 | 
            -
                        "http://id774.net"]
         | 
| 37 | 
            +
                        "http://id774.net"],
         | 
| 38 | 
            +
                      'interval' => 5
         | 
| 38 39 | 
             
                    }
         | 
| 39 40 | 
             
                  )
         | 
| 40 41 | 
             
                }
         | 
| @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Plugin::Subscription::Tumblr
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 4 | 
             
            # Created::   Oct 16, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 6 6 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| @@ -47,11 +47,12 @@ describe Automatic::Plugin::SubscriptionTumblr do | |
| 47 47 | 
             
                  Automatic::Plugin::SubscriptionTumblr.new(
         | 
| 48 48 | 
             
                    { 'urls' => [
         | 
| 49 49 | 
             
                        "http://reblog.id774.net"],
         | 
| 50 | 
            -
                      'pages' =>  | 
| 50 | 
            +
                      'pages' => 3,
         | 
| 51 | 
            +
                      'interval' => 5
         | 
| 51 52 | 
             
                    }
         | 
| 52 53 | 
             
                  )
         | 
| 53 54 | 
             
                }
         | 
| 54 55 |  | 
| 55 | 
            -
                its(:run) { should have( | 
| 56 | 
            +
                its(:run) { should have(3).item }
         | 
| 56 57 | 
             
              end
         | 
| 57 58 | 
             
            end
         | 
| @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            # Name::      Automatic::Plugin::Subscription::Twitter
         | 
| 3 3 | 
             
            # Author::    774 <http://id774.net>
         | 
| 4 4 | 
             
            # Created::   Sep 10, 2012
         | 
| 5 | 
            -
            # Updated::    | 
| 5 | 
            +
            # Updated::   Jan  8, 2013
         | 
| 6 6 | 
             
            # Copyright:: 774 Copyright (c) 2012
         | 
| 7 7 | 
             
            # License::   Licensed under the GNU GENERAL PUBLIC LICENSE, Version 3.0.
         | 
| 8 8 |  | 
| @@ -34,7 +34,8 @@ describe Automatic::Plugin::SubscriptionTwitter do | |
| 34 34 | 
             
                subject {
         | 
| 35 35 | 
             
                  Automatic::Plugin::SubscriptionTwitter.new(
         | 
| 36 36 | 
             
                    { 'urls' => [
         | 
| 37 | 
            -
                        "http://id774.net/test/twitter/favorites.html"]
         | 
| 37 | 
            +
                        "http://id774.net/test/twitter/favorites.html"],
         | 
| 38 | 
            +
                      'interval' => 5
         | 
| 38 39 | 
             
                    }
         | 
| 39 40 | 
             
                  )
         | 
| 40 41 | 
             
                }
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: automatic
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version:  | 
| 4 | 
            +
              version: 13.1.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date:  | 
| 12 | 
            +
            date: 2013-01-08 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: sqlite3
         |