Sha256: ff4d9dd1c22dacdc923cce813afafb141a6bf4424ee157a02902cd91f651e076
Contents?: true
Size: 1.63 KB
Versions: 25
Compression:
Stored size: 1.63 KB
Contents
require File.expand_path(File.dirname(__FILE__) + '/spec_helper') require 'thor/rake_compat' require 'rake/tasklib' $main = self class RakeTask < Rake::TaskLib def initialize define end def define $main.instance_eval do desc "Say it's cool" task :cool do puts "COOL" end namespace :hiper_mega do task :super do puts "HIPER MEGA SUPER" end end end end end class ThorTask < Thor include Thor::RakeCompat RakeTask.new end describe Thor::RakeCompat do it "sets the rakefile application" do expect(["rake_compat_spec.rb", "Thorfile"]).to include(Rake.application.rakefile) end it "adds rake tasks to thor classes too" do task = ThorTask.tasks["cool"] expect(task).to be end it "uses rake tasks descriptions on thor" do expect(ThorTask.tasks["cool"].description).to eq("Say it's cool") end it "gets usage from rake tasks name" do expect(ThorTask.tasks["cool"].usage).to eq("cool") end it "uses non namespaced name as description if non is available" do expect(ThorTask::HiperMega.tasks["super"].description).to eq("super") end it "converts namespaces to classes" do expect(ThorTask.const_get(:HiperMega)).to eq(ThorTask::HiperMega) end it "does not add tasks from higher namespaces in lowers namespaces" do expect(ThorTask.tasks["super"]).not_to be end it "invoking the thor task invokes the rake task" do expect(capture(:stdout) { ThorTask.start ["cool"] }).to eq("COOL\n") expect(capture(:stdout) { ThorTask::HiperMega.start ["super"] }).to eq("HIPER MEGA SUPER\n") end end
Version data entries
25 entries across 21 versions & 8 rubygems