Return to Snippet

Revision: 9516
at November 11, 2008 01:04 by nighthawk


Updated Code
#!/usr/bin/ruby
$: << ENV['TM_SUPPORT_PATH'] + '/lib'

require "cgi"
require "ui"
require "xmlrpc/client"

unless ENV['SNIPPLR_KEY']
  TextMate::UI.alert(:critical, "Snipplr error", "Please first set your 'SNIPPLR_KEY' in Preferences > Advanced > Shell Variables.")
  exit
end

TextMate::UI.request_string(:title => "Get Snippet from Snipplr",
                            :prompt => "Enter tags to search for:",
                            :button1 => "Search") do |tag|

  begin
    server = XMLRPC::Client.new2("http://snipplr.com/xml-rpc.php")
    snippet_list = server.call('snippet.list', ENV['SNIPPLR_KEY'], tag)
  rescue
    # fall through
  end

  unless snippet_list and snippet_list.length > 0
    TextMate::UI.alert(:warning, "Snipplr result", "No snippets for '#{tag}' found.")
  else
    items = {}
    snippet_list.each { |r| items[r['title']] = r['id'] }

    TextMate::UI.request_item(:items => items.keys.sort,
                              :title => "Snipplr result",
                              :prompt => "Choose",
                              :string => "Select which snippet to paste") do |item|
      begin
        snippet = server.call('snippet.get', items[item])
        puts CGI.unescapeHTML(snippet['source'])
      rescue
        TextMate::UI.alert(:critical, "Snipplr error", "Could not retrieve '#{item}'.")
      end
    end
  end
end

Revision: 9515
at November 11, 2008 00:38 by nighthawk


Updated Code
#!/usr/bin/ruby
$: << ENV['TM_SUPPORT_PATH'] + '/lib'

require "cgi"
require "ui"
require "xmlrpc/client"

unless ENV['SNIPPLR_KEY']
  TextMate::UI.alert(:critical, "Snipplr error", "Please first set your 'SNIPPLR_KEY' in Preferences > Advanced > Shell Variables.")
  exit
end

TextMate::UI.request_string(:title => "Get Snippet from Snipplr",
                            :prompt => "Enter tags to search for:",
                            :button1 => "Search") do |tag|

  begin
    server = XMLRPC::Client.new2("http://snipplr.com/xml-rpc.php")
    snippet_list = server.call('snippet.list', ENV['SNIPPLR_KEY'], tag, 'title')
  rescue
    # fall through
  end

  unless snippet_list and snippet_list.length > 0
    TextMate::UI.alert(:warning, "Snipplr result", "No snippets for '#{tag}' found.")
  else
    items = {}
    snippet_list.each { |r| items[r['title']] = r['id'] }

    TextMate::UI.request_item(:items => items.keys.sort,
                              :title => "Snipplr result",
                              :prompt => "Choose",
                              :string => "Select which snippet to paste") do |item|
      begin
        snippet = server.call('snippet.get', items[item])
        puts CGI.unescapeHTML(snippet['source'])
      rescue
        TextMate::UI.alert(:critical, "Snipplr error", "Could not retrieve '#{item}'.")
      end
    end
  end
end

Revision: 9514
at November 11, 2008 00:11 by nighthawk


Updated Code
#!/usr/bin/ruby
$: << ENV['TM_SUPPORT_PATH'] + '/lib'

require "ui"
require "xmlrpc/client"

unless ENV['SNIPPLR_KEY']
  TextMate::UI.alert(:critical, "Snipplr error", "Please first set your 'SNIPPLR_KEY' in Preferences > Advanced > Shell Variables.")
  exit
end

TextMate::UI.request_string(:title => "Get Snippet from Snipplr",
                            :prompt => "Enter tags to search for:",
                            :button1 => "Search") do |tag|

  begin
    server = XMLRPC::Client.new2("http://snipplr.com/xml-rpc.php")
    snippet_list = server.call('snippet.list', ENV['SNIPPLR_KEY'], tag, 'title')
  rescue
    # fall through
  end

  unless snippet_list and snippet_list.length > 0
    TextMate::UI.alert(:warning, "Snipplr result", "No snippets for '#{tag}' found.")
  else
    items = {}
    snippet_list.each { |r| items[r['title']] = r['id'] }

    TextMate::UI.request_item(:items => items.keys.sort,
                              :title => "Snipplr result",
                              :prompt => "Choose",
                              :string => "Select which snippet to paste") do |item|
      begin
        snippet = server.call('snippet.get', items[item])
        puts snippet['source']
      rescue
        TextMate::UI.alert(:critical, "Snipplr error", "Could not retrieve '#{item}'.")
      end
    end
  end
end

Revision: 9513
at November 11, 2008 00:10 by nighthawk


Initial Code
#!/usr/bin/ruby
$: << ENV['TM_SUPPORT_PATH'] + '/lib'

require "ui"
require "xmlrpc/client"

unless ENV['SNIPPLR_KEY']
  TextMate::UI.alert(:critical, "Snipplr error", "Please first set your 'SNIPPLR_KEY' in Preferences > Advanced > Shell Variables.")
  exit
end

TextMate::UI.request_string(:title => "Get Snippet from Snipplr",
                            :prompt => "Enter tags to search for:",
                            :button1 => "Search") do |tag|

  begin
    server = XMLRPC::Client.new2("http://snipplr.com/xml-rpc.php")
    snippet_list = server.call('snippet.list', ENV['SNIPPLR_KEY'], tag, 'title')
  rescue
    # fall through
  end

  unless snippet_list and snippet_list.length > 0
    TextMate::UI.alert(:warning, "Snipplr result", "No snippets for '#{tag}' found.")
  else
    items = {}
    snippet_list.each { |r| items[r['title']] = r['id'] }

    TextMate::UI.request_item(:items => items.keys.sort,
                              :title => "Snipplr result",
                              :prompt => "Choose",
                              :string => "Select which snippet to paste") do |item|
      begin
        snippet = server.call('snippet.get', items[item])
        puts snippet['source']
      rescue
        TextMate::UI.alert(:critical, "Snipplr error", "Could not retrieve '#{item}'.")
      end
    end
  end
end

Initial URL


Initial Description


Initial Title
TextMate Ruby Snippet Retrieval

Initial Tags
command, textmate, ruby

Initial Language
Ruby