anond show id
$X("//ul[@class='footstamps']/li").forEach(function (i) {
var id = $X("string(./img/@title)", i);
i.appendChild($N("span", {}, id));
});
$X("//ul[@class='footstamps']/li").forEach(function (i) {
var id = $X("string(./img/@title)", i);
i.appendChild($N("span", {}, id));
});
なんかよくわからん試行錯誤。
gem install hoe で sow って rake package とかは別にいいとして、rake release がうまくいかないというアレ。rubyforge ライブラリのほうの設定しないとだめっていう話っぽい?
$ rubyforge setup (~/.rubyforge/config.yml が初期化されて開く)
でごたごた書いて group_id, package_id を書いてやると (これ調べるのめんどい) 一応いきそうな幹事にはなる、けど、まだこれだとだめっぽい。なんなんだ
$ rake release VERSION=0.0.5 --trace -snip- ** Execute release Logging in at depth 0 - 18: self signed certificate Releasing charnames v. 0.0.5 tarball at depth 0 - 18: self signed certificate rake aborted! undefined method `[]' for nil:NilClass /usr/lib/ruby/gems/1.8/gems/rubyforge-0.3.1/lib/rubyforge.rb:215:in `add_release' /usr/lib/ruby/gems/1.8/gems/hoe-1.1.2/lib/hoe.rb:246:in `define_tasks' /usr/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:387:in `execute' /usr/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:387:in `execute' /usr/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:357:in `invoke' /usr/lib/ruby/1.8/thread.rb:135:in `synchronize' /usr/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:350:in `invoke' /usr/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:1906:in `run' /usr/lib/ruby/gems/1.8/gems/rake-0.7.1/lib/rake.rb:1906:in `run' /usr/lib/ruby/gems/1.8/gems/rake-0.7.1/bin/rake:7 /usr/bin/rake:18 exit 1
めんどい。とりあえず手動でリリースしてみた。http://rubyforge.org/frs/?group_id=2552
release_id を html からとってくる処理の部分でこけてる。puts html とかやって見てみるとログインできてないという……
パスワードが単純に間違ってるのかなぁと思って確かめたけど違うようには見えない。cat cookie.dat すると何も書いてない。あやしいなぁ……
めんどいよおお
CPAN は欲しいものがだいたいあるので諦めて、gem をひとつきに一個を目標にして作っていくよ><
名前に迷ったときは CPAN インスパイヤでつけていくことにする。多分一番幸せな方法だ。
gem 化できそうなの
オートリロードでリロードが楽になるのはいいんだけど、リロードさせるために設定をしたりとかするのがすっごいめんどく感じるようになってきたので設定もオートでやろうぜって思った。
Rinda::Ring は UDP で検索したり登録したりしてサービス呼び出せるライブラリで、これを使うと一瞬で上のようなことができちゃってオレスゲー感を味わえます。ちょーLL
まず tuplespace を起動する。以下のスクリプトそのまま。このタプルスペースはサービスの情報を統括してる。
require 'rinda/ring'
require 'rinda/tuplespace'
DRb.start_service
ts = Rinda::TupleSpace.new
place = Rinda::RingServer.new(ts)
DRb.thread.join
次に各種リロードサービスを tuplespace に登録するスクリプト。 こいつらはブラウザとともに常駐して、リロード要求をうけつける。これらはもちろん RingServer と同じホストで動いている必要はない。
以下は例
reloadfx.rb
#!/usr/bin/ruby
require 'rinda/ring'
require 'net/telnet'
class Reload
def reload
telnet = Net::Telnet.new({
"Host" => "localhost",
"Port" => 4242
})
telnet.puts("content.location.reload(true)")
telnet.close
end
end
reload = Reload.new
DRb.start_service(nil, reload)
provider = Rinda::RingProvider.new(:Reload, DRbObject.new(reload), 'Reload')
provider.provide
DRb.thread.join
reloadsafari.rb
#!/usr/bin/ruby
require 'rinda/ring'
require 'net/telnet'
class Reload
def reload
<<-`EOC`
osascript -e '
tell application "Safari"
do JavaScript "location = (location.href);" in document 1
end tell
'
EOC
end
end
reload = Reload.new
DRb.start_service(nil, reload)
provider = Rinda::RingProvider.new(:Reload, DRbObject.new(reload), 'Reload')
provider.provide
DRb.thread.join
でもって、上記サービスをタプルスペースから検索し、リロードメソッドを呼ぶスクリプト
#!/usr/bin/ruby
# reload.rb
require 'rinda/ring'
DRb.start_service
ts = Rinda::RingFinger.primary
ts.read_all([:name, :Reload, DRbObject, nil]).each do |i|
begin
p i[2].reload
rescue Exception => e
puts e.message
puts e.backtrace
end
end
この reload.rb を呼ぶだけで、何の設定もなしに、ネットワーク内のブラウザをリロードする。
新しくブラウザを起動したら同時にそのブラウザ用の Provider を起動すれば、それも何の設定もなしにリロードしてくれるってわけですよ。やばい!
Rinda::Ring さいこう>< DRb は Ruby の宝><
もうちょっといぢってみる。
毎回プロジェクト登録するのめんどいから、なんか包括的なプロジェクトつくって、それにパッケージ追加していくほうがいいのかなぁ。
すごい困る。
gems を使う上で関連づいていなければならない三つ(!)の名前がある
どういう規則でつけるかが決まってない。上のだと case が保たれてない。
それと CPAN みたいに WebService::Foo::Bar みたいなのを作ろうと思うと、それぞれのライブラリで module WebService を定義してあげないといけない。
begin
WebService
rescue NameError
WebService = Module.new
end
begin
Foo
rescue NameError
Foo = Module.new
endとか毎回やるのはアレだしどうするんだろう。
http://wiki.rails2u.com/misc/string_flections
web_service/cgi => WebService::Cgi
あ
module WebService
module Foo
class Bar
end
end
endて書けばいいのか。インデントが増えまくり
あたりが妥当か
しかし
module Foo
end
class Foo #=> Foo is not a class (TypeError)
endとかなるから何をクラスにしてなにをモジュールにするのかが問題に……
って誰かが言ってたネタだったっけ……
サイトにアクセスすると誰かの tty が覗けるサービス。
svk のリポジトリ管理サブコマンドを忘れた。help しても対して情報だしてくれない。
svk help intro
svk mirror --list
UserAgent::RandomProxyByCyberSyndrome