[ruby] gistにコードの断片をほいほいupする。

手元で軽いスケッチ書いてそれをgistで管理するってのが流行ってるんだけど、わざわざgistのページまで行って書いたコードをコピペするの面倒臭いなぁって思い、書いた。手元でスケッチ書いて名前付けて保存して実行する。

$ gist.rb hoge.pl

みたいな感じで。

#!/usr/bin/env ruby
require 'pit'
require 'mechanize'
require 'uri'

pit = Pit.get('github', :require => { 
              'username' => 'username',
              'password' => 'password'})

BASE = URI('http://gist.github.com/')
@agent = WWW::Mechanize.new
login_page = @agent.get(BASE + 'login?return_to=gist')
login_form = login_page.forms.first
login_form['login'] = pit['username']
login_form['password'] = pit['password']
@agent.submit(login_form)

gist_new_page = @agent.get(BASE)
filename = ARGV.shift
language = '.'+ filename.split('.').last
File.open(filename) { |file| @content = file.read }
gist_form = gist_new_page.forms.first
gist_form["file_name[gistfile1]"] = filename
gist_form["file_contents[gistfile1]"] = @content
gist_form["file_ext[gistfile1]"] = language
@agent.submit(gist_form)
p @agent.page.links.href(/^git:/).text

ベタ書き。エラー処理も何も書いていないけど。これ自体がスケッチ。
もちろんこのソースもgistにおいてある。http://gist.github.com/2764