class PuppetDebugger::InputResponders::Play
Constants
- COMMAND_GROUP
- COMMAND_WORDS
- SUMMARY
Public Instance Methods
convert_to_text(url)
click to toggle source
# File lib/plugins/puppet-debugger/input_responders/play.rb, line 30 def convert_to_text(url) require 'uri' url_data = URI(url) case url_data.host when /^gist\.github*/ url = url += '.txt' unless url_data.path =~ /raw/ url when /^github.com/ url.gsub('blob', 'raw') if url_data.path =~ /blob/ when /^gist.github.com/ url = url += '.txt' unless url_data.path =~ /raw/ url when /^gitlab.com/ if url_data.path =~ /snippets/ url += '/raw' unless url_data.path =~ /raw/ url else url.gsub('blob', 'raw') end else url end end
fetch_url_data(url)
click to toggle source
opens the url and reads the data
# File lib/plugins/puppet-debugger/input_responders/play.rb, line 55 def fetch_url_data(url) URI.open(url).read # open(url).read end
play_back(config = {})
click to toggle source
# File lib/plugins/puppet-debugger/input_responders/play.rb, line 18 def play_back(config = {}) if config[:play] if config[:play] =~ /^http/ play_back_url(config[:play]) elsif File.exist? config[:play] play_back_string(File.read(config[:play])) else config[:play] debugger.out_buffer.puts "puppet-debugger can't play #{config[:play]}'" end end end
play_back_string(str)
click to toggle source
plays back the string to the output stream echos the input and the produced output
# File lib/plugins/puppet-debugger/input_responders/play.rb, line 71 def play_back_string(str) full_buffer = '' str.split("\n").each do |buf| begin full_buffer += buf # unless this is puppet code, otherwise skip repl keywords debugger.parser.parse_string(full_buffer) unless PuppetDebugger::InputResponders::Commands.command_list_regex.match(buf) debugger.out_buffer.write('>> ') rescue Puppet::ParseErrorWithIssue => e if debugger.multiline_input?(e) full_buffer += "\n" next end end debugger.out_buffer.puts(full_buffer) debugger.handle_input(full_buffer) full_buffer = '' end end
play_back_url(url)
click to toggle source
# File lib/plugins/puppet-debugger/input_responders/play.rb, line 59 def play_back_url(url) require 'open-uri' require 'net/http' converted_url = convert_to_text(url) str = fetch_url_data(converted_url) play_back_string(str) rescue SocketError abort "puppet-debugger can't play `#{converted_url}'" end
run(args = [])
click to toggle source
# File lib/plugins/puppet-debugger/input_responders/play.rb, line 11 def run(args = []) config = {} config[:play] = args.first play_back(config) nil # we don't want to return anything end