require "bundler" Bundler::GemHelper.install_tasks require "json" require "tilt" Dir["#{File.dirname(__FILE__)}/tasks/**/*.rb"].each do |file| require file end desc "Run all Jasmine JS specs" task :jasmine_specs do jasmine_dev = JasmineDev.new return unless jasmine_dev.node_installed? system "thor jasmine_dev:execute_specs" puts "\n\033[33m>>> DEPRECATED <<< Run Jasmine's JavaScript specs with 'thor jasmine_dev:execute_specs'\n\033[0m" end desc "Run all Jasmine core tests (JavaScript and dev tasks)" task :spec => :require_pages_submodule do jasmine_dev = JasmineDev.new return unless jasmine_dev.node_installed? system "rspec" end task :require_pages_submodule do jasmine_dev = JasmineDev.new unless jasmine_dev.pages_submodule_installed? puts 'Installing the Github pages submodule:' system 'git submodule update --init' puts 'Now continuing...' end end desc "View full development tasks" task :list_dev_tasks do puts "Jasmine uses Thor for command line tasks for development. Here is the command set:" system "thor list" end require "jasmine" require 'rspec' require 'rspec/core/rake_task' desc "Run all examples" RSpec::Core::RakeTask.new(:jasmine_core_spec) do |t| t.pattern = 'spec/jasmine_self_test_spec.rb' end namespace :jasmine do task :server do port = ENV['JASMINE_PORT'] || 8888 Jasmine.load_configuration_from_yaml(File.join(Dir.pwd, 'spec', 'jasmine.yml')) config = Jasmine.config server = Jasmine::Server.new(8888, Jasmine::Application.app(config)) server.start puts "your tests are here:" puts " http://localhost:#{port}/" end desc "Copy examples from Jasmine JS to the gem" task :copy_examples_to_gem do require "fileutils" # copy jasmine's example tree into our generator templates dir FileUtils.rm_r('generators/jasmine/templates/jasmine-example', :force => true) FileUtils.cp_r(File.join(Jasmine::Core.path, 'example'), 'generators/jasmine/templates/jasmine-example', :preserve => true) end end desc "Run specs via server" task :jasmine => ['jasmine:server']