検索:
以降の記事を見る

This is ARAKI's daily notes.

実ノ商人ハ先モ立チ我モ立ツコトヲ思フナリ

管理/ トップ/
カテゴリ/ 日記(全部): 技術系: devel: postfix: donrails: rails: ruby: mono: food: road:

カテゴリ: ruby の記事 [リスト]

  • rails(35) / ruby on railsに関するメモ。
#1 [devel][ruby] DB2 rails
A major milestone for DB2 on Rails | DB2 on Rails
Speaking of Rails 2.2, which is about to be released, you’ll finally be able to run rails my_app -d ibm_db. This will generate a DB2-specific config/database.yml file.
ともかくgem ibm_dbの1.0がでたようだ.はやいとここいつもためさんとな.

written by Ar- at Sun Nov 09 03:12:11 UTC 2008
#1 [ruby][donrails][rails][debian] rails2.0.2+ruby1.8.7でtestを通らなくなった.

donrailsがうごいてるdonrails.araki.netではruby1.8.5で動いているので問題ないのだが,ノートの上のsidではrubyが1.8.7にあがったようで,rails2.0.2+ruby1.8.7でtestを通らなくなった.

まずひとつ目はtruncate(/var/lib/gems/1.8/gems/actionpack-2.0.2/lib/action_view/helpers/text_helper.rb)を見てみる.

      def truncate(text, length = 30, truncate_string = "...")
        if text.nil? then return end
        l = length - truncate_string.chars.length
        (text.chars.length > length ? text.chars[0...l] + truncate_string : text).to_s
      end

どうやらtext.chars.lengthというのを中で使っていて,ruby1.8.7ではtext.chars.lengthがつかえない.これはので,text.chars.to_a.lengthとすれば回避できた.1.8.7で,Enumerable::Enumerator を返すようになったのが問題なのかな.

irb(main):001:0> "hoge".chars.length
NoMethodError: undefined method `length' for #<enumerable::enumerator:0xb7be8c70>
        from (irb):1
irb(main):002:0> "hoge".chars.to_a.length
=> 4
irb(main):003:0> "hoge".length
=> 4

というかんじ.はて.etchではどうかとおもったが,

irb(main):001:0> "hoge".chars.length
NoMethodError: undefined method `chars' for "hoge":String
        from (irb):1
irb(main):002:0> "hoge".chars.to_a.length
NoMethodError: undefined method `chars' for "hoge":String
        from (irb):2
        from :0
irb(main):003:0> "hoge".length
=> 4
irb(main):004:0> RUBY_VERSION
=> "1.8.5"

あれれ.しかしどっちにしろ"hoge".lengthですむのになんでString.charsなってんだろ.国際化対応のせいなのかなあ..よーわからん.世にはこんなパッチを出している人もいるようで. http://www.ruby-mine.de/assets/2007/12/31/ruby-19-on-rails-fixes.diff

手元ではrails2.1.0 + ruby1.8.7でやる時期がきたのかもしれない.


written by Ar- at Tue Jun 17 13:47:42 UTC 2008
#1 [ruby][rails] rails 2.0.1とjrubyと。。

あくまでメインは仕事のためなんだが、仕事の実装がJRubyでは動かないままだったのだが、土曜にJRuby1.0.3もでたし、railsも2.0.1でたし、ってことでちゃんと動かしてみようと。が、結果から言うと、クリーンで単純なものならあっさり動き、自分がいじっているコードはそうじゃないので大変。というものであった。いっそsvnきりなおしてcleanなとこから書きなおしてやろうか。。というかんじである。

  • ActiveScaffoldはtrunkにしないとrails2.0.1では動かない。rake testの段階で詰まるのでrake testしてりゃ気がつく。
  • そういうときはsvn externalするのが常套なのだがすっかり忘れていた。
    svn propedit svn:externals vender/plugins
    
    するとeditorで
    active_scaffold http://activescaffold.googlecode.com/svn/trunk
    
  • database.ymlにsocket: でmysqlのsocketをかいてやらんと、rails2.0にしたせいかdefaultの位置がズレているようでだめだった。

まあともかくどうしてくれようか感ただようので、手でdrbあげていたところも、BackgrounDRbにしたいところだし。どうするかなあ。

とはいえ1/6と1/9とにconference締切が迫っているので本質的なところで時間が。


written by Ar- at Tue Dec 18 00:11:24 UTC 2007
#1 [book][ruby][rails] Railsの本が乱立していますが、私は前田さん監訳の本か、くまくまーの人の本がおすすめ

ふと気がつくとberliosにdonrailsをつっこんでからもう1年以上たつわけですが、昨今のrails関連本のでまくりっぷりにはおどろくばかりです。

とりあえず本屋には5冊以上ならんでいるわけですが、このどちらかの本がおすすめなんじゃないかと思います。

RailsによるアジャイルWebアプリケーション開発

英語版が出たときにpdfで購入したりして読んでいた本ですが、DHHのコメントがはいっていたりしますし、設計の段階の雰囲気が手書の(ホワイトボード風?)絵がはいっていたりしてなかなかいい。というかショッピングカートをつくってショッピングサイトの構築をしつつ説明をしていく前半と、後半のこまかな話がとてもいい作りの本。そういうわけで、「きちんと」というか本を前からよんだあとで使いたいんだ、という人にはむいていると思う。ただし、rails0.13?くらいの記述なので、もっともっと楽をしたい人は、webをあさる必要があるなと。

一方で、

Ruby on Rails入門—優しいRailsの育て方というくまくまーの人の本

これは、railsの使い方なんてFour Days on Railsで、さくっとわかるし、実際それで書きはじめたぜー、な人にはおすすめでしょうか。ちんたらexampleについていく必要はない人にはいいと思う。

やっぱりあたらしい本だけあって、pluginが充実している。こんなpluginがあるから楽しましょう、なのが後ろのほうにある。

rakeのつかい方ひとつとっても1.0、1.1以降ではいった微妙に便利な

 rake tmp:sessions:clear

とか、そういうのまで解説がはいっている。


at Thu Aug 24 14:52:50 UTC 2006
#1 [devel][ruby][donrails][rails] モブログ(いっててはずかしいな)のためのちっこいツール。

ふと思いたってdonrailsの中にはいってたmail2atomを独立させた。

  • ruby, ActiveRecord, htreeあたりに依存している。
  • 受け側は、AtomPOSTに対応している必要がある。
  • 本文はtext/plain、text/htmlに対応している。multipart/alternativeだったらhtmlを使う。
  • 画像ファイルが添付されていればそれもpostする。

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

使いかたは簡単。svnでひっこぬいてきてから設定をかいて、.forwardを書く。

設定ファイル1 (~/.donrails/atompost.yaml)

user: ユーザ名
pass: パスワード
target_url: http://donrails.araki.net/atom/post
target_url_image: http://donrails.araki.net/atom/image_post
certify_mailaddress: yasu@debian.or.jp
report_mailaddress: yasuhiro@example.com
category: misc

設定ファイル2 (~/.donrails/atomcheck.yaml)

dbfile: /home/yasu/.donrails/data.db
adapter: sqlite3

.forward

"|IFS=' ' && exec ruby -I /home/yasu/tool/mail2atom /home/yasu/tool/mail2atom/atommail.rb || exit 75 #yasu"

at Thu Aug 24 14:51:52 UTC 2006
#1 [ruby] irb小ネタ by ay

うーむよくよめだなという話。ayさめによるアリガタイおはなしのメモ。

irbで補完したかったら

 require "irb/completion"

を~/.irbrcに書いとけと。

そしてそのテのネタはdebianなら

 /usr/share/doc/irb1.8/irb-tools.rd.ja.gz

に書いてあるだろうと。

requireの補完もできるとか。


at Wed Jul 19 01:41:38 UTC 2006
#2 [debian][ruby][debian][ruby] automatically generate Debian packages(*.deb) from gems (*.gem) in rubyforge.org

automatically generate debian packages(*.deb) from gems (*.gem) in rubyforge.orgという記事。すばらしいな。

とりあえずCをつかったものはうまくいかないようだが、ほぼこまらなそうだ。さっそく使ってみることにしよう。

Pure ruby gems are converted fine. However, ones including C extensionsare not, because Debian libraries on which the gem build-depends have tobe written in the control file in a manual way.


at Thu Jul 19 00:25:25 UTC 2007
#3 [debian][ruby][debian][ruby] automatically generate Debian packages(*.deb) from gems (*.gem) in rubyforge.org

automatically generate debian packages(*.deb) from gems (*.gem) in rubyforge.orgという記事。すばらしいな。

とりあえずCをつかったものはうまくいかないようだが、ほぼこまらなそうだ。さっそく使ってみることにしよう。

Pure ruby gems are converted fine. However, ones including C extensionsare not, because Debian libraries on which the gem build-depends have tobe written in the control file in a manual way.


at Thu Jul 19 00:25:25 UTC 2007
#1 [mail][ruby][spam] DIONのspamサービスでひっかけた元のメールをbogofilterにつっこむスクリプトをこさえてみた

DION迷惑メールフィルターというやつを使っている。

こいつは、迷惑メールだと判定したら、

 X-DION-Antispam: YES

というヘッダをつけてくれるので、これをprocmailでひっかけて専用のdirにいれていた。

ぜんぶおまかせしておけばまあ、それでいいわけだが、その結果をbogofilterにつっこもうと

おもった。

この処理されたメールはmime multipartで1st partに

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
添付のメールはDION迷惑メールフィルターにて迷惑メールと判定されました。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

とかいうのがはいって、2nd partに元のメール本文がはいっている。

この内容をbogofilterにくわせりゃいいというわけでつくってみた。

はじめてTMailつかってみたけどけっこういいかんじだ。

libtmail-ruby1.8とbogofilterがあればたぶん動くはずだな。

まあはしらせると、

"/home/yaar/Mail/meiwaku/5921"
Subject: Get FREE 3 Months of Starz + $100 Rebate with Dish Network!
# 258 words, 1 message

みたいなのが表示されて、学習した結果は、trash-learned行き。

あまりでかいmailは学習対象からはずしてもみた。

#!/usr/bin/env ruby
require 'tmail'
learneddir = "#{ENV['HOME']}/Mail/trash-learned/"
loader = TMail::MhLoader.new("#{ENV['HOME']}/Mail/meiwaku")
#loader = TMail::MhLoader.new("#{ENV['HOME']}/Mail/meiwakutest")
loader.each_port do |port|
  puts
  p port.filename
  mail = TMail::Mail.new(port)
  if mail.multipart?
    mail.parts.each do |m|
      if m.main_type == 'message' and m.body.size <= 32768
        begin
          so = TMail::Mail.parse(m.body)
          puts 'Subject: ' + so.subject 
          
          IO.popen("bogofilter -s -vv", "w") do |bogo|
            bogo.puts m.body
          end
          
          bf = File.basename(port.filename)
          backupfile = learneddir + bf
          File.rename(port.filename, backupfile)
        rescue
          p $!
        end
      end
    end
  end
end

at Thu Jul 06 04:01:50 UTC 2006
#1 [ruby] ActiveRecordをin-memoryでつかう
  • sqliteなら、http://jamis.jamisbuck.org/articles/2005/10/03/easy-activerecord-scripts
  • rails前提なら、http://wiki.rubyonrails.com/rails/pages/HowtoChangeSessionStore
  • timebasedを加えて http://blog.innerewut.de/articles/2006/02/09/time-based-fragment-caching-with-memcache

in memory mysqlをNDB clusterでやるくらいならこのほうがいいんだろうかと思いつつ悩む。まあ試してみるかなと。


at Mon Apr 24 18:39:40 UTC 2006
#1 [debian][devel][ruby] mysqlいじりとSERIAL
 ActiveRecordを使って色々書いてるのだが、SERIALを使うときはmysqlのような定義だといいなあと。postgresqlをつかっているときにはSERIALだけではなくてUNIQUEもつけないとまずいことに。あまり追いきれてないのだが接続を切ると1から増やそうとするような。。
しかし普段debianに過剰適合しているなあと思うのがRHEL(ふるいけど3)をいじっていると思う。http://dev.mysql.com/doc/refman/4.1/ja/option-files.html

DATADIR は MySQL データディレクトリです(通常、バイナリインストールの場合は /usr/local/mysql/data、ソースインストールの場合は /usr/local/var)

とかmy.cnfが/etc直下にあるだとか。[mysqld]の中にport=3306と書かないとlistenしないとか。

at Sun Mar 05 22:56:59 UTC 2006
#1 [ruby][donrails] 1.0ブランチ
svn checkout svn://svn.berlios.de/donrails/branches/1.0
というわけでつくった。 つーわけで donrails 1.0 RC1のtar ball http://download.berlios.de/donrails/donrails-0.99.1_20051220.tar.gz

at Tue Dec 20 05:31:34 UTC 2005
#1 [ruby][donrails] donrailsリリースcandidate
というわけでリビジョン101をcommitした。 最後にRFC4287への対応というか、AtomAPI POST でのcategoryを
<category term="ruby" label="るびー" />
<category term="donrails" />
みたいにかける様になった。 今までもまあ対応していてはいたんだが、形式がちょっと違ったのでRFC4287にあわせた。 全体としてはこんな感じか。
<?xml ....>
<entry ...>
<articledate>2005-12-19</articledate>
<category term="ruby" />
<category term="donrails" />
<title>donrailsリリースcandidate</title>
<content>というわけで。。。。</content>
</entry>

at Tue Dec 20 01:05:30 UTC 2005
#1 [ruby] 仕事の機能をかきだした。80%完成
ということにしておこう。 しかし ruby 1.8.3 以降では AutoRunner.run の第一引数の意味が変わり、今までと真偽が逆になりました。というのにひっかかってしまった。 ruby 1.8.3 featureをよく読め>おれ

at Thu Dec 01 01:56:56 UTC 2005
#1 [ruby][donrails] Builder::XmlMarkup

The special XML characters <, >, and & are converted to &lt;, &gt; and &amp; automatically. Use the << operation to insert text without modification.


at Wed Nov 23 13:12:52 UTC 2005