【ニコニコ動画】GemCasts.12 GemをRubyForgeにアップする

前回作ったGemをRubyForgeにアップします。いちいち待ち時間がうざいですな。

参照:

詳細: GemCasts Wiki – RubyForge

月曜日なので一心不乱にコード(仕事の)。

画像アップするプラグインを前に目を付けていたPaperclipに変えてみた。

file_columnと同じでファイルに画像を保存する形式。で、attachment_fuと違って専用のテーブルを作らないタイプ。

うーん、ファイルに保存方式だとcapistranoでdeployしてるとき困るんだよな~。そんでsystem以下に保存するように変えたり。

とりあえず使ってみた。

class User < ActiveRecord::Base
  has_attached_file :avatar, 
    :styles => { :medium => "300x300>",
      :thumb => "100x100>" }
end

モデルにhas_attached_fileを定義。

class AddAvatarColumnsToUser < ActiveRecord::Migration
  def self.up
    add_column :users, :avatar_file_name, :string
    add_column :users, :avatar_content_type, :string
    add_column :users, :avatar_file_size, :integer
  end
  (略)
end

DBは専用のじゃなくて普通にそのモデルのテーブルに上記3種を追加。

<% form_for :user, :html => { :multipart => true } do |form| %>
  <%= form.file_field :avatar %>
<% end %>

アップするフォームはこんな感じ。

<%= image_tag @user.avatar.url %>
<%= image_tag @user.avatar.url(:medium) %>
<%= image_tag @user.avatar.url(:thumb) %>

画像表示もこんな風に深く考えなくてもいいようになってる。

あとImageMagickだけでRMagickが要らないっぽいです。そこは嬉しい。

で、file_columnでちょっと面倒だったファイルの保存場所関係はhas_attached_fileのオプションで結構柔軟っぽい設定ができそうでした。

:url => "/:attachment/:id/:style_:basename:extension" 
:url => "http://some.other.host/stuff/:class/:id_:extension"

シンプルなところが気に入りました。使ってこ。

参照: thoughtbot: Paperclip File Attachments

【ニコニコ動画】GemCast.11 最低限のGemを作る

初めてのGem作り。サポートしてくれる便利系ツールを使わずに、RubyGemsの機能だけで最低限の作り方に挑戦してみました。

「Gem使うだけで作れないのに紹介とかしてんのかよ!フリーライダーってやつか?作るの?作らないの?作るとしたらいつ作るの?」

俺の脳内総括で激詰めされたので仕方なく・・・。

君の代わりに僕がハマろう!

参照:

詳細: GemCasts Wiki – RubyGems

:: GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTS :: Testing named_scope

To help out with the testing of simple named_scope definitions, we added a helper to Shoulda, should_have_named_scope:

シンプルTDDライブラリShouldaにRails2.1からの新機能named_scope用assertionが追加されたみたいです。

class User &lt; ActiveRecord::Base
  named_scope :old,      :conditions =&gt; "age &gt; 50" 
  named_scope :eighteen, :conditions =&gt; { :age =&gt; 18 }
  named_scope :recent,   lambda {|count| { :limit =&gt; count } }
end

class UserTest &lt; Test::Unit::TestCase
  should_have_named_scope :old,       :conditions =&gt; "age &gt; 50" 
  should_have_named_scope :eighteen,  :conditions =&gt; { :age =&gt; 18 }
  should_have_named_scope 'recent(5)', :limit =&gt; 5
  should_have_named_scope 'recent(1)', :limit =&gt; 1
end

Shouldaの良さは、

  • 覚えること(syntax)の少なさ
  • 今までのgeneraterでいい
  • 今までのファイルでいい
  • 今までのテストと混ぜられる

とかにあるとおもいますが、こういった身も蓋も無いマクロの数々が、面倒臭がりの俺にとってはうれしいです。

Thoughtbot(Shoulda開発者の会社)以外の開発者も入ったみたいスね。

typo5.1-is-out

Typo 5.1 is out, download now !

Before upgrading, read our Upgrade Typo From Sources or Upgrade Typo with Typo installer HOWTO

Typo is a blogging engine developped with the Ruby on Rails framework.

Rails脳BlogのTypo 5.1がリリースしたみたいです。なんかロゴっぽいものが出来てますね・・・。それより一刻も早くRedmineをトップページにするのをやめるんだっ!

なんか弄りたくなる部分いっぱいあるんですが、セッションすぐ切れたり、gettext使ってなかったり、テーマ切り替えが単なるファイルコピーだったり・・・。

少なくともGoogle Analyticsは入れたいので最悪なかったらそのプラグイン作って終わりかなあ。ChangLog見ると、en_US入れ忘れたりとか、何処の国の人がメインなんですかね?

nginx

出来立てっぽいんすけどダウンロードできないッスねー。・・・とRubyForge、サーバーによってはnginxなんですねえ。Apacheとnginxどっちのエラーも出たりするんだけどnginxを振り分けに使ってるってことかなあ?

typoの作者の方ではrailsアプリのインストーラーを作るgemが公開されてますね。使railsのアプリ名のコマンドを作って、「コマンド名 install ディレクトリ名」ってやるのをデフォルトにしようよって感じらしいです。

いいのは、ホントにコマンド1発になるのと、WordPressの時に話出てたけどバージョンアップに対応できることっすね。

【ニコニコ動画】GemCasts.10 RackとPassengerで最小アプリ

PassengerがRackに対応したとのことでRackを使った最低限のWebアプリを作ってみました。

10分以内に収める努力始めました。

新堂「スポーツはいいぞ」

参照:

詳細: GemCasts Wiki – Rack

移動中とか飯食ってる時に、

「どんなサイト作ったら儲かるかな?」

とか

「どんなサイト作ったらオモロイかな?」

なんてよく考えます。(考えるよね?)

今日の思いつき:

(日本の憲法全文ってネットに載ってるんだろうか・・・?ソースコードブラウザみたいに、章や行にURIがあったら参照や引用し易くていいんじゃないだろうか?)

(でもそんなの作ったら、とんでもない災厄が降りかかるのか、とっても良い事が起こるのか、それとも何もおきないのか。全然予想がつかないな。・・・・・・・・・おもしろい!)

と、思って家帰って検索してみたらいっぱいありやがんの。

日本国憲法

とか。

ですよねー・・・。

いろんなものにURIを付けてみる。そういった考えは他にどんな応用が思いつくだろうか。(百式風)

バージョン管理ツール「git」の使い方をスクリーンキャストで紹介する『GitCasts』 | 100SHIKI.COM

GitCastsはバージョン管理ツール「git」の使い方をスクリーンキャストで紹介している。更新は不定期だが、ブログを使って紹介しているのでRSS購読しておけば見逃すことがない。

なんてニッチな!

・・・っていうかGemCasts.orgってこれ見て真似したみたいな感じにならない!?

まあ、そもそもRailsCastsのパクリだけど・・・。

というかッスねー、ニコニコ動画ならではの「実況の楽しさ」を伝えたかったんですよね。スマートなチュートリアルじゃなくて。

「ゲーム実況動画見ると、実況無しゲームプレイ動画はもう見れない」みたいな。そしてそれにつっこむ楽しさ。

だからYoutubeとかにはあげないわけなんス。

まあ10回とかしか再生されてないのに何を言ってるんだおまえはって感じですけど、ちょっとブログのSEOとか頑張って行きたいです。(typoがまた使い辛いんだこれが)

GemCasts.orgというRubyGemsプログラミング実況動画サイトを作ったんですが、そもそも、「RubyGemsって何?」という方のために、

「RubyとRubyGemsのWindowsへのインストール方法」

「最も簡単で下らないRailsチュートリアル」

の動画を作りました。

一応、何も知らなくてもRuby、RubyGems、Railsが出来るはずッス。

参照: GemCasts

GemCasts

GemCasts.org

Gem実況動画、3個程追加して専用のブログ用意してみました。

動画でやったpassenger + typoで動かしてるんですけど、エラーとか謎のセッション切れとか起こりまくって不安定です。頑張って自分で直さないと駄目かな。

これ系は今後こっちにアップしていきます。