HumanDate: 2008年6月アーカイブ

HumanDate-ja0.0.3をリリースします。
おもな修正内容は、rails2.0になってActiveSupportの仕様が変わっちゃったことへの追随です。

hideAki :
日にちがうまくでません(T-T;;;
7月は1日か11日にしかなんないですね〜

もぎゃ
そうなのですよ。どうも普通に日付を書いた時の挙動がおかしくて、何とかしないといけないなぁ、と思いながら、先送りになっちゃっています。
(HumanDate 0.0.2 - もぎゃろぐ)

そうなのですよ、と言ったのですが、「そこまでひどかったっけ?」という心の声がしたので、単体テストを走らせてみたら、日付関係のテストが全滅しています。

調べてみると、activeSupportのtime#changeからすでにおかしい。

irb(main):006:0> test = Time.parse("Mon May 21 23:51:59 +0900 2001")
=> Mon May 21 23:51:59 +0900 2001
irb(main):010:0> test = test.change(:mday=>25)
=> Mon May 21 23:51:59 +0900 2001

...timeの「分」部分が変更できません。調べてみると、あらびっくり。

*2.0.1* (December 7th, 2007)
* Deprecation: remove deprecated :mday option from Time, Date, and DateTime#change. [Jeremy Kemper]
rails / activesupport / CHANGELOG -- GitHub

以前、timeの「分」部分を変えようと思ったら、change(:mday=>25)だったのですが、このラベルがdayに変わってしまったようです。

irb(main):011:0> test = test.change(:mday=>25)
=> Mon May 21 23:51:59 +0900 2001
irb(main):019:0> test = test.change(:day=>25)
=> Fri May 25 23:51:59 +0900 2001

 ...rails2.0はrails1.0系と互換性がとれないよ、ということをはっきりさせるためにメジャー番号をあげたわけですから、非互換だからと言って文句は言えないですね。

しょうがないのでこうすることにしました。

irb(main):009:0> test.change(:mday=>25,:day=>25)
=> Fri May 25 23:51:59 +0900 2001

これで、rails1.0系でも、2.0系でもとりあえず動いてくれるはずです。

あと、end_of_monthが0:00じゃなくて23:59を指すことになった仕様変更にも対応しました。

#これなんて、ドキュメントすらキャッチアップされていないような^^;

ずれてます2 - urekatのスカンク日記3 の不具合は治らないままですが、とりあえずHumanDate-ja0.0.3として置いておきます。

HumanDate-ja-0.0.3.gem
hideAkiさんよかったら試してみてくださいませ。


このアーカイブについて

このページには、 2008年6月 以降に書かれたブログ記事のうち HumanDate カテゴリに属しているものが含まれています。

前のアーカイブは HumanDate: 2007年10月 です。

最近のコンテンツは インデックスページ で見られます。過去に書かれたものは アーカイブのページ で見られます。

HumanDate: 2008年6月: 月別アーカイブ

Powered by
Movable Type