From b880c737b640032dff2abde234467b9ceab0f2f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amol=20Hatw=C3=A1r?= Date: Mon, 24 May 2010 00:06:39 +0530 Subject: [PATCH] - Added Rails 3 compatible generators. --- README.rdoc | 7 +++++ generators/fetcher_daemon/USAGE | 9 +++--- .../fetcher_daemon/templates/config.yml | 30 +++++++++++-------- generators/fetcher_daemon/templates/daemon | 4 +-- .../fetcher_daemon_generator.rb | 12 ++++++++ 5 files changed, 44 insertions(+), 18 deletions(-) create mode 100644 lib/generators/fetcher_daemon/fetcher_daemon_generator.rb diff --git a/README.rdoc b/README.rdoc index 2269717..0285c1f 100644 --- a/README.rdoc +++ b/README.rdoc @@ -13,6 +13,11 @@ Install using: script/plugin install git://github.com/look/fetcher.git +== Dependencies + +This plugin depends on the SystemTimer gem. Do not forget to add it to your Gemfile. After adding, +remember to do a "bundle install" + == Usage Create a new fetcher object like the following: @@ -89,4 +94,6 @@ You can read more about how to use the Fetcher in the PeepCode book {Receiving E Created by Dan Weinand and Luke Francl. Development supported by {Slantwise Design}[http://slantwisedesign.com]. +Generators for Rails 3 compatibility added by Amol Hatwár, Exceed Consulting. + Licensed under the terms of the MIT License. Be excellent to each other. \ No newline at end of file diff --git a/generators/fetcher_daemon/USAGE b/generators/fetcher_daemon/USAGE index c4830d8..7c7a137 100644 --- a/generators/fetcher_daemon/USAGE +++ b/generators/fetcher_daemon/USAGE @@ -1,9 +1,10 @@ Description: - Create a fetcher daemon + Create a fetcher daemon with a given name Example: - ./script/generate fetcher_daemon sms + ./script/generate fetcher_daemon MailReader This will create: - /config/sms_fetcher.yml - /script/sms_fetcher \ No newline at end of file + /config/mail_reader_fetcher.yml + /script/mail_reader_fetcher + /lib/daemon.rb diff --git a/generators/fetcher_daemon/templates/config.yml b/generators/fetcher_daemon/templates/config.yml index 104238d..c2ef954 100644 --- a/generators/fetcher_daemon/templates/config.yml +++ b/generators/fetcher_daemon/templates/config.yml @@ -1,17 +1,23 @@ +defaults: &defaults + type: imap # pop OR imap + server: imap.example.com # server hostname + port: # 993 for IMAPs + ssl: true # Remove if not using SSL + username: # Username + password: # Password + receiver: # ActionMailer that will receive mail + use_login: true # Required for GMAIL + sleep_time: # Poll Frequency. 60 seconds by default + authentication: # LOGIN, CRAM-MD5, PASSWORD (IMAP Only) + development: - type: pop - server: localhost - username: username - password: password + <<: *defaults + # Override other values here test: - type: pop - server: localhost - username: username - password: password + <<: *defaults + # Override other values here production: - type: pop - server: localhost - username: username - password: password \ No newline at end of file + <<: *defaults + # Override other values here \ No newline at end of file diff --git a/generators/fetcher_daemon/templates/daemon b/generators/fetcher_daemon/templates/daemon index c461223..fb61c50 100644 --- a/generators/fetcher_daemon/templates/daemon +++ b/generators/fetcher_daemon/templates/daemon @@ -3,8 +3,8 @@ require File.dirname(__FILE__) + '/../config/environment.rb' class <%=class_name%>FetcherDaemon < Daemon::Base - @config = YAML.load_file("#{RAILS_ROOT}/config/<%=file_name%>.yml") - @config = @config[RAILS_ENV].to_options + @config = YAML.load_file("#{Rails.root}/config/<%=file_name%>.yml") + @config = @config[Rails.env].to_options @sleep_time = @config.delete(:sleep_time) || 60 def self.start diff --git a/lib/generators/fetcher_daemon/fetcher_daemon_generator.rb b/lib/generators/fetcher_daemon/fetcher_daemon_generator.rb new file mode 100644 index 0000000..199b658 --- /dev/null +++ b/lib/generators/fetcher_daemon/fetcher_daemon_generator.rb @@ -0,0 +1,12 @@ +require 'rails/generators' + +class FetcherDaemonGenerator < Rails::Generators::NamedBase + source_root File.join(File.dirname(__FILE__), '../../../generators/fetcher_daemon', 'templates') + + def create_fetcher_daemon + copy_file('daemon.rb', "lib/daemon.rb") + template('config.yml', File.join('config', "#{file_name}.yml")) + template('daemon', File.join('script', "#{file_name}_fetcher")) + chmod(File.join("script", "#{file_name}_fetcher"), 0755) + end +end