Rake tasks generator with test

This commit is contained in:
Kir 2011-12-13 15:06:36 +04:00
parent 6bff6439b1
commit 5e68fed450
4 changed files with 41 additions and 0 deletions

@ -0,0 +1,9 @@
Description:
Stubs out a new Rake task. Pass the namespace name, and a list of tasks as arguments.
This generates a task file in lib/tasks.
Example:
`rails generate task feeds fetch erase add`
Task: lib/tasks/feeds.rake

@ -0,0 +1,12 @@
module Rails
module Generators
class TaskGenerator < NamedBase
argument :actions, :type => :array, :default => [], :banner => "action action"
def create_task_files
template 'task.rb', File.join('lib/tasks', "#{file_name}.rake")
end
end
end
end

@ -0,0 +1,8 @@
namespace :<%= file_name %> do
<% actions.each do |action| -%>
desc "TODO"
task :<%= action %> => :environment do
end
<% end -%>
end

@ -0,0 +1,12 @@
require 'generators/generators_test_helper'
require 'rails/generators/rails/task/task_generator'
class TaskGeneratorTest < Rails::Generators::TestCase
include GeneratorsTestHelper
arguments %w(feeds foo bar)
def test_controller_skeleton_is_created
run_generator
assert_file "lib/tasks/feeds.rake", /namespace :feeds/
end
end