Hatena::Grouprubyist

Going My Ruby Way このページをアンテナに追加 RSSフィード

Ruby ロゴ (C) Ruby Association LLC

2011年07月25日(月)

Firefox 用 るりまサーチ検索プラグイン

18:31 | Firefox 用 るりまサーチ検索プラグイン - Going My Ruby Way を含むブックマーク はてなブックマーク - Firefox 用 るりまサーチ検索プラグイン - Going My Ruby Way Firefox 用 るりまサーチ検索プラグイン - Going My Ruby Way のブックマークコメント

Firefox 用 るりまサーチ検索プラグインです。(想定環境 Ubuntu Linux 11.04/Firefox 5.0)

f:id:lnznt:20110725214633j:image

----

検索プラグインのファイルです。

/usr/lib/firefox-addons/searchplugins/ja/rurema-ja.xml

(2011/08/06 [修正] rurima-ja.xml を rurema-ja.xml に修正)

<?xml version="1.0" encoding="UTF-8"?>
<SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
<ShortName>るりまサーチ</ShortName>
<Description>るりまサーチ</Description>
<InputEncoding>UTF-8</InputEncoding>
<Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAANkSURBVDiNbdPba5t1HMfx9+/J0yRNk6anpWdLtWXtaOeYOutYia7WCxkM52nYUcWhXgxRGY4JIt5KcV7owAgbuDmKVQo67ZWloLJZl3XDHpx1LbZNeliyLIfmeZrn9POiVkX8/gEv+Hw+fIWUkv+5VuColUolbW09YGuaKRSXS3rdIV9D06fAFUACiP8A/esT4yetW6vNoqB7vK07CtnpSe/K+bP6bY9fX7karQi0btc6Xn3t1+YDB3uADFJKpJTtVi47s3TuE+fyrkZ5uc4lrzaocvGVZ6VjFMz54S8Ko/3Pya97uuXQve3ys842+87iQkRKiQLsz85Mfv9z/xPt1994WWTjMQyhIBrvxjQNkJLq7S2WvrY8n7w2QToeowDK7LffdAEoi8ODF8ce31u1+sMoDmA4kg3DIjN/Ez2TIR/9MR8feMcXWp1rrA+Hb+QdydpyjGwi4QNQfjrW7zO0PA5gC7D/QgqOpPJQn/nLsReDqYU46USySI6PtbWGu28YXp9dEgqVAai2baMACAFSgtjsN7hzN6UPhVM6ruqS2iaqHthnqOWVJl5vXcuRF6zSpns0ANURW4P8g6h+P50DH1s2eMsP9TnpiaiyePErd+pWwp03Te57/YSs3b0nDqAWHPAo/0IUhfsjF2x3IaXmpm6mJz94L+irqcNIp5GGgb+2Dmc1IRS4DaDoNmw44Ahwbwux79ywJScvuZZOvYs+PlYd6Og0ErEYWpEbz11NtB3ukysjIyDE0ibggG5DqOcA+wdHjMTZiDoXOcNa9DcWzg956x/uXbOEIJfJYLiKpJPJCV9NDYrHMwugeuqbCJ98m+aubuP688+4c3OzIOXfiQLeYt0SCqLYT8fTh/njyyEa2julp6JiAkB5afTS8o6DT6ZmPx+UYs/eXMWRo0nR0GhrhoFmGGAWfBaCruNv6tGPBoRQBdtaWzSX2z0FoKZPv1WXd1XOzZ65UGGZmkfX8oHqR3plebg351aUDSuRqOp9/0Pz2ulTxbZp4ChQUhbUgdTmCleiTsLfohfSaYoba9jI54mNfSfMsdGAgRJ48PgJ6cxMi2x8ESkluXQSb0mxtvV96p3EeiSVij/l4JDPpHEFgzjZHEWlZbQ9+hi5SESoBZ3OnbuY+n2a9WQSxeu1toA/AY53rtb+tv1rAAAAAElFTkSuQmCC</Image>
<Url type="text/html" method="GET" template="http://doc.ruby-lang.org/ja/search/query:{searchTerms}/">
</Url>
<SearchForm>http://doc.ruby-lang.org/ja/search/</SearchForm>
</SearchPlugin>

----

Windows XP / Firefox 5.0 では、以下のフォルダに rurema-ja.xml を置きます。

-----

1.9.2 をあらかじめ指定して検索する場合は、Url 要素の template を、

template="http://doc.ruby-lang.org/ja/search/query:{searchTerms}/version:1.9.2/"

にして下さい。1.8.7 の場合は同様に以下のようにします。

template="http://doc.ruby-lang.org/ja/search/query:{searchTerms}/version:1.8.7/"

-----

イメージ画像は、るりまサーチのアイコンを使わせていただきました。

イメージ画像の Base64 エンコーディングのはき出し方です。

$ irb -r open-uri
>> uri = 'http://doc.ruby-lang.org/ja/search/images/version-icon.png'
...
>> img = open(uri) {|f| f.read }
...
>> b = [img].pack('m').gsub("\n",'')
=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQC....(略)"

Ruby 1.9 では、Base64 モジュールで Base64 エンコーディングもできます。

(irb のオプションに -r base64 を加えておく)

>> b = Base64.encode64(img).gsub("\n", '')
=> "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQC....(略)"

----

無限リスト

| 18:28 |  無限リスト - Going My Ruby Way を含むブックマーク はてなブックマーク -  無限リスト - Going My Ruby Way  無限リスト - Going My Ruby Way のブックマークコメント

無限リスト(遅延ストリーム)。

理解のため、下の参考書籍を参考(というかほとんど同じですが)に書いてみました。

#!/usr/bin/env ruby
# -*- coding: utf-8 -*-

class LazyStream
  def initialize(value)
    @value = value
    @next  = lambda { self.class.new(value.next) }
  end

  def next
    @next.call
  end

  attr_reader :value
end

l = LazyStream.new(100)

10.times do
  p l.value
  l = l.next
end

# vi:set ts=2 sw=2 et fenc=UTF-8:

-----

Ruby Magazine 34号 に遅延評価の面白い記事が載っていました。

-----

参考書籍