From 9e27f7d6f41228e2bb641560369ad49b9b943277 Mon Sep 17 00:00:00 2001 From: Joe Ferris Date: Sat, 26 Feb 2011 18:28:42 -0500 Subject: [PATCH] Initial gem --- .gitignore | 1 + Rakefile | 81 +++++++++++++++------------ capybara-webkit.gemspec | 14 +++++ extconf.rb | 2 + lib/capybara/driver/webkit/browser.rb | 3 +- spec/spec_helper.rb | 1 - 6 files changed, 65 insertions(+), 37 deletions(-) create mode 100644 capybara-webkit.gemspec create mode 100644 extconf.rb diff --git a/.gitignore b/.gitignore index cfe6d74..ee72d1c 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ qrc_* *.app moc_*.cpp .bundle +pkg diff --git a/Rakefile b/Rakefile index f086bee..9938587 100644 --- a/Rakefile +++ b/Rakefile @@ -2,35 +2,7 @@ require 'rubygems' require 'bundler/setup' require 'fileutils' require 'rspec/core/rake_task' - -desc "Generate a new command called NAME" -task :generate_command do - name = ENV['NAME'] or raise "Provide a name with NAME=" - - header = "src/#{name}.h" - source = "src/#{name}.cpp" - - %w(h cpp).each do |extension| - File.open("templates/Command.#{extension}", "r") do |source_file| - contents = source_file.read - contents.gsub!("NAME", name) - File.open("src/#{name}.#{extension}", "w") do |target_file| - target_file.write(contents) - end - end - end - - Dir.glob("src/*.pro").each do |project_file_name| - project = IO.read(project_file_name) - project.gsub!(/^(HEADERS = .*)/, "\\1 #{name}.h") - project.gsub!(/^(SOURCES = .*)/, "\\1 #{name}.cpp") - File.open(project_file_name, "w") { |file| file.write(project) } - end - - File.open("src/find_command.h", "a") do |file| - file.write("CHECK_COMMAND(#{name})") - end -end +require 'rake/gempackagetask' desc "Generate a Makefile using qmake" file 'Makefile' do @@ -55,11 +27,50 @@ task :build => :qmake do end end -RSpec::Core::RakeTask.new do |t| - t.pattern = "spec/{*_spec.rb,**/*_spec.rb}" - t.rspec_opts = "--format progress" +file 'bin/webkit_server' => :build + +unless ENV["BUILD"] + RSpec::Core::RakeTask.new do |t| + t.pattern = "spec/{*_spec.rb,**/*_spec.rb}" + t.rspec_opts = "--format progress" + end + + desc "Default: build and run all specs" + task :default => [:build, :spec] + + eval("$specification = begin; #{IO.read('capybara-webkit.gemspec')}; end") + Rake::GemPackageTask.new($specification) do |package| + package.need_zip = true + package.need_tar = true + end + + desc "Generate a new command called NAME" + task :generate_command do + name = ENV['NAME'] or raise "Provide a name with NAME=" + + header = "src/#{name}.h" + source = "src/#{name}.cpp" + + %w(h cpp).each do |extension| + File.open("templates/Command.#{extension}", "r") do |source_file| + contents = source_file.read + contents.gsub!("NAME", name) + File.open("src/#{name}.#{extension}", "w") do |target_file| + target_file.write(contents) + end + end + end + + Dir.glob("src/*.pro").each do |project_file_name| + project = IO.read(project_file_name) + project.gsub!(/^(HEADERS = .*)/, "\\1 #{name}.h") + project.gsub!(/^(SOURCES = .*)/, "\\1 #{name}.cpp") + File.open(project_file_name, "w") { |file| file.write(project) } + end + + File.open("src/find_command.h", "a") do |file| + file.write("CHECK_COMMAND(#{name})") + end + end end -desc "Default: build and run all specs" -task :default => [:build, :spec] - diff --git a/capybara-webkit.gemspec b/capybara-webkit.gemspec new file mode 100644 index 0000000..f7f2ff4 --- /dev/null +++ b/capybara-webkit.gemspec @@ -0,0 +1,14 @@ +Gem::Specification.new do |s| + s.name = "capybara-webkit" + s.version = "0.1.0" + s.authors = ["thoughtbot", "Joe Ferris", "Jason Morrison", "Tristan Dunn"] + s.email = "support@thoughtbot.com" + s.files = Dir['[A-Z]*', 'lib/**/*.rb', 'spec/**/*.rb', '**/*.pro', 'src/*.cpp', 'src/*.h', 'src/*.qrc', 'src/*.pro', 'src/*.js', "extconf.rb", "bin/*"] + s.homepage = "http://github.com/thoughtbot/capybara-webkit" + s.require_path = "lib" + s.rubygems_version = "1.3.5" + s.summary = "Headless Webkit driver for Capybara" + s.add_runtime_dependency "capybara", "~> 0.4.1" + s.extensions = "extconf.rb" +end + diff --git a/extconf.rb b/extconf.rb new file mode 100644 index 0000000..87d822e --- /dev/null +++ b/extconf.rb @@ -0,0 +1,2 @@ +system("rake build BUILD=true") + diff --git a/lib/capybara/driver/webkit/browser.rb b/lib/capybara/driver/webkit/browser.rb index 5bfab16..3dceea3 100644 --- a/lib/capybara/driver/webkit/browser.rb +++ b/lib/capybara/driver/webkit/browser.rb @@ -52,7 +52,8 @@ class Capybara::Driver::Webkit private def start_server - @pid = fork { exec("webkit_server") } + server_path = File.expand_path("../../../../../bin/webkit_server", __FILE__) + @pid = fork { exec(server_path) } at_exit { Process.kill("INT", @pid) } end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 7349425..6373625 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -4,7 +4,6 @@ require 'rspec/autorun' PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..')).freeze $LOAD_PATH << File.join(PROJECT_ROOT, 'lib') -ENV["PATH"] = ENV["PATH"] + ":" + File.join(PROJECT_ROOT, "bin") Dir[File.join(PROJECT_ROOT, 'spec', 'support', '**', '*.rb')].each { |file| require(file) }