rubyに関するhokousyaのブックマーク (30)

  • Ruby で Google Storage for Developers API を使ってみました - WebOS Goodies

    今年の Google I/O で発表された、 Google Storage for Developers (以下GSfD)というサービスをご存知でしょうか。数ギガバイトクラスの巨大なデータを、 RESTful API で使って Google クラウドに保存・アクセスできるという、いわば Google 版の Amazon S3 です。発表直後にダメもとでアカウントを申請した後すっかり忘却の彼方だったのですが、先日になって唐突にインビテーションが届いたので、日はその使い方をご紹介します。 GSfD には Web インターフェースやコマンドラインツール、 Python のクライアントライブラリが用意されていますが、 Web 開発者としてはやっぱり API 経由での使い方をマスターしたいところ。ここは敢えて Ruby から Web API を直で叩く方法に挑戦してみました。日語はもちろん英語

    hokousya
    hokousya 2010/06/23
    巨大なファイルも保存できるクラウドストレージ「Google Storage for Developers」にRubyスクリプトでアクセスする方法です。
  • コマンドラインからバズるスクリプトを作りました - WebOS Goodies

    先日公開された Google Buzz 、多くの方が既に使っておられるかと思います。リアルタイムでどんどん更新されるタイムライン、強力な検索機能、コメントによるコミュニケーションなど、 twitter にはない楽しさがありますね。 しかし、まだクライアントが Gmail 上にしかなく、いろいろと不便が多いのも事実です。そこで、その環境改善の第一歩として、コマンドラインから buzz を投稿する Ruby スクリプト buzzruby.rb を作りました。そんなもん何に使うんだと言われると困るのですが、興味のある方はご利用くださいませ。 使い方 buzzruby.rb は Ruby スクリプトですので、実行には Ruby の実行環境が必要です。もしまだインストールされていなければ、公式サイトからダウンロード・インストールしてください。動作確認は 1.8 系でしかしてませんので、 1.9 で動

    hokousya
    hokousya 2010/02/12
    コマンドラインからGoogle Buzzに投稿するスクリプトです。
  • Ruby スクリプトでデータを暗号化する方法 - WebOS Goodies

    日は、 Ruby の OpenSSL バインドを利用してデータを暗号化する方法をご紹介します。というのも最近、自宅サーバーにある各種データを Web 上のサービスに移動しようと画策していまして、その際にプライベートなデータは暗号化して保存したいのです。ほとんどの Web API は暗号化なしの HTTP で通信しますし、いくらパスワードで保護されているとはいえ、他所の HDD にプレーンな状態で保存するのは不安ですからね。 それ以外でもスクリプトで暗号化の処理をしたい場面はいろいろあると思います。そんなときは、ぜひ参考にしてください。 それでは、まずは暗号化の処理から。 OpenSSL はさまざまな暗号化アルゴリズムをサポートしていますが、ここではリファレンスでも推奨されている AES-256-CBC を使うことにします。ひとつの文字列(バイト列)を暗号化する関数は以下のようになります。

    hokousya
    hokousya 2009/09/09
    RubyのOpenSSLバインドを使ってデータを暗号化・復号する方法を説明しています。opensslコマンドと同じファイルを出力する方法も。
  • ActiveResource の使い方(後編) : 一般の Web API にアクセスする - WebOS Goodies

    漠然とカスタマイズ方法を書くのはなかなか難しいので、具体的な Web API を題材にして、そのためのカスタマイズ方法を順を追ってご紹介しようと思います。ここでは、「ActiveResource で Google Spreadsheets Data API にアクセスする」の GoogleSpreadsheets::List クラスとほぼ同じ機能を持つ ActiveResource モデル、 GoogleSpreadsheet クラスを作ってみようと思います。同じと言っても、実装は説明しやすいように簡略化してあります。完成版のソースは以下にあります。 http://webos-goodies.googlecode.com/svn/trunk/blog/articles/how_to_use_activeresource_3/gspreadsheets_resource.rb GoogleS

    hokousya
    hokousya 2009/08/26
    GoogleSpreadsheets APIへのアクセスを題材にして、ActiveResourceモデルのカスタマイズ方法を説明しています。
  • ActiveResource の使い方(中編) : メソッドの詳細

    少し間が空いてしまいましたが、日は ActiveResource の使い方の中編です。前編では概念的な部分や利用例などをご紹介しましたので、日は各メソッドの具体的な使用方法をご紹介します。リファレンスの翻訳のようなものを作っても仕方ないので、目的別に分類して書いてみました。このほうが、これから使い始める方には役に立つかと思います。 とは言ってみたものの、一回で ActiveResource の主要なメソッドをすべて扱うのは、ちと無謀だったかもしれません・・・ orz 。説明が足りず、だいぶわかりづらくなってしまいました。不明な点は、コメントしていただければできるだけサポートしたいと思います。無念。 それでは、まずは ActiveResource の各モデルのコンフィギュレーションを行うメソッドを見ていきましょう。 ActiveResource はリソースごとに ActiveResour

    hokousya
    hokousya 2009/03/10
    ActiveResourceの各メソッドの使い方を、目的別に解説しています。
  • Ruby 1.9 の String#inspect で JSON 形式への変換を高速化 - WebOS Goodies

    Ruby 1.9.1 が公開されたので、 simple-json.rb を Ruby 1.9 に対応させました。その過程で、文字列中の特殊文字をエスケープするのに String#inspect が活用できることを発見したので、日はそれをご紹介します。 JSON への変換以外でも、例えば Rails の ERb テンプレートで JavaScript に文字列を渡したいときに応用できると思います。覚えておくと便利な Tips ではないでしょうか。 コメントでご指摘があったとおり、 Ruby 1.9 ではネイティブで JSON 変換ができるそうです。なんだ、そもそも simple-json.rb を Ruby 1.9 に対応させる必要自体がなかったのか・・・(^^; そんなわけで、この記事自体にはほとんど意味はなくなりました。強いて言えば、 JSON への変換を使うことで JavaScript

    hokousya
    hokousya 2009/02/26
    Ruby1.9のString#inspectは日本語をそのまま通してくれるので、それを使ってJSONへの変換を高速化しようというお話です。← Ruby 1.9 には標準で JSON ライブラリが添付されているそうです orz
  • MyWeb から Yahoo! ブックマークに移行しました - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 先日の記事でお伝えしたとおり、これまで今週の話題でご紹介したネタを整理するのに使っていたソーシャルブックマーク・サービス Yahoo! MyWeb が 3 月で終了することになってしまいました。また、 MyWeb の前に使っていた Google Notebook も開発が終了していつ閉じられてもおかしくない状態です(トホホ)。 このままではせっかく 3 年かけて積

    hokousya
    hokousya 2009/02/19
    閉鎖予定のMyWebから(日本の)Yahoo!ブックマークにデータを移行ました。そのときに使ったスクリプト等。
  • ActiveResource の使い方(前編) : Rails 同士で通信する - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 少し前にActiveResource で Google Spreadsheets をアクセスするライブラリを公開しましたが、思ったほどブクマとかされなくて、ちょっとションボリ(´・ω・`)な感じでした。まあ、ライブラリがイマイチと言われればそれまでなのですが、それ以前に ActiveResource 自体があまりよく知られていたいのかな、という気もします。たしかに

    hokousya
    hokousya 2009/02/17
    ActiveResourceを使って別のRailsアプリケーションのリソースにアクセスする方法です。Validationやテストの方法などもあります。
  • Rails で Atom / RSS フィードを生成する Builder テンプレート - WebOS Goodies

    Web サイトの更新を通知する Atom / RSS フィードは、現在の Web サイトになくてはならないもののひとつです。当然、 WebOS Goodies でも配信しているわけですが、独自 CMS に移行した際に、それらのフィードも自分で生成しなくてはならなくなりました。そこで、わりと汎用的に使える Builder テンプレートを作ってみたので、日はそれをご紹介しようと思います。 一応、 Feed Validator で Valid の評価が貰えるようになっていますので、よろしければご利用ください。 まずはソースコードです。適当にコピペして使ってください。 こちらが Atom 用のテンプレート。 atom_feed(:language => 'ja-JP', :root_url => @site_url, :url => @atom_url, :id => @site_url) do

    hokousya
    hokousya 2009/02/12
    WebOS Goodies で使っている、 Atom / RSS を生成する Builder テンプレートです。
  • ActiveResource で Google Spreadsheets Data API にアクセスする - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。

    hokousya
    hokousya 2009/01/29
    Google Spreadsheetsを操作するためのActiveResourceのモデルクラスです。 Google SpreadsheetsがDBっぽく使えます。
  • Rake タスクからコントローラのアクションを呼び出す - WebOS Goodies

    すでに何度も書いていて恐縮ですが、年末に独自 CMS の実装をして、その過程でいろいろ便利なライブラリやノウハウを獲得しました。せっかくですので、これからしばらくの間、それらを個別にご紹介していこうかと思います。 日は手始めに Ruby on Rails のちょっとした Tips をご紹介します。表題のとおり、 Rake タスクから任意のコントローラのアクションを呼び出す方法です。サイトを全更新する Rake タスクを作るために編み出しました(笑) あまり頻繁に必要になるものではないですが、知っていると便利な Tips だと思います。ご存じなかった方は、ぜひご一読ください。 結論から言うと、 ActionController::Integration::Session のインスタンスを作成して、そのメソッドを呼ぶだけ実現できます。例えば、トップページの HTML を表示する Rake タ

    hokousya
    hokousya 2009/01/22
    RakeタスクからRailsのアクションを呼び出して、ページのレンダリング結果を取得する方法です。
  • Apache リバースプロキシ→ Lighttpd + Rails の設定方法 - WebOS Goodies

    今週はあまり時間がないので、 Rails 関連の Tips でお茶を濁すことにします。 以前投稿した Apache のリバースプロキシの設定方法という記事では、 Apache ベースのサイトの一部として Rails アプリケーションを公開する方法をご紹介しました。今回はその mongrel を Lighttpd で置き換え、 Apache → Lighttpd + Rails という構成にする設定をご紹介します。まあ、仕事でやった作業の覚え書きです。 Lighttpd ならパフォーマンスも出るので、一般公開するサイトでもじゅうぶんに使える方法です。 Apache で運用しているサイトに Rails アプリケーションを組み込みたいという際は、参考にしていただければと思います。 なお、 Lighttpd や Ruby fcgi ライブラリのインストールは OS のパッケージ管理コマンド等で一発

    hokousya
    hokousya 2008/12/04
    Apacheのリバースプロキシを使ってLighttpd+Railsのアプリケーションを公開する方法です。
  • Rails のフォームで配列形式のデータを扱う方法 - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 「今週の話題」を除くと、すごく久しぶりの投稿になってしまいました。いろいろあってなかなか時間が取れなかったのですが、やっと復活できそうです。ネタはだいぶ溜まっているので、頑張って書いていこうと思います。 さて、日ご紹介するのは Rails アプリケーションで配列構造のデータを扱うフォームに役立つ Tips です。 Rails は特殊な name 属性を指定するこ

    hokousya
    hokousya 2008/09/17
    配列として params に変換されるフォームの書き方です。
  • Ruby on Rails で郵便番号検索 - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。

    hokousya
    hokousya 2008/08/13
    日本郵政のデータをインポートするRakeタスク、表記の揺れに対応するようファインダを拡張したモデルなど。
  • Pure Ruby な SSH クライアントライブラリ「Net::SSH」 - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。

    hokousya
    hokousya 2008/07/10
    Rubyスクリプト中でSSHを使ってリモートホストのコマンドが実行できるライブラリです。サーバー管理の自動化にどうぞ。
  • Rails + BackgrounDRb でメール配信 - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 皆さんご存知のとおり、 Rails をはじめとする多くの Web アプリケーションフレームワークは、リクエストベースで設計されています。つまり、すべての処理は HTTP リクエストごとに起動され、それにレスポンスを返すことで終了します。ほとんどの場合、これは非常にうまく機能しますが、タイムアウトが発生してしまうような時間のかかる処理、一定間隔で定期的に起動したい処

    hokousya
    hokousya 2008/07/08
    バックグラウンド処理を簡単に実現できる Rails プラグイン「BackgrounDRb」のご紹介です。
  • Ruby で bash の特殊文字をエスケープする - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 日は Ruby のちょっとしたユーティリティー関数のご紹介です。 Web アプリケーションを作っていると、ときには入力されたデータを引き渡して外部コマンドを実行したいときがあると思います。そのときに重要なのが、特殊記号のエスケープです。これを忘れると、 Web サーバー上で任意コマンドを実行されてしまう可能性もあります。 そこで、 bash が特殊文字として認識

    hokousya
    hokousya 2008/07/01
    信頼できない文字列を外部コマンドに渡すために、特殊文字をエスケープする関数を作りました。
  • ファイルアップロードフォームの params を擬似的に生成する - WebOS Goodies

    今週もまたもや記事を書かずに終わってしまいそうなので、 Rails 関係の小技をご紹介。 Rails で attachment_fu などを使ってモデルレベルでファイルアップロードを実装すると、基的にフォーム経由でしかファイルアップロードができなくなります(フィールドに直接アクセスすれば別ですが)。これではユニットテストや Rake タスクでのデータの初期化などに不便ですよね。 そんなわけで、ファイルアップロードフォームが生成する params を擬似的に再現する関数を作ってみました。これを使えば、ローカルファイルやプログラム的に生成したデータを直接モデルに引き渡せます。けっこう便利だと思いますので、ぜひ使ってみてください。 基的に、関数にアップロードしたいファイルやデータを渡すと params のデータを返しますので、それをモデルのコンストラクタや attributes に渡すだけで

    hokousya
    hokousya 2008/03/06
    Railsなどでファイルアップロードフォームが生成するparamsを擬似的に生成して、ローカルファイルやStringをモデルにアップロード(?)できます | こちらこそ、fixture_file_upload()勉強になりました。
  • 2 つのディレクトリツリーの差異を調べる Ruby クラス「DirDiff」 - WebOS Goodies

    WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。

    hokousya
    hokousya 2008/02/27
    2つのディレクトリツリーを比較し、相違点(片方にしかないファイル・ディレクトリや内容が変更されたファイル)を取得するRubyクラスです。
  • ブラウザで Ruby on Rails 開発! Heroku を使ってみよう - WebOS Goodies

    Heroku は現在リミテッドβの状態なので、ユーザー登録を行うにはこちらのページでメールアドレスを登録し、招待メールが来るのを待たなくてはなりません。私が登録したときは 2 週間待ちだったのですが、現在はだいたい 1 日以内に招待が来るようです。ちょっと面倒ですが、ぜひサインアップして、 Heroku の素晴らしい世界を体感してみてください。 ・・・どうでもいいけど、サインアップのページにある看板はいったい。 無事にサインアップできたら、さっそくこちらのページから heroku にログインしましょう。すると、最初に以下のアプリケーション管理画面が表示されます。 heroku では同時に複数の Rails アプリケーションが開発できるので、この画面でそれらを管理するわけです。しかし、現在はひとつもアプリケーションが存在しませんので、新たに作成してみましょう。アプリケーションの作成は「Cre

    hokousya
    hokousya 2008/02/05
    Firefox 上で Ruby on Rails アプリケーションが開発できる Web サービス「Heroku」のご紹介です。