どうでもいいメモ
2007/06/01
2007/05/31
rails の link_to で https リンクを作る方法
link_to, start_form_tag, url_for などで https:// から始まるリンクを作成する方法。
protocol というオプションがあるが、これを設定するだけでは何も起こらない。
実際には、
<%= link_to { :action => :hoge, :only_path => false, :protocol => 'https://', }%>
のようにする必要がある。つまり、only_path というオプションをさらに設定しなければいけない。
only_path というのは相対パスのみ出力する、というオプション。これに false を設定すれば絶対パスが返る。
protocol というオプションがあるが、これを設定するだけでは何も起こらない。
実際には、
<%= link_to { :action => :hoge, :only_path => false, :protocol => 'https://', }%>
のようにする必要がある。つまり、only_path というオプションをさらに設定しなければいけない。
only_path というのは相対パスのみ出力する、というオプション。これに false を設定すれば絶対パスが返る。
2007/05/29
trac の db (sqlite3) を直接触ってみる
trac は便利なプロジェクト管理ツールだけれども、
プロジェクトをまたがった todo 管理などが弱い。
そこをまとめたいと思い、まずは trac で使われている
DB の構造などを調査することにした。
データは sqlite3 で、ファイルは db/trac.db だ。
これをコンソールから直接いじくってみよう。
壊すといけないのでホームにコピー。
$ sqlite3 trac.db
SQLite version 3.3.6
Enter ".help" for instructions
sqlite>
でsqlite3 クライアントが起動する。
システムコマンドは . から始まる。例えば .tables でテーブル一覧、.output でクエリ結果の出力先変更、.schema でテーブルのスキーマ表示、など。コマンド一覧は .help で確認できる。
sqlite> .tables
attachment node_change session_attribute version
auth_cookie permission system wiki
component report ticket
enum revision ticket_change
milestone session ticket_custom
以上のテーブルが存在する。
トラックの情報をプロジェクト横断的に集めるのが今回の目的なので、
今回は ticket テーブルだけ見ていればいい。
SELECT * FROM ticket WHERE owner = 'omae' AND status != 'closed'
ruby で書くと次のような感じで取得できる。
sqlite3 コマンドはどうも複数データベースを同時には開けないようなので、
一つ一つデータベースを開いてセレクトしてくる必要がある。
プロジェクトをまたがった todo 管理などが弱い。
そこをまとめたいと思い、まずは trac で使われている
DB の構造などを調査することにした。
データは sqlite3 で、ファイルは db/trac.db だ。
これをコンソールから直接いじくってみよう。
壊すといけないのでホームにコピー。
$ sqlite3 trac.db
SQLite version 3.3.6
Enter ".help" for instructions
sqlite>
でsqlite3 クライアントが起動する。
システムコマンドは . から始まる。例えば .tables でテーブル一覧、.output でクエリ結果の出力先変更、.schema でテーブルのスキーマ表示、など。コマンド一覧は .help で確認できる。
sqlite> .tables
attachment node_change session_attribute version
auth_cookie permission system wiki
component report ticket
enum revision ticket_change
milestone session ticket_custom
以上のテーブルが存在する。
attachment | 添付ファイル名一覧。 |
---|---|
auth_cookie | IPとクッキーの対応表。 |
component | チケットの「component」項目の選択肢。 |
enum | チケットのその他の項目の選択しがまとめて入ってる |
mileston | チケットの「mileston」項目の選択肢。 |
node_change | svn の各バージョンごとにどういう変更があったか? |
permission | ユーザごとのパーミッション |
report | レポートを表示するための sql。 |
revision | svn revision とコミットログ |
session | web 画面の session |
session_attribute | セッションの中身 |
system | trac を動作させる上で持ちいるいくつかの変数。svn の現在のバージョンなど。 |
ticket | チケット情報 |
ticket_change | チケットの更新ログ |
ticket_custom | 各チケットのカスタム項目の値 |
version | チケットの「version」項目の値。 |
wiki | wiki の本文。 |
トラックの情報をプロジェクト横断的に集めるのが今回の目的なので、
今回は ticket テーブルだけ見ていればいい。
SELECT * FROM ticket WHERE owner = 'omae' AND status != 'closed'
ruby で書くと次のような感じで取得できる。
#!/usr/local/bin/ruby -Ku
require "sqlite3"
db = SQLite3::Database.new("trac.db")
db.type_translation = true
sql = "SELECT * FROM ticket WHERE owner = 'omae' AND status != 'closed'"
result = db.execute( sql )
result.each do |row|
p row
end
sqlite3 コマンドはどうも複数データベースを同時には開けないようなので、
一つ一つデータベースを開いてセレクトしてくる必要がある。
2007/05/26
javascript で幅に合わせて文字列を切りつめる
長い文章を途中でカットして末尾に「・・・」をつける、
というのはよくある作業。
http://d.hatena.ne.jp/Psychs/20070525/1180077269
ではこれを javascript で行う方法が紹介されているけれど、
他の方法に比べてよい点は、実際の表示幅でカットできること。
というのはよくある作業。
http://d.hatena.ne.jp/Psychs/20070525/1180077269
ではこれを javascript で行う方法が紹介されているけれど、
他の方法に比べてよい点は、実際の表示幅でカットできること。
ラベル:
javascript,
tech
[ruby] グラフ描画ライブラリ Gruff
ruby で書かれたグラフ描画ライブラリ Gruff。
インストールには ImageMagick と RMagick が必要。
gruff 自体は gem で一発。
sudo gem install gruff
以下、サンプルコード
require 'rubygems'
gem 'gruff'
require "gruff"
g = Gruff::Line.new 1000
g.data "Test0", [1, 2, 3, 2, 5, 1]
g.data("Test2", [4, 8, 7, 9, 8, 9])
g.write "test.png"
見出しには日本語は使えない。
インストールには ImageMagick と RMagick が必要。
gruff 自体は gem で一発。
sudo gem install gruff
以下、サンプルコード
require 'rubygems'
gem 'gruff'
require "gruff"
g = Gruff::Line.new 1000
g.data "Test0", [1, 2, 3, 2, 5, 1]
g.data("Test2", [4, 8, 7, 9, 8, 9])
g.write "test.png"
見出しには日本語は使えない。
2007/05/25
登録:
投稿 (Atom)