Module: CapybaraWebkitBuilder
- Extended by:
- CapybaraWebkitBuilder
- Included in:
- CapybaraWebkitBuilder
- Defined in:
- lib/capybara_webkit_builder.rb
Constant Summary collapse
- SUCCESS_STATUS =
0
- COMMAND_NOT_FOUND_STATUS =
127
Instance Method Summary collapse
- #build ⇒ Object
- #build_all ⇒ Object
- #clean ⇒ Object
- #default_configs ⇒ Object
- #default_qmake_binary ⇒ Object
- #env_hide(name) ⇒ Object
- #make(target = "") ⇒ Object
- #make_bin ⇒ Object
- #makefile(*configs) ⇒ Object
- #path_to_binary ⇒ Object
- #qmake ⇒ Object
- #qmake_bin ⇒ Object
- #sh(command) ⇒ Object
Instance Method Details
#build ⇒ Object
60 61 62 63 64 65 |
# File 'lib/capybara_webkit_builder.rb', line 60 def build make or return false FileUtils.mkdir("bin") unless File.directory?("bin") FileUtils.cp(path_to_binary, "bin", :preserve => true) end |
#build_all ⇒ Object
86 87 88 89 90 91 |
# File 'lib/capybara_webkit_builder.rb', line 86 def build_all makefile && qmake && build && clean end |
#clean ⇒ Object
67 68 69 70 71 |
# File 'lib/capybara_webkit_builder.rb', line 67 def clean File.open("Makefile", "w") do |file| file.print "all:\n\t@echo ok\ninstall:\n\t@echo ok" end end |
#default_configs ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/capybara_webkit_builder.rb', line 73 def default_configs configs = [] libpath = ENV["CAPYBARA_WEBKIT_LIBS"] cppflags = ENV["CAPYBARA_WEBKIT_INCLUDE_PATH"] if libpath configs << "LIBS += #{libpath}" end if cppflags configs << "INCLUDEPATH += #{cppflags}" end configs end |
#default_qmake_binary ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/capybara_webkit_builder.rb', line 20 def default_qmake_binary case RbConfig::CONFIG['host_os'] when /freebsd/ "qmake-qt4" when /openbsd/ "qmake-qt5" else "qmake" end end |
#env_hide(name) ⇒ Object
98 99 100 101 102 103 104 105 |
# File 'lib/capybara_webkit_builder.rb', line 98 def env_hide(name) @stored_env ||= {} @stored_env[name] = ENV.delete(name) yield ensure ENV[name] = @stored_env[name] end |
#make(target = "") ⇒ Object
93 94 95 96 |
# File 'lib/capybara_webkit_builder.rb', line 93 def make(target = "") job_count = Etc.respond_to?(:nprocessors) ? Etc.nprocessors : 1 env_hide('CDPATH') { sh("#{make_bin} #{target} --jobs=#{job_count}") } end |
#make_bin ⇒ Object
12 13 14 |
# File 'lib/capybara_webkit_builder.rb', line 12 def make_bin ENV['MAKE'] || 'make' end |
#makefile(*configs) ⇒ Object
42 43 44 45 46 |
# File 'lib/capybara_webkit_builder.rb', line 42 def makefile(*configs) configs += default_configs configs = configs.map { |config| config.shellescape}.join(" ") sh("#{qmake_bin} #{configs}") end |
#path_to_binary ⇒ Object
52 53 54 55 56 57 58 |
# File 'lib/capybara_webkit_builder.rb', line 52 def path_to_binary if Gem.win_platform? "src/debug/webkit_server.exe" else "src/webkit_server" end end |
#qmake ⇒ Object
48 49 50 |
# File 'lib/capybara_webkit_builder.rb', line 48 def qmake make "qmake" end |
#qmake_bin ⇒ Object
16 17 18 |
# File 'lib/capybara_webkit_builder.rb', line 16 def qmake_bin ENV['QMAKE'] || default_qmake_binary end |
#sh(command) ⇒ Object
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/capybara_webkit_builder.rb', line 31 def sh(command) system(command) success = $?.exitstatus == SUCCESS_STATUS if $?.exitstatus == COMMAND_NOT_FOUND_STATUS puts "Command '#{command}' not available" elsif !success puts "Command '#{command}' failed" end success end |