Ruby

Hoe の install_gem が cygwin で動かない。

sudoを使おうとするため。Hoeのバージョンは1.3.0。./gems/hoe-1.3.0/lib/hoe.rb を直接編集して修正。定数CYGWINを追加して、 WINDOZE = /win32/ =~ RUBY_PLATFORM unless defined? WINDOZE CYGWIN = /cygwin/ =~ RUBY_PLATFORM unless defined? CYGWIN WIN…

newgem + rake package で "stopping only thread" というエラーが出て悩んだ。

newgem で作ったソースで rake package を実行すると、 rake aborted! stopping only thread note: use sleep to stop forever (See full trace by running task with --trace)というエラーが出るようになってしまって悩んだ。Manifestファイルの pkg/* の行…

SQLの条件を組み立てるRailsプラグイン Condition Builder 1.1

RailsでSQLの条件を扱う、Condition Builderプラグインが便利です。 最新版(1.1) http://blog.inquirylabs.com/2007/06/28/condition-builder-11/ 説明 http://blog.inquirylabs.com/2007/01/04/condition-builder-10-released/ 以前の記事 http://blog.inqu…

RailsのビューをJavaScript形式でレンダリングする。

<script type="text/javascript" src="/include.js"></script> ↓ document.write('<p>foobar<\/p>');のようにJavaScriptで外部HTMLをインクルードしたい場合。 document.writeをRailsで出力するメソッド。 def render_to_js(opts) str = render_to_string opts str = str.gsub(/[\r\n]/," ") str = str.gsub(/\\/,"\\\\") s</p>…

ActiveRecordのフォームの雛形を手っ取り早く作成する。

<%= form("record_name") %> で@record_nameのフォームを簡単に生成できるというのを知った。 http://api.rubyonrails.org/classes/ActionView/Helpers/ActiveRecordHelper.html でも細かい編集もしたかったので、以下のようにしてみた。 <%= form("record_n…

DateTimeにタイムゾーンを設定する。

>> n = DateTime.new(0) => #<DateTime: 3442115/2,0,2299161> >> n.to_s => "0000-01-01T00:00:00Z" >> n = n.new_offset(Rational(9,24)) # ←コレ => #<DateTime: 3442115/2,3/8,2299161> >> n.to_s => "0000-01-01T09:00:00+0900"</datetime:></datetime:>

rubyを1.8.6に上げるとXPathが正しく動作しなくなる?

http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-dev/30721 これと同じ問題で悩んでいます。バグじゃないかなー。attribute::* で全ての属性が取得できるのに、attribute::class みたいに属性の名前を指定すると何も返ってこなくなるみたいでした。…

HTMLエスケープして改行をbrに変換

application_helper.rbに追加する用。 def hbr(str) str = html_escape(str) str.gsub(/\r\n|\r|\n/, "<br />") end # <%=hbr textarea_value %>

Railsでセッションをオフにする。

ActionWebServiceを使っていたら、クライアント側にクッキーが設定されないせいで、リクエスト毎にセッションファイルが1つずつ増えていた。ので、セッションをオフにする方法を調べた。 http://wiki.rubyonrails.org/rails/pages/HowtoChangeSessionOptions…

Railsのバージョンを上げたらmodels以下のサブディレクトリの扱いが変わっていた。

app/models/abc/model_name.rbというファイルがあった場合、以前は ModelNameだったのが、1.2.3では Abc::ModelNameになってた。こっちのほうが正しい感じだけど、すごく困る。

ActionWebServiceの引数にXML特殊文字を2個続けて渡すとエラーが発生する問題、の続き

http://d.hatena.ne.jp/koseki2/20070316/AwsDoubleCharaEntity の続き。原因がわかった。AWSのバージョンは1.1.6。ActionPackのバージョンは1.12.5。エラーが発生している箇所は、ActionPack内のcgi_methods.rbで定義されている CGIMethods.parse_request_p…

ActionWebService を使うアプリケーションを作成する手順

ActionWebServiceを使う簡単なアプリケーションを作成した。AWSを使うとき毎回参考にしてるのはこのページ。 http://idm.s9.xrea.com/ratio/2006/04/17/000414.html 参考になります。 AWSを使ったウェブサービスの開発手順最初にrailsアプリケーションを生成…

ActionWebServiceで、引数に2個XMLの特殊文字が連続するとエラーになる。

(追記) http://d.hatena.ne.jp/koseki2/20070318/AwsDoubleCharaEntity2 に続きがあります。追記終わり。 下の記事の手順に従って、AWSを使うシンプルなアプリケーションを作成した後、client_controller.rbの、get_infoメソッドを次のように変えてみる。 cl…

text_areaメソッドは :size=>"30x10" のような指定ができない?

text_area_tag がサポートしている :size=>"30x10" のようなサイズ指定が、text_area だとうまく適用されない。 <%= text_area_tag("field_name", "value", :size=>"30x10") %> <%= text_area("obj_name", "method_name", :size=>"30x10") %>↓ <textarea cols="30" id="field_name" name="field_name" rows="10">value</textarea>

TimeとDateTimeと2038年問題

現在の Unix システムでの最大時刻は、協定世界時の2038年1月19日午前3時14分7秒です。 http://www.ruby-lang.org/ja/man/?cmd=view;name=Time Timeは2038/1/19以降がエラーになる。 >> Time.gm(2038,1,19).strftime("%Y-%m-%d %a") => "2038-01-19 Tue" >> …

Mongrelにシグナルハンドラによるトレース機能を追加する方法。

$ kill -QUIT `cat ./log/mongrel.pid`でトレースをオン・オフできるようにする方法。以下のスクリプトを保存し、-Sオプションでファイルを指定してMongrelを起動します。 # # mongrel_handlers.rb # require 'tracer' @my_tracer_flg = false trap("QUIT") …

Rails + MySQL (+ Mongrel?) でDB接続の通信が無い状態が続くとデッドロックする。

(追記) この問題について、原因はRubyの側にあるのではないかと考えています。特定の条件下でTCPSocket#flushを実行すると、スレッドが停止したまま処理が戻ってこなくなります。以下の投稿で、Railsを使わず再現する方法を説明しました。 http://blade.naga…

日本語で曜日入り日付フォーマット

t = Time.now puts t.strftime("%Y年%m月%d日(#{%w(日 月 火 水 木 金 土)[t.wday]}) %H時%M分%S秒") # 2007年01月23日(火) 17時09分43秒

Rubyの標準出力をバッファしない

STDOUT.sync = true

Ruby on Railsでクッキーにドメインやパスを指定すると、cookies.deleteで削除できなくなる。

rails 1.1.6 / actionpack-1.12.5 で。 http://dev.rubyonrails.org/ticket/3685 なんだかクッキーが消えないと思ったら、domainを指定していたせいでした。以下のアプリケーションで確認しました。 cook_controller.rb class CookController < ApplicationC…

パスワードをdatabase.ymlの外に追い出す方法

Ruby on RailsでDBのパスワードをdatabase.ymlの外に書く方法。Subversionにパスワードをコミットするのが嫌だったので調べた。database.ymlはERBで処理されるというのを知らなかった。 http://skwp.wordpress.com/2006/08/28/encrypted-db-passwords-for-ra…