2007-12-22 [長年日記]

[Rails] 優しい Google Code の使い方

プラギンの公開を、自前鯖でなくそろそろ Google Code でやってみようかと思う人にとって必要最小限のメモ。

想定

  • Google Account は取得済み
  • 手元に公開したい code がある
  • svn は知ってる

プロジェクト作成

  1. http://code.google.com/hosting/ で "Create a new project"
  2. プロジェクト情報を入力
項目内容(ここは自分のプロジェクトで)
Project Nameactivescaffoldhighlightquery
SummaryHighlight query plugin for Active Scaffold
DescriptionThis AS plugin highlights query words on search results
LicenseMIT License
LabelsRails ActiveScaffold plugin search highlight

これだけでプロジェクト用のページが完成 (※1)

http://code.google.com/p/activescaffoldhighlightquery/

(※1 プロジェクト名は url に使われる関係からか小文字とハイフンのみなので、一見spamのようなサイトになってしまった。適当なプロジェクト名(アプリ名)を付けた方がよさそうだ)

svn レポジトリ

この時点で、既に以下のレポジトリが有効になっている。

http://<プロジェクト名>.googlecode.com/svn/

今回の例では http://activescaffoldhighlightquery.googlecode.com/svn/ になる。我ながら嫌になるプロジェクト名ではあるが、それを除けば非常に直感的な名前であり、さらに /svn/ 以下には branches, tags, trunk まで準備されている辺り、さすがは Google 先生の心地よさである。

公開用レポジトリ

用途
ブランチhttp://activescaffoldhighlightquery.googlecode.com/svn/branches/
タグ用http://activescaffoldhighlightquery.googlecode.com/svn/tags/
開発用http://activescaffoldhighlightquery.googlecode.com/svn/trunk/

svn 保守

http だけでなく https も準備されているので、保守にはそちらを利用する方が安全だろう。

ユーザ名Google アカウントのユーザ名部分 (@google.com を除外)
パスワードhttp://code.google.com/hosting/settings

% svn checkout https://activescaffoldhighlightquery.googlecode.com/svn/trunk/ --username petitfeu

メモ

  • パスワードは Google アカウントのものではない (30分自分のパスワードを打ち続けた)
  • 別パスな理由は、複数の開発者で共有するため?
  • 有効なユーザは Google Code の利用アカウントのみ? (Gmailアカでは入れなかった)

参考

[Rails] ActiveScaffold highlight query plugin

てことで、ActiveScaffold を使っていて真っ先に欲しくなるベスト3である「検索文字列をハイライトする」プラグインです。

% cd vendor/plugins
% svn export http://activescaffoldhighlightquery.googlecode.com/svn/trunk/ active_scaffold_highlight_query

ashq.jpg

本日のツッコミ(全1件) [ツッコミを入れる]
_ ok (2008-12-07 10:26)

便利な機能をありがとうございます。<br>{カラム名}_columnでカラム内容をリンクに変更して使用していますが、リンクタグ内に検索文字が含まれているとリンクタグに色指定タグが付加されて正常にリンクできなくなってしまうので、<br><br># mark<br>keywords.each_with_index do |keyword, i|<br> text.gsub!(keyword, [i].pack("c"))<br>end<br># replace<br>colors = active_scaffold_config.search.colors<br> keywords.each_with_index do |keyword, i|<br> color = colors[i%colors.size]<br> html = %Q{<b style="color: black; background-color: #{color};">#{keyword}</b>}<br> text.gsub!([i].pack("c"), html)<br>end<br><br>ここを、以下のように修正して使用しています。<br><br># color<br>colors = active_scaffold_config.search.colors<br>keywords.each_with_index do |keyword, i|<br> color = colors[i%colors.size]<br> reg = /(?=(([^<>]*[<>]){2})*[^<>]*$)#{keyword}/i<br> text.gsub!(reg) {"<b style='color: black; background-color: #{color};'>#$&</b>"}<br>end


サイト内検索 (by Google)

| JRuby | Rails | Berryz | ℃-ute | エッグ | jQuery |

過去

2007年
12月
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

未来

コンタクト