すがブロ

sugamasaoのhatenablogだよ

ruby

モデルにメソッドを持たせる

こんな感じの投稿システムがあったとします sqlite> .tables comments posts む、sqlite3には mysql とかの describe 相当のコマンドが無いのだろうか。 とりあえずデータを突っ込んだ select で勘弁してね。 id|title|body|created_at|updated_at 1|title1|…

Rails のモデル関係と to_json(to_xml)

関係を持ったテーブルと出力方法について Rails初心者にありがちなメモをするよ。 ちなみに、環境は Ruby1.9.2 と Rails3 です。 テーブル間のリレーションについて ユーザ情報テーブルと、ユーザが持ってる所持品のテーブル的なものがあるとして。 面倒なの…

Railsで定数を別ファイルで管理したい? よろしい、ならば Settingslogic だ。

ソースの中で定数として扱うのではなく、設定ファイル的に扱いたい Rubyはそれなりに長い間使っていますが、Railsはメジャーバージョン毎にちょっと触るくらいで、まったくベストプラクティスとか知らないんですね。 で、いまは作る際のお手本として 日本Rub…

RVMのRubyをデフォルトで使用したい

ターミナルを起動した瞬間から RVM の Ruby を使いたいんや MacBookPro(Snow Leopard)に開発環境を構築するメモ - @sugamasao.blog.title # => ”コードで世界を変えたい” ここで書いたように RVM の設定をして、 rvm use ruby-1.8.7-head としても、再度ター…

github の gems を rubygems.org(gemcutter) に移行した

github が gems ホスティングを辞めるらしいので ってずいぶん前から聞いていたのですが、夏休みの宿題の法則*1によってすっかりズルズル行ってしまったのですが、よーやく移行しました。 移行先は以下になります。 saag | RubyGems.org | your community ge…

ChirpUserStreams っていう Twitter API を使ってみた

なんだか自分の TL のイベント等がもりもり取れるらしい Twitterの新しいStreaming API「ChirpUserStreams」がすごすぎる件 - すぎゃーんメモ が面白そうだったので、自分でも作ってみた。 自動返信とかはしてないのだけど、とりあえず自分のTLの状態をひた…

rascut による autotest 環境

無限 FlexUnit FlexUnit は現在 RC1 ですが、なかなか安定している感じですし、何よりも Adobe がきちんと開発しているので、AS3 というか Flex 界隈でも今後 UnitTest 文化も成熟してくると思われます。 で、そーなると、今後はいかに負担なく UnitTest を…

sugamasao.com をリニューアルしたよ

ずーっと気になっていたけど、放置しっぱなしであった .com ドメインをとるタイミングで作り変えようと考えていたのだけど、突発的にサーバが死んだこともあってうやむやになっていたのをついにリニューアルしたよ。 sugamasao.com sinatra で作った理由 sin…

sinatra のスケルトンを更新した

更新の主な内容 SubRUI で動かす場合と、メインで……つまり、http://example.com/ で動かす場合でのパスの違いを吸収するようにしました。 自分の場合、サービスのリリースは SubURI で行う場合が多いのですが、ぶっちゃけると、開発中に shotgun 等で sinatr…

イマ乗りをリリースしました

イマ乗りとは クックパッドの「開発コンテスト 24」でのエントリー作品です 「朝起きてから学校や会社に行くまでの時間をより便利にするためには」というお題に対して、24時間で成果物をリリースするというもの。 で、何を作ったの 404 Not Found イマ乗りと…

RubyでTwitterAPIを叩いてみる

Rubyで使えるライブラリ twitter4r(Twitter4R - Idiomatic Ruby Open Source Library for Twitter REST & Search APIs) twitter(Twitter by sferik) の二種類があるようだけど、twitter4rはちょっと情報が見つけにくかったので twitter ライブラリを使ってみ…

sinatra のスケルトンコードを github に置いた

いつも忘れるので misc/sinatra_skelton at master · sugamasao/misc · GitHub ここに置いた。また何かあればちょくちょく追加するかもしれない。 主な点(よく忘れるところ) haml/sass を使ってる helper で エスケープメソッドのエイリアスを作ってる con…

autotest_screen がイカしてる件

これもなかなか Ruby の開発環境として ZenTest(autotest)を入れた - @sugamasao.blog.title # => ”コードで世界を変えたい” ここで導入した ZenTest なんだけど、 以前までは screen 上に通知するツールが同梱されていたらしい。 しかし、4.0 になってから…

Ruby の開発環境として ZenTest(autotest)を入れた

この間 BPStudy#29 に参加してきました BPStudy - connpass そこで TDD とペアプロを行なってきました。 やってみた感想 TDDに関しては、言われた通りの事が実感できました。 たとえば、テストを書く時点でインターフェイスについて考えるとか。 ただ、絶望…

久しぶりに Rails 触ったらエラーでコケた

Rails でちょっとアプリ作ろうかなと思いたった で、だいぶ触ってなかったので最新バージョンにしてからやろうと思ったわけです。 rails 自身は sudo gem update rails でアップデートできた(ちなみに、2.3.5)。 まずプログジェクトを作る rails -d mysql …

irb を快適に使うための Tips

このエントリは Ruby Advent Calendar jp: 2009 : ATNDの7日目のエントリです。 上記のページに書いてあるとおり、12月中に1日から25日まで一つずつ Tips を書いていこう!という企画で、その7日目がぼくの担当となっています。 前のエントリはこっち:Ruby1…

となりの ATND さんが遅いんだよね

ガチで遅い 一回のレスポンス返すまでで10秒くらい掛かってる。 よくよく調べてみると、Atnd4r の get_event_list と get_user_list が遅いんだね。 つまり公開メソッド両方じゃんw ってわけなんだけど、両方とも中ではほとんど同じメソッドを使っているので…

AS3でちょっとしたサーバサイドのプログラムが必要になる時に毎回書くのが面倒なので、適当に sinatra で書いた

Flash で外部から XML とかを取ってくる時に とりあえず手元で試したい、というときって結構あると思う。それに、作ってる途中で毎回変動するようなデータが送られてくるとどっちが悪いんだ、ということもあるだろうし。 で、ぼくは Ruby厨だし、sinatra厨な…

rascut を使っていて、「既知のプレーヤーのダウンロードタイプではありません」と言われてニッチもサッチ行かなくなるのを解消する方法

注意 下記の取り消し線の情報の対応方法はものすごく間違ってたっぽいです。 さーせん/(^o^)\ ただ、問題の原因は分かった 単純に swf のパスが読み込めないからダメだっていう話だったみたい。 今のファイル構成の場合、 src 配下に swf を出力しないで、…

楽天テクノロジーカンファレンス2009で LT してきました

楽天テクノロジーカンファレンスとは 楽天が三年前から行ってる開発部主体(らしい)のカンファレンスです。 【楽天】テクノロジーカンファレンス2009|開催概要 そこで LT の募集があったので、勢いで応募してみました。 発表資料はこちら という、ATND API…

sinatra のマニュアルをちゃんと読んでみた

sinatra はシンプルで分かりやすい ちょっと使うには sinatra の使い方が日本語でも普通にあるので、大して困らないですよね。 第9回 SinatraとSequel・Hamlで掲示板アプリを作る:Ruby Freaks Lounge|gihyo.jp … 技術評論社 Sinatraで鼻歌まじりのWeb開発 …

GAE on jRuby で Google アカウント認証をやってみる

GAE on jRuby with Sinatra でやってみるよ 元ネタは Users Java API の概要 - Google App Engine — Google Developers で、こいつを jRuby 上で sinatra を使った場合どうやるのか? という話。 ポイントは 2点 Java のスタティッククラスを使う場合は impo…

となりのATNDさんにレコメンド機能を追加しました!

となりのATNDさんとは ATNDを使った勉強会やイベント等で、同じイベントに参加していた人を調べる事ができます。 次回、自分と同じイベントに参加する人もリストアップできるので、「あっ、この間××のイベントに参加されてましたよね?」みたいな感じで話す…

Ruby1.8と1.9に対応するスクリプトを書くには

基本的にはどちらでも動くんだけど(自分の作ったライブラリの場合は) 文字コード周りは、1.9 からは NKF とか使わず、Encoding クラスを使うように方向転換したいと考えている*1。 どうやって場合分けをしよう まず、Ruby のバージョンで判断を行う、とい…

Atnd4Rの使い方

詳しい使い方について説明します ATND API の Ruby ラッパー Atnd4R を作りました - @sugamasao.blog.title # => ”コードで世界を変えたい” でちょっとだけ使い方を記載したのですが、取得したデータのみかたとかはちゃんと書いていなかったので、改めて記載…

sinatra での SubURI アクセスで、静的コンテンツにリンクする方法

SubURI での設定にした場合 sinatra アプリを Passenger で「Sub URI」で動かす(2) - @sugamasao.blog.title # => ”コードで世界を変えたい”で最後に書いた事に対する回答になるのだけれど。sinatra アプリを単独で動かす場合(WebRick 等で動かした場合…

ATND API の Ruby ラッパー Atnd4R を作りました

微妙に名前だけ出していましたけれど ついにATND API リファレンスが正式にリリースされたので、こちらも正式に告知します。 githubの sugamasao/atnd4r · GitHub にプロジェクトページがあります。 Atnd4R とは何ですか ATND API を Ruby から使用するため…

となりの ATND さんがバージョンアップしました!

色々変更しました! 変更点 一覧の見た目をちょっと華やかにしたよ 一覧に出力する情報量を多くしたよ 未来のイベントを太字にしたよ*1 JS でユーザビリティを向上させたよ 内部処理を Atnd4R(sugamasao/atnd4r · GitHub) を使うようにしたよ まだ API 自…

jeweler でらくらく rubygems 作成(github編)

jeweler とは rubygems 作成支援ツールとでも言えば良いのでしょうか。 こいつ自体は gem install jeweler でインストールできます。 くわしくは Route 477 - gemspecの作り方がわからない?ならばjewelerだ 前提条件 このエントリを読む人は以下を満たして…

RubyKaigi2009に参加してきました

怒濤の三日間でした 懇親会やらも参加したので、本当にガッツリ参加させてもらいました。 2年前は本チケットが取れず、空気読まずに懇親会だけ参加し、昨年は金曜日不参加で土曜/日曜だけ、参加しました。そして、今年はついに三日間連続での参加となりまし…