class Spring::Client::Binstub::Item
Attributes
command[R]
existing[R]
Public Class Methods
new(command)
click to toggle source
# File lib/spring/client/binstub.rb, line 55 def initialize(command) @command = command if command.binstub.exist? @existing = command.binstub.read elsif command.name == "rails" scriptfile = Spring.application_root_path.join("script/rails") @existing = scriptfile.read if scriptfile.exist? end end
Public Instance Methods
add()
click to toggle source
# File lib/spring/client/binstub.rb, line 70 def add if existing if existing.include?(OLD_BINSTUB) fallback = existing.match(/#{Regexp.escape OLD_BINSTUB}\n(.*)else/m)[1] fallback.gsub!(/^ /, "") fallback = nil if fallback.include?("exec") generate(fallback) status "upgraded" elsif existing =~ /load .*spring/ status "spring already present" else head, shebang, tail = existing.partition(SHEBANG) if shebang.include?("ruby") unless command.binstub.exist? FileUtils.touch command.binstub command.binstub.chmod 0755 end File.write(command.binstub, "#{head}#{shebang}#{LOADER}#{tail}") status "spring inserted" else status "doesn't appear to be ruby, so cannot use spring", $stderr exit 1 end end else generate status "generated with spring" end end
generate(fallback = nil)
click to toggle source
# File lib/spring/client/binstub.rb, line 102 def generate(fallback = nil) unless fallback fallback = "require 'bundler/setup'\n" "load Gem.bin_path('#{command.gem_name}', '#{command.exec_name}')\n" end File.write(command.binstub, "#!/usr/bin/env ruby\n#{LOADER}#{fallback}") command.binstub.chmod 0755 end
remove()
click to toggle source
# File lib/spring/client/binstub.rb, line 112 def remove if existing File.write(command.binstub, existing.sub(LOADER, "")) status "spring removed" end end
status(text, stream = $stdout)
click to toggle source
# File lib/spring/client/binstub.rb, line 66 def status(text, stream = $stdout) stream.puts "* #{command.binstub_name}: #{text}" end