タグ

ブックマーク / blog.udzura.jp (16)

  • WEB+DB PRESS vol.73 に Ruby 2.0 について書きました。 « blog.udzura.jp

    一部の方への見誌等はすでに届いているものと思いますが、標題の通り、連載の記事としてRuby 2.0について書きました。 WEB+DB PRESS Vol.73 著者/訳者:設樂 洋爾 白土 慧 大和田 純 松田 明 後藤 大輔 ひろせ まさあき 小林 篤 近藤 宇智朗 まかまか般若波羅蜜 Mr. O 奥野 幹也 佐藤 鉄平 後藤 秀宣 mala 中島 聡 堤 智代 森田 創 A-Listers はまちや2 出版社:技術評論社( 2013-02-23 ) 大型 ( 192 ページ ) まつもとさんも取り上げていた、 キーワード引数 Enumerator::Lazy Module#prepend Refinement の4点を中心に取り上げています。サンプルコードはなるべくオリジナルを目指して頑張りました(特にprependのやつは編集さんに褒めてもらえた)。若干の「移行の手引き」的な内

  • Web+DB Press vol.70 に書きました « blog.udzura.jp

    WEB+DB PRESS Vol.70 著者/訳者:成田 一生 高津戸 壮 佐藤 祐介 久森 達郎 大窪 聡 田 謙 和田 英一 天野 祐介 藤 吾郎(gfx) 奥野 幹也 Dr.Kein 近藤 宇智朗 後藤 秀宣 mala 中島 聡 森田 創 堤 智代 A-Listers はまちや2 出版社:技術評論社( 2012-08-24 ) 大型 ( 200 ページ ) WEB+DB PRESS Vol.70 に、前号に引き続き Ruby に関するコラムを連載しています。 今回のテーマはActiveSupportです。広い範囲をカバーしているライブラリなので、記事ではあまり認識されていないような気がする機能にフィーチャーして書いてみました(自分でも調べていて勉強になりました……)。 表題は、最初は「君の知らないActiveSupport」にしようと思ったのですが、ひどいな、と思ったので自重し

  • Classic Sinatra が定義するトップレベルメソッドの話 « blog.udzura.jp

    $ ruby get-string.rb [2012-05-06 16:46:35] INFO WEBrick 1.3.1 [2012-05-06 16:46:35] INFO ruby 1.9.3 (2012-02-16) [x86_64-darwin11.3.0] == Sinatra/1.3.2 has taken the stage on 4567 for development with backup from WEBrick [2012-05-06 16:46:35] INFO WEBrick::HTTPServer#start: pid=24113 port=4567

  • Ruby Advent Calendar 2011 / 2日目 – almost-sinatra.rb の深淵を覗く « blog.udzura.jp

    初めましての方は初めまして。近藤うちお(@udzura)です。 Sinatra ベースのフレームワークである Padrino framework の日語サイトを管理したりしています。 Ruby Advent Calendar jp: 2011 2日目である今日は、 Sinatra 主要コミッタである rkh が、わずか 8 行で実装した Sinatra クローン、「almost-sinatra.rb」を読み解いたりして、2日目にして一気に読者を置いてけぼりにしたいと思います(1日目はこちら – “Coffeescripting with Ruby”)。 RedBull(できれば複数)の用意を推奨します…… まずは、全コードを下にコピーして置いておきます。先日、 このパッチ が accept されたので、それが適用された最新バージョンです。 %w.rack tilt backports

  • shibuya.rb(仮名)、第一回簡易報告+ ActiveSupport の便利 tips « blog.udzura.jp

    11月25日、有志にておこなった、渋谷近辺の Rubyist とそうでもない Rubyist による勉強会。今回は、 ActiveSupport のソースを読んでみた。 会場は最近「株式会社 VOYAGE GROUP に行ってきた!」で話題にもなった VOYAGE GROUP さん提供でした。 見たファイルとそのメモ 公式 github repo から落としてきた。下記、抜けがあるかもしれません。 “lib/active_support” “lib/active_support/inflector/methods” 読めば分かる “lib/active_support/dependencies/autoload” autoload の第二引数を省略可能になる “lib/active_support/lazy_load_hooks” #on_load “lib/active_support/

  • Webistrano はもっと評価されてもいいと思うので、紹介します « blog.udzura.jp

    業務でも便利に使わせていただいております、 Webistrano 、言ってみれば capistrano の web UI なんですけれど、大変有用なので、ちょこっと紹介します。 What’s good Webistrano は、リモートサーバーへのデプロイを大変簡単にしてくれる capistrano と言うコマンドラインツールを、ウェブアプリケーションでラップしたものです。 やれることは素の capistrano と同じなんですが、ブラウザベースアプリケーションになることで以下のようなメリットが生まれます。 ブラウザベースなので、 CUI に抵抗がある人でも簡単にデプロイできる (CUIをいつまで経っても覚えてくれない人っていますよね~…) テスト、ステージング、番、などで別々の設定を保存できる (Highline などを使ってインタラクティブに尋ねる必要なし) プロジェクトをまたい

  • SinatraとCoffeeScriptでわかる、Sprocketsの使い方 « blog.udzura.jp

    アセットパイプラインなどで使えるとして話題の Sprockets gem 、自分向けまとめ。確認しないで書いているところもあります。 アセットパイプラインを支える技術 – sprockets Sprockets: Rack-based asset packaging Web assets 、具体的には主に CSSJavaScript の圧縮/依存性の解決/各種ソースからの変換をサポートするための Rubygem 。 asset とは資産、財産の意。 執筆時点現在のバージョンは 2.0.3 。なお、 rack-sprockets gem は、 sprockets( 具体的には、 require 'sprockets' map '/assets' do environment = Sprockets::Environment.new environment.append_path 'ap

  • Sinatra 1.3.0 & Padrino 0.10.3 がリリースされました。ざっくり紹介(1)。 « blog.udzura.jp

    スィナトゥラとパデュリ~ノの最新バージョンがめでたく リリースされました。 1.3.0 は大変難産だったようなので、おめでとうございます。 ブログ、CHANGELOG等を見て、まずはざっくり Sinatra 1.3.0 を紹介させていただきます。で、こっそりとリリースされ続けてきた Padrino 0.10.0~0.10.3 での主な変更点は明日紹介させていただきます……。 ということで。 stream API の追加 一番の目玉はこれです。きっと。 get '/' do stream do |out| out << "It's gonna be legen -\n" sleep 0.5 out << " (wait for it) \n" sleep 1 out << "- dary!\n" end end 要するに、「レスポンスボディをちょっとずつ返す」ことが出来るようになりました、た

  • Sinatra 1.3.0 & Padrino 0.10.3 がリリースされました。ざっくり紹介(2)。 « blog.udzura.jp

    前回までのあらすじ Sinatra と Padrino の最新バージョンがリリースされたよ。 Sinatra 1.3.0 は昨日紹介したよ(Sinatra 1.3.0 & Padrino 0.10.3 がリリースされました。ざっくり紹介(1))。今日はパドリーノです。 そのまえに、 Padrino ってなんだよという方へ Padrino framework は、コアに Sinatra を据え、さらに便利になるようにいろいろな機能を拡張したライブラリ一式です。むかし sinatra_more というものがあったんですが、その開発メンバーも含め新チームでゴリゴリと開発している模様です。 このフレームワークの狙いは、 Sinatra のエッセンスに合わせつつ、どんどん複雑さを増すばかりのアプリケーション開発に必要となるような機能、たとえば、フォーム、メール配信、国際化、ヘルパー、キャッシュなど…

  • gem つくったよ~ – rack-session-dbm について « blog.udzura.jp

    このたび人生で初めて、 RubyGems で皆さんに使っていただける gem を公開いたしました。 rack-session-dbm とは rack-session-dbm | RubyGems.org | your community gem host udzura/rack-session-dbm – GitHub Rackベースのウェブアプリケーションのセッションを、ファイルベースのDBである SDBM/GDBM に保存するミドルウェアです。 Rackベースのウェブアプリケーションの場合、デフォルトでは Cookie にセッション情報を保存するので(暗号化等は無論できます)、その情報をクライアントのローカルにどうしても持ちたくない場合、かつ、 memcached や ActiveRecordStore などを導入するのが大げさだと思われる場合に利用できるかと思います。要するにカジュア

  • Sinatra でネームスペースを実現する « blog.udzura.jp

    なんか twitter でそういう声があったのでざっくり試したよ。 Rack::URLMap を使う なんと! Rack::URLMap は、 env["PATH_INFO"] をよしなにしてはくれません。/sub サブディレクトリにマウントしたアプリケ~ションにも、 /sub が付いたまま渡ります。なので、自分で削除する Rack Middleware 書いたった。 app1.rb: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 require 'rubygems' require 'bundler/setup' Bundler.require class SubApp < Sinatra::Base

  • 退会画面 などに簡単に CAPTCHA を表示する方法 « blog.udzura.jp

    コメント投稿、退会画面など、サービスの一部に CAPTCHA を表示したいときがあるかと思います。 今回は、 Rack 対応の Ruby 製フレームワークを使っている場合、簡単なライブラリ+ reCAPTCHA で、たとえば、退会画面に CAPTCHA を表示することが出来るので、そちらを紹介します。 実装方法 まず、ユーザ登録画面等を作っときます、今回の目的は退会させることなので、適当でいいですね。 次に、 reCAPTCHA にユーザ登録をして、 API KEY と SECRET を入手します。 諸々を作ったら、必要な gem をインストールさせるため、 Gemfile などに以下を記述、しかるのち bundle install。

  • byobu をはじめよう « blog.udzura.jp

    ずっと GNU screen を使ってギ~クを気取りたかったんですが、複雑怪奇な .screenrc などに関するバッドノウハウが怖くて(この辺 zsh 移行とかでも同じようなことが言えそう)何度か挑戦しては挫折していたんです。 でも、ここ数か月ぐらい byobu を導入していて、普通に長いこと使えているし大変快適なので、今回ざっくり紹介してみようかな~とか思います。 byobu とは Ubuntu Manpage: byobu byobu in Launchpad Byobu is a Japanese term for decorative, multi-panel screens that serve as folding room dividers. As an open source project, Byobu is an elegant enhancement of the

  • Rackで静的サイトを公開する(DirectoryIndex対応版) « blog.udzura.jp

    Rackライブラリ自身に Rack::Static が添付されていますが、これ、ディレクトリを見に行った場合に自動的に「index.html」を見てくれるとか(Apacheで言うDirectoryIndex設定のこと)、そういう気を回してくれないんですね。 あと、普通にWEBrickを使えばいいんという話もあるでしょうけど、Rackアプリケーションとして実装する意味って結構あって、例えば Rack::URLMap なんかと組み合わせたりできたりします。 ということで、 Rack::Directory を少しだけ変更することで実装可能。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #!/usr/bin/env ruby require 'rack

  • OmniAuth、Warden、Sinatraを連携しよう « blog.udzura.jp

    セットアップ 今回は最終成果物がSinatraの1-filerなので、bundlerを使わずにRubyGemsを管理する。なので、素直にインストール。今回使うものを全部入れておく(というか、OmnuAuthの依存関係で色々入ってくる)。

  • Padrino+MongoDB+Herokuを使って、5分でWikiアプリ作成する « Coding Suicidal

    ここ数か月、PadrinoというRuby製フレームワークにはまり込んでいるわけですが。 軽量 テスト、i18n、各種ヘルパーなど一通りの機能が入っている ベースはSinatraなので、面倒くさいroutes.rbを書かなくてよい なによりザクザク作れて楽しい そんなPadrinoを草の根でも広げていきたいな~と思い、「Padrino+MongoDBHeroku」なシンプルなWiki風ウェブアプリケーションの作り方を、入門記事風に書いてみます。 環境はMac OS XやデスクトップLinuxを想定しています。前提として、まず、RubyRubyGems、Gitは入っていますか? 入っていないならばとりあえず入れておいてください。 Windowsの場合、Getting Started with Heroku on Windows(http://devcenter.heroku.com/art

  • 1