/ Published in: Ruby
Alternative bundle command for e (http://www.e-texteditor.com) or TextMate.
Replace YOUR_API_KEY_HERE with a valid API key -- you can find it on your Settings page (http://snipplr.com/settings/).
Changed the command to allow selection of language. (Thanks, Tyler!) Also it was unnecessary to escape entities when posting to Snipplr, so that caused problems. Please let me know if you have any issues with or suggestions for this command. If you're using TextMate, you'll need to alter the path to CocoaDialog, and you might as well use an environment variable for the API Key.
2/2/2007: Fixed a bug that prevented posting snippets with no tags. Languages are now sorted alphabetically.
Replace YOUR_API_KEY_HERE with a valid API key -- you can find it on your Settings page (http://snipplr.com/settings/).
Changed the command to allow selection of language. (Thanks, Tyler!) Also it was unnecessary to escape entities when posting to Snipplr, so that caused problems. Please let me know if you have any issues with or suggestions for this command. If you're using TextMate, you'll need to alter the path to CocoaDialog, and you might as well use an environment variable for the API Key.
2/2/2007: Fixed a bug that prevented posting snippets with no tags. Languages are now sorted alphabetically.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
#!/usr/bin/env ruby -w require "xmlrpc/client" require ENV['TM_SUPPORT_PATH'] + "/lib/exit_codes.rb" code = STDIN.read COCOA_DIALOG = ENV['TM_SUPPORT_PATH'] + '/bin/CocoaDialog.exe' API_KEY = "YOUR_API_KEY_HERE" server = XMLRPC::Client.new( "snipplr.com", "/xml-rpc.php") if 0 == server.call("user.checkkey", API_KEY) puts "#{API_KEY} was not accepted as a valid API Key" TextMate.exit_show_tool_tip end title_bx = %x("#{COCOA_DIALOG}" standard-inputbox \ --title "Snippet Name" \ --no-newline \ --informative text "Enter a name for your new snippet:" ) button, title = title_bx.split("\n") TextMate.exit_discard if "2" == button || title.nil? languages = server.call("languages.list") langs_arr = [] languages.each_value{|k| langs_arr.push(k)} language_list = "" langs_arr.sort.each{ |k| language_list += "'#{k}' "} lang_bx = %x("#{COCOA_DIALOG}" dropdown \ --string-output --no-newline \ --title "Snippet Language" \ --text "Please choose a language for you snippet:" \ --items #{language_list} \ --button1 "Accept" --button2 "Cancel") button, language_selection = lang_bx.split("\n") TextMate.exit_discard if "Cancel" == button language = languages.index(language_selection) tags_bx = %x("#{COCOA_DIALOG}" standard-inputbox \ --no-newline \ --title "Snippet Tags" \ --informative text "Enter A space delimited list of keywords:" ) button, tags = tags_bx.split("\n") TextMate.exit_discard if "2" == button tags = "" if tags.nil? server.call("snippet.post", API_KEY, title, code, tags, language) puts "Added your snippet!"