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