How ActiveRecord::Migration converts create_table DSL into SQL statements
パッチ会や地域 Ruby コミュニティなどで集めた知見を元に、勤務先の永和システムマネジメントなんかで度々話している表題についてテキスト化しておく。 TL;DR Ruby 2.8.0 の開発が始まっているが、それは 2020 年のどこかで Ruby 3.0 になるらしい Ruby 3.0 ではキーワード引数 (以下 kwargs) の分離という破壊的変更があり、Ruby 2.7 系は事実上の移行パスバージョン的な位置付けになるだろう 2020年1月8日の現時点では、Ruby 2.7 の kwargs の分離警告について対応された安定版の Rails はなく、周辺 Gem も WIP なので OSS エコシステムに参加していくと良い 2.8.0 (tentative; to be 3.0.0) development has started 2019年の ruby/ruby での matz
こんにちは。技術部 開発基盤グループの諸橋です。 クックパッドでは昨今の多くのWeb企業と同じように、GitHub EnterpriseのPull Requestを使ったコードレビューを広範に実施しています。わたしたちのコードレビューでは、ソースコードの字面にとどまらず、サービスの機能として魅力的かどうかや、保守性を含めた設計が適切かといった議論に発展することも良くあります。 きょうはそんななかで話題に上がった「現在時刻」の扱いかたに関する設計の話を書きます。 背景 サービスを開発・運営している我々には、時間帯によって出し分けたり、特定の期間のみに表示したいコンテンツがたくさんあります。 そのたびにデプロイし直すというのはつらいので(特に24:00に出なくなるコンテンツなど)なんとかしたくなりますが、一方で時限式のコンテンツはその時になるまでちゃんと動いているか確証が取れないので怖いです。
プログラムは、なるべく何もしなくても良い感じに動いてくれるのが理想的だけど、実際には何らかのかたちでユーザの設定を必要とすることがある。 Rails を使うときは config/application.rb でタイムゾーンを指定したり、DB へ接続するための情報を config/database.yml に指定する。 Bundler の挙動を変えたければ bundle config で設定を変更する。 Gem をインストールするときに毎回指定したいオプションがあれば、~/.gemrc に追記する。 もし自分の関わるプロダクトに「設定」のAPIが必要になったとき、何を判断の基準にして設計すればいいだろう。 ちょっと近所を見渡すだけでも、「設定」のやり方には色々ありそうだ。 設定という視点から、Rubyist にとって身近なプロダクトたちを資料として眺めてみた。 (NOTE: ちょっと悩みなが
技術部・開発基盤グループの中村です。 この度、クックパッドが開発し、オープンソースとして公開しているRuby on Rails向けプロトタイプ開発用のプラグイン「Chanko」を再設計し、Ruby 2.0.0 への移行に引き続き Chanko 2.0.0 をリリースしました。Chanko 2.0.0 では、これまでのバージョンと互換性を保ちながら、主に実行速度やコードの可読性について改善が加えられています。 http://cookpad.github.io/chanko/ Chankoとは Chankoは、素早く安全に新機能のプロトタイプを行うためのフレームワークです。クックパッドでは今現在でも、Chankoを使って多くの機能を独立して開発し、対象範囲を限定して公開することで新機能の検証サイクルを回しています。Chankoを利用して拡張した機能でエラーが起きた場合、拡張前の機能に自動的に切
emacsでRails開発をする際、emacs-railsを使っている方が多いと思います。emacs-railsはとても便利なelispなのですが、最近は更新頻度が低く、rhtml→html.erbの対応も一部されていなかったりします。あとRspecの対応もイマイチ。emacs使いの人たちは一体どうやってRails開発しているのでしょうか? そこでRinariですよ Rails On Emacs | Google グループを見ると最近は"Rinari"の話題で持ち切りなようです。Rinariはemacs-railsとは違いコア部分を小さく保って、プラグインで拡張していくタイプのelispです。 Rinari: Ruby on Rails Minor Mode for Emacs 基本的には上記に全部書いてあるのですが、整理する意味でまとめてみます。 コア部分のインストール まず、gitでダ
Debian GNU/Linux squeezeインストール覚書の続き。 どんならんな:Emacs で Ruby 開発環境を参考にemacsでRuby on Railsベースの開発が出来る環境を構築する。 まず、ruby-elispをインストール。 # aptitude install ruby-elispすると/usr/share/emacs22/site-lisp/ruby1.8-elisp に関連elispがインストールされる。 RubyForge: emacs-railsより、最新のemacs-railsをダウンロードする。ダウンロードしたならば、解凍し、拡張子が.elのファイルをemacsのloadパスが通ったところに置く。今回は先のruby-elispのファイルと同じディレクトリに置くことにする。 % wget http://rubyforge.org/frs/download
ruby on railsでバックグラウンド処理を行うためのプラグイン「backgrounDRb」が使いたくて調べてみました。 このプラグインは結構前から存在しているみたいでWeb上でも情報はたくさん存在しているんですが「backgrounDRb」自体のバージョンアップに伴う仕様変更が大きいみたいで昔の情報だとうまく行かないパターンが多く苦労しました。 今回はハマったポイントをふまえつつ、「backgrounDRb」についてまとめてみたいと思います。 backgrounDRbとは ruby on rails上でバックグラウンド処理を行うためのプラグインです。例えば、web上から何かの操作をした際にメールを送りたいことがありますよね?このときに添付ファイル付きの大きなメールだと送信が完了するまで画面遷移は発生せず「待ち」の状態となってしまいます。backgrounDRbを使用すると「メールを
キーボードを、持ち歩く。 久しぶりに、スマホ用のキーボードを使ってブログを書いている。 いくつかキーが壊れてしまっているので買い替えないといけないのだが、壊れるくらいには使い込んでいたんだなと思った。 当時は、今のようにPCを普段から持ち歩くことが少なかったので、出先でもブログ…
Comet を使ったアプリケーションを作りたくて Juggernaut を使ってみた。 Juggernaut 0.5.1 のインストール Juggernaut はいろいろな gems に依存するためそれらもインストール。 Rails は 2.0.2 以降、EventMachine も 0.10 以降、json も 1.1.2 以降を要求するなど Juggernaut はかなりグルメなので gems 本体もアップデートすることになった。 $ gem update --system $ gem install rails --include-dependencies $ gem install json $ gem install eventmachine --version 0.10 $ gem install juggernaut この EventMachine が曲者で、コンパイルするタ
● [cucumber][テスト] テストデータツールまとめ(2009春夏) 調査結果 知見 みんな YAML での Fixture 作成には辟易 (except DHH) DHH は初心者 BDD の流れから全体の fixture でなく必要なデータを作成するのが主流 データ作成ツールは Machinist がすこぶる評判いい (現在のベスト) 集合的なデータが必要な場合は Dataset を使い、その中から Machinist を使う Fake データの作成は Faker gem がこれまたすこぶる評判よし Machinist の発音がわからない 今、cucumber + webrat + mozrepl + firefox + xvfb + rspec + machinist + faker が俺の中で激熱! 参考 http://github.com/aslakhellesoy/cu
● [Merb] Extlib Ruby をより便利に、あるいは暗黒的に使うために、誰もが基本classを拡張したことがあるだろう。その中で、フレームワークが利用するレベルになると、汎用的な拡張ライブラリとして gem や github で公開されることが多い。Rails であれば ActiveSupport が有名であるが、Merb では Extlib というライブラリを利用している。 なぜActiveSupportを使わないの? Merb は最低限で動くから ActiveSupport すら必須ではない!みたいな売り文句にしておきながら Extlib を裏で使ってたら卑怯じゃね?朝三暮四じゃね?という気もするが、ActiveSupport は太りすぎていてロードにすら時間がかかるのも事実。 % irb -r rubygems irb(main):001:0> start = Time
Rails 2.2 marks the first release of thread safe Rails. But “thread safety” alone, without any context, doesn’t mean shit. When people say Rails is “thread safe” ( or otherwise ), they usually refer to the dispatching process of Rails. Before 2.2, Rails dispatching looked like : Long story short, Rails can now serve multiple requests in more than one ruby threads ( or native threads if you’re on J
※ 画面は公式サイトデモより インターネットを使って勉強会、セミナー、エキスポなど様々なイベントが始終告知されている。情報をチェックし、良く参加する方もいれば、つい忙しさにかまけて日程を通り過ぎてしまった、と言う経験がある人もいるだろう。 格好いいイベントカレンダー 様々なWebサイトで配信される情報をRSSフィードで集約したように、そろそろイベントの情報も集約されるべき時だろう。 今回紹介するオープンソース・ソフトウェアはCalagator、イベントスケジュールアグリゲーターだ。 CalagatorはiCalやhCalなどに対応したイベント収集機能を持ち、それらを別なフォーマットで配信する機能を持つ。集約されたイベントは日付ごとに閲覧ができるようになり、位置情報があればGoogleマップ上にマッピングして表示してくれる。 地図も表示される また、イベント会場を中心に表示することも可能で、
Ruby on RailsをJavaサーバで動かす4つのメリット まずは、JRuby on RailsをJavaのAPサーバ上で動かすメリットを考えてみましょう。その最大のメリットはJVM(Java仮想マシン)上で動作する点が挙げられます。JVMで実行することで、以下の4つのメリットを享受できます。 JVMはエンタープライズ環境での動作実績も多く、非常に安定した実行環境を手に入れることができる JVM上でJRubyを実行する場合、AOT(Ahead Of Time)およびJIT(Just In Time)方式でコンパイルする。従って、コンパイル後はインタプリタ形式よりも高速に動作する(※注1) Javaの豊富な機能を使い、さまざまな拡張が可能 JRuby on Railsが動作するAPサーバもTomcatやWebSphere上で動作確認が報告されている JDBCを使って対応DBを増やしたり
待ちに待ったソフトウェアがついに登場した。Railsは生産性の高さについては定評があるが、その設置、運用方法についてはJava並みに敷居が高かった。レンタルサーバなどでは利用に耐える設置が難しかった。 Passengerのトップページ だが、これで時代は変わるかもしれない。そんなソフトウェアがついにリリースされた。 今回紹介するオープンソース・ソフトウェアはPassanger、mod_rails for Apacheだ。 Passangerはgemからインストールするソフトウェアで、これをインストールし、必要な諸設定を行ったら後はMongrelのようなアプリケーションサーバを立ち上げることもなくRailsが利用できるようになる。 インストール中 Apache2.2系(恐らく…)ではdeny from allの設定を消す必要があるが、それさえ消せば問題なくRailsが動作する。プロキシも何も
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く