実行時にtemplateを切り替える

投稿者 nanki 2005-10-14 06:44:00 GMT

ユーザの権限などで、使用するテンプレートセットを変えたい場合、ActionController の中で、

class ApplicationController < ActionController::Base
  before_filter :authorize

  private
  def authorize
    return unless @member.guest?
    template_root = "#{RAILS_ROOT}/app/views/guest/"
    @template.base_path = template_root
  end
end

とやればいいみたい。

参考:

changing your ActionController template_root per request


街区レベル位置参照情報

投稿者 nanki 2005-10-11 02:09:00 GMT

今更ながら、このデータでまじめに遊びだした。

街区レベル位置参照情報

ざっと眺めてみると、1.5GBほどあり、表記揺れもあり、分け方も、都道府県、市区町村、それ以下という分け方なので、ちょっと使いにくいかも。

たとえば、「なんとか郡なんとか町」というデータも、郡と町で分かれてて欲しい気がするんだけど、つながってる。

実用上は、それでなくてもいいのだが、データの間違いを探すためにはその方が都合がよい。

とりあえず、市区町村の部分に関して、Google で検索して、件数が少ないものを見てみたが、さすがに間違いはないようだ。

しかし、その過程で、市町村合併に微妙に追いついてないことにも気がついた。

どうしたものか。


先頭から順番に、次に来ることを期待する候補を絞って、さらに例外的を数個リストアップしておく、という方法で比較的精度の高い結果が得られた。

なんか、ちゃんとやるとIME みたいなのができそうだからやめておこう。


finetype

投稿者 nanki 2005-10-08 06:19:00 GMT

日本語がきれい。

なプラグインを書いてみた。 タグでくくった文字が所望のフォントでレンダリングされる。

プレビューに反映されるので気持ちがいい。もう一丁!!
画鋲投げ

MarkupLanguageのタグというのは結局、名前付き引数で関数呼ぶのと変わらないから、こういうことをするのに非常に向いている。

仕組み上、画像を生成するタイミングは完全にサーバ側が握っているので、フォントデータが出回ってしまうこともないし、外部から任意の文字がレンダリングされることもない、フォントベンダーに優しい(?)設計となっている。・・・と思ったら、コメント欄でも使えてしまう。

現状の問題点

  • 打ち間違えると、履歴が全部画像キャッシュに残ってしまう。
  • コメント欄でも使えちゃう。

svn merge

投稿者 nanki 2005-10-07 01:19:00 GMT

Typo のコードをカスタマイズするにあたって、当然、subversion でバージョン管理を行いたいという欲求が沸いてくる。 本家にcommit するわけにはいかないので、自前のリポジトリを使うのだが、本家から最新のコードも取り入れたい。 subversion にはこの要求を満たす方法があるようで、本当にこれが正解なのかわからないけど、とりあえずメモ。

$ svn export typo/ my/typo/

で.svn などの情報の省かれたコード一式を my/typo/ に書き出す。 これを自前のリポジトリとして管理する。

本家からのコードは、

$ svn merge -r 666:667 svn://leetsoft.com/typo/trunk my/typo

とすることで、rev 666rev 667 の差分をmergeできる。


Flash 8

投稿者 nanki 2005-10-06 07:24:00 GMT

Flash8 の新機能のFilterで遊んでみた。

Typo でSWF をインラインで表示する方法がなかったので、マクロを書いてみた。

こんなタグを書くだけでSWF が貼り付けられるようになった。

<typo:swf path="/files/depth_blur.swf"/>

やっぱ楽だ。 MovableType にしなくてよかったぜ。

finalRealityのパクリ

念仏を12回唱えたのと同じ御利益


Typo installed.

投稿者 nanki 2005-10-06 06:10:00 GMT

久しぶりにblog tool を探してみると、rails で書かれたよさげなのがあったので、入れてみた。

Typo

$ svn checkout svn://leetsoft.com/typo/trunk typo

でリポジトリから最新版を取得。

mysql にDB を作成し、db/schema.mysql.sql の内容をmysql に食わせる。

次に、config/database.yml を作ったDB名やユーザ名に合わせて修正。

$ script/server -p 8000

で起動する。

日本語も問題なく通ったし、これは使えそうだ。

まだ登場して間もない(であろう)ツールだが、ざっと見てみると必要な機能は十分そろっていている上に、必要の無い機能まで充実している。

ajax を利用したリッチなインターフェースが多用されており、記事を書いている間も、右上でリアルタイムプレビューが動いている。

ただ、ちょっと重たい。

データの移行もmysql データベースなので、簡単だ。

もうちょっと速いマシンに入れて遊んでみよう。


ここから速いマシン。

なかなか快適。

rubyのコードも色づけしてくれる・・・

class Foo
  def bar
    "abcde"
  end
end

小さなグラフも埋め込める。