class Traveler::Wrapper

Public Class Methods

new(ruby_version, name, cmd, block) click to toggle source
# File lib/traveler/wrapper.rb, line 5
def initialize ruby_version, name, cmd, block
  @ruby_version, @name, @cmd, @block = ruby_version, name, cmd, block
  write if writeable?
end

Public Instance Methods

cmd() click to toggle source
# File lib/traveler/wrapper.rb, line 34
def cmd
  return @block.call if @block
  render_cmd(@cmd)
end
cmd_template() click to toggle source
# File lib/traveler/wrapper.rb, line 51
def cmd_template
  File.read(skeldir('cmd.sh'))
end
file() click to toggle source
# File lib/traveler/wrapper.rb, line 55
def file
  @name
end
locals() click to toggle source
# File lib/traveler/wrapper.rb, line 25
def locals
  {
    signature:              SIGNATURE,
    folder_name:            FOLDER_NAME,
    traveling_ruby_version: TRAVELING_RUBY_VERSION,
    wrapper_ruby_version:   @ruby_version
  }
end
render_cmd(cmd) click to toggle source
# File lib/traveler/wrapper.rb, line 43
def render_cmd cmd
  Mustache.render(cmd_template, locals.merge(cmd: cmd))
end
render_wrapper() click to toggle source
# File lib/traveler/wrapper.rb, line 39
def render_wrapper
  Mustache.render(wrapper_template, locals.merge(cmd: cmd))
end
wrapper_template() click to toggle source
# File lib/traveler/wrapper.rb, line 47
def wrapper_template
  File.read(skeldir('wrapper.sh'))
end
write() click to toggle source
# File lib/traveler/wrapper.rb, line 10
def write
  File.open(file, 'w') {|f| f << render_wrapper}
  FileUtils.chmod('+x', file)
end
writeable?() click to toggle source
# File lib/traveler/wrapper.rb, line 15
def writeable?
  if File.exists?(file) && File.read(file) !~ /#{SIGNATURE}/m
    puts warn('
    "%s" file exists and is not a Traveler wrapper.
    Use another file or delete/rename this one and (re)run `traveler wrap`' % file)
    return false
  end
  true
end