タグ

ブックマーク / blog.toshimaru.net (5)

  • Ruby Gem Configuration Pattern

    railsのgemでよくみかける初期設定ファイル、config/initializers/foo.rb。このような初期設定のインターフェースをgem内に作る場合、いったいどうしたら良いでしょうか。 めざす完成形はコレ!完成系として、下記を想定してみます。 # config/initializers/konfig.rb Konfig.configure do |config| config.my_value = 'my configuration value' endconfigureメソッドを用意まずはmoduleとconfigureというクラスメソッドを用意します。 module Konfig class << self def configure end end endConfigurationクラス次に実際の設定値が入るConfigurationクラスを用意します。 class Co

    Ruby Gem Configuration Pattern
  • 銀座Rails#21で「Fat Modelの倒し方」を発表しました

    Fat Model1まずはFatステージ1。Railsというものを全然知らない超初心者が陥るステージです。ビューに何でもかんでもロジックを書いちゃう。その結果がFat Viewです。 次にFatステージ2。ある程度Railsに慣れてきた開発者が陥るステージです。Modelへのロジック分離がうまくできず、Controllerにロジックが集中する。その結果はFat Controllerです。 最後がFatステージ3。Railsを習熟したエンジニアであればModelにロジックを寄せていくのが定石です。その結果出来上がるのはFat Modelです。 このように どんなにRailsに習熟してようと最終的にぶつかる壁がFat Model です。 Fat Model対処のための3つのアプローチFat Modelを倒すためのアプローチとして、僕は下記の3つに分けて整理すれば良いのではと考えました。 Rai

    銀座Rails#21で「Fat Modelの倒し方」を発表しました
  • Roppongi.rbで「Rails高速化戦略」を発表しました - Hack Your Design!

    自分がオーガナイザーを務めた Roppongi.rb #1で「Rails高速化戦略」という題で発表してきました。スライドは下記になります。 発表内容をこちらのブログでも文章形式でざっとまとめてみたいと思います。 Rails (Ruby) 遅いよねRailsないしRubyはプログラミング言語の中では速くはない言語であることは言うまでもないと思う1。 実際に「Rails/Ruby遅いよねって今まで思ったことある方どれくらいいますか?」と会場でも聞いてみたところ、予想では半数以上手を挙げてくれると思ったのだけど、実際は30人中3~4人くらい。あまりにも意外な結果だったので自分なりに理由を分析してみると2つあるかなと思う。 パフォーマンスを求められないから例えば社内の数人が使うような管理画面の場合。この場合、パフォーマンスよりも機能性(ちゃんと検索・閲覧できるかとかCRUD操作ができるかとか)など

    Roppongi.rbで「Rails高速化戦略」を発表しました - Hack Your Design!
  • RailsのHTTPステータスのシンボル表現まとめ

    :network_authentication_requiredちなみにこれのRuby元コードはどこにあるかというとrack/rackの/lib/rack/utils.rbにあります。 HTTP_STATUS_CODES = { 100 => 'Continue', 101 => 'Switching Protocols', 102 => 'Processing', 200 => 'OK', 201 => 'Created', 202 => 'Accepted', 203 => 'Non-Authoritative Information', 204 => 'No Content', 205 => 'Reset Content', 206 => 'Partial Content', 207 => 'Multi-Status', 208 => 'Already Reported', 226

    RailsのHTTPステータスのシンボル表現まとめ
  • video.js で m3u8 形式の動画ファイルをブラウザで再生する

    video.jsを使ってm3u8形式の動画ファイルをSafari以外のブラウザでも再生する方法を紹介します。デモページは下のボタンから。 Demo 動作環境下記環境で(現時点の最新版での)動作を確認しています。 ChromeSafariOperaSafari※要Flash 使うJSライブラリvideojs/video.js 基素材。動画ファイルを様々なブラウザで再生できるようにする。videojs/videojs-contrib-media-sources videoタグに動画ソースを流し込めるようにするvideo.jsプラグイン。W3Cのドラフト仕様Media Source Extensionsが元のよう。videojs/videojs-contrib-hls HLS(m3u8)形式の動画ファイルを再生可能にするvideo.jsプラグイン。HLSに対応していないブラウザでもFlash技

    video.js で m3u8 形式の動画ファイルをブラウザで再生する
  • 1