module Hub::Standalone
Constants
- HUB_ROOT
- PREAMBLE
Public Instance Methods
build(io)
click to toggle source
# File lib/hub/standalone.rb, line 25 def build io io.puts "#!#{ruby_shebang}" io << PREAMBLE io.puts "Encoding.default_external = 'UTF-8' if defined?(Encoding)" each_source_file do |filename| File.open(filename, 'r') do |source| source.each_line do |line| next if line =~ /^\s*#/ if line.include?(' VERSION =') line.sub!(/'(.+?)'/, "'#{detailed_version}'") end io << line end end io.puts '' end io.puts "Hub::Runner.execute(*ARGV)" io.puts "\n__END__" io << File.read(File.join(HUB_ROOT, 'man/hub.1')) end
detailed_version()
click to toggle source
# File lib/hub/standalone.rb, line 58 def detailed_version version = %x`git describe --tags HEAD 2>/dev/null`.chomp if version.empty? version = Hub::VERSION head_sha = %x`git rev-parse --short HEAD 2>/dev/null`.chomp version += "-g#{head_sha}" unless head_sha.empty? version else version.sub(/^v/, '') end end
each_source_file() { |join(HUB_ROOT, 'lib', "| ... }
click to toggle source
# File lib/hub/standalone.rb, line 48 def each_source_file File.open(File.join(HUB_ROOT, 'lib/hub.rb'), 'r') do |main| main.each_line do |req| if req =~ /^require\s+["'](.+)["']/ yield File.join(HUB_ROOT, 'lib', "#{$1}.rb") end end end end
ruby_executable()
click to toggle source
# File lib/hub/standalone.rb, line 70 def ruby_executable if File.executable? '/usr/bin/ruby' then '/usr/bin/ruby' else require 'rbconfig' File.join RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'] end end
ruby_shebang()
click to toggle source
# File lib/hub/standalone.rb, line 78 def ruby_shebang ruby = ruby_executable %x`RUBYOPT= #{ruby_executable} --disable-gems -e0 2>/dev/null` if $?.success? "#{ruby} --disable-gems" else ruby end end
save(filename, path = '.')
click to toggle source
# File lib/hub/standalone.rb, line 17 def save(filename, path = '.') target = File.join(File.expand_path(path), filename) File.open(target, 'w') do |f| build f f.chmod 0755 end end