Sha256: f8787cce7de6e2293b9c98ee2c450fe08d9d775a9ed9f89b6fc8fcbd94df16ca

Contents?: true

Size: 1.8 KB

Versions: 1

Compression:

Stored size: 1.8 KB

Contents

require "bundler/gem_tasks"

require 'rspec/core/rake_task'

desc "run specs"
RSpec::Core::RakeTask.new

task :default => :spec


desc "Remove the test_run Rails app (if it's there)"
task :clean do
  system 'rm -rf test_run'
end

desc "Execute a test run with the specified scrolls."
task :run => :clean do
  scrolls = ENV['SCROLLS'].split(',')

  require 'tempfile'
  require 'eldarscrolls'

  template = EldarScrolls::Template.new(scrolls)

  begin
    dir = Dir.mktmpdir "rails_template"
    Dir.chdir(dir) do
      file = File.open('template.rb', 'w')
      file.write template.compile
      file.close  
    
      system "rails new test_run -m template.rb #{template.args.join(' ')}"

      puts "\n\n cd #{dir} # look at the app"
      puts "#{ENV['EDITOR']} #{dir} # edit the app"
    end
  end
end

desc "Prints out a template from the provided scrolls."
task :print do
  require 'eldarscrolls'

  scrolls = ENV['SCROLLS'].split(',')
  puts EldarScrolls::Template.new(scrolls).compile
end

desc "Create a new scroll"
task :new do
  unless (name = ENV['NAME']) && name.size > 0
    $stderr.puts "USAGE: rake new NAME=scroll-name"
    exit 1
  end
  require 'active_support/inflector'
  require 'erb'
  require 'eldarscrolls/template'
  scroll = EldarScrolls::Template.render("new_scroll", binding)
  scroll_path = "scrolls/#{name}.rb"
  File.open(scroll_path, "w") { |file| file << scroll }
  `open #{scroll_path}`
end

namespace :list do
  desc "Display scrolls by category"
  task :categories do
    require 'eldarscrolls'
    categories = EldarScrolls::Scrolls.categories.sort
    categories = (categories - ["other"]) + ["other"]
    categories.each do |category|
      puts "#{category}: #{EldarScrolls::Scrolls.for(category).join(", ")}"
    end
  end

  # desc "Display scrolls by exclusion"
  # task :exclusions do
  # 
  # end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
eldarscrolls-0.7.0 Rakefile