タグ

ブックマーク / ja.asciicasts.com (36)

  • ASCIIcasts - “Episode 290 - SavonでSOAP”

    290: SavonでSOAP  (view original Railscast) Other translations: Written by Naomi Fujimoto Webデベロッパーであれば、SOAP APIと通信しなくてはいけないという状況に遭遇することもあるでしょう。そのようなときにはシンプルなRubyコードから複雑な.NETJavaアプリケーションとのやり取りが必要になります。ありがたいことに、この基的にあまり楽しくない作業を助けてくれるツールがあります。SavonはDaniel HarringtonによるRuby gemで、SOAP APIと通信するための優れたRubyインタフェースを提供します。今回のエピソードでは、このツールの仕組みを紹介します。 Zipコードのルックアップ 下の画面はZipコードの入力を受け付ける簡単なフォームを持つアプリケーションのページ

    nabinno
    nabinno 2014/11/30
    [[savon][soap]
  • ASCIIcasts - “Episode 253 - CarrierWaveでファイルのアップロード”

    253: CarrierWaveでファイルのアップロード  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto アーティストが絵をアップロードしてギャラリーに展示できるサイトを作っているとしましょう。一部はすでにできています。ギャラリーを一覧表示するページがあり、リンク先のギャラリーで絵を見ることができます。 それぞれの絵は、タイトルと画像保存用のフィールドを持っていますが、絵そのものはありません。ギャラリーに新規に絵を追加しようとしても、タイトルを入れるテキストフィールドがあるのはわかりますが、画像をアップロードする方法がありません。 絵の画像を添付する機能を実装するにはどうすればいいでしょう?Paperclip gemについてエピソード134[動画を見る, 読む]

  • ASCIIcasts - “Episode 270 - Rails 3.1の認証機能”

    270: Rails 3.1の認証機能  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto Rails 3.1には認証関連の新機能が含まれています。今回のエピソードではそのいくつかについて使い方を紹介します。実際に動作するところを見るために、URLを知っている人なら誰でもアクセスできるページを持つ簡単なアプリケーションを準備しました。 HTTPベーシック認証 このページに参照権限を設定して、特定のユーザしかアクセスできないように制限をかけようと思います。そのためには認証機能を追加しなくてはいけませんが、一番早いのはHTTPベーシック認証を追加する方法です。Rails 3.1ではこのための新しい方法を提供しています。必要な作業は、ページのコントローラを修正して、htt

  • ASCIIcasts - “Episode 241 - 簡単なOmniAuth”

    241: 簡単なOmniAuth  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 数週間前、エピソード235[動画を見る, 原文を読む]と236[動画を見る, 原文を読む]でOmniAuthについて説明しました。OmniAuthは、Twitterなどのサードパーティによる認証サービスを自分のRailsアプリケーションに統合することを可能にします。これらのエピソードで提示したシナリオでは、アプリケーションにすでにユーザ名とパスワードを管理するしくみ(この場合はDevice)が存在しているところにOmniAuthを統合するという、どちらかというと複雑なものでした。また、ユーザごとに複数の認証方法を提供していました。このような特別な要求がないのであれば、OmniAut

  • ASCIIcasts - “Episode 396 - CSVとExcelのインポート”

    396: CSVExcelのインポート  (view original Railscast) Other translations: Written by Naomi Fujimoto エピソード362で、データベースのレコードをCSVExcelファイルにエクスポートする方法を紹介しました。それ以来、レコードをインポートする方法も紹介してほしいという多くのリクエストを受けました。そこで今回はCSVExcel形式のファイルからレコードをインポートする方法を紹介します。 方法としては、このページの一番下にフォームを追加し、レコードを含んだファイルをユーザにアップロードさせます。フォームが送信されると、ファイルが解析されてレコードがデータベースに追加されます。ビューテンプレートの最後にフォームを追加します。 /app/views/products/index.html.erb Impor

  • ASCIIcasts - “Episode 274 - 「ログイン状態を記憶」と「パスワードをリセット」”

    274: 「ログイン状態を記憶」と「パスワードをリセット」  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto Railsアプリケーション用の優れた認証ツールはいくつもありますが、自分で作成するという選択もあります。エピソード250 [動画を見る, 読む]ではそれを実践し、その後のエピソード270 [動画を見る, 読む]ではRails 3.1になってhas_secure_passwordによって自動的にパスワードハッシュを生成できるようになって、作業がさらに簡単になったことを紹介しました。 これらのエピソードの中で作成した認証のしくみは基的なものだったので、今回のエピソードではそれをさらに改良して新しい機能を追加していきます。最初に「ログイン状態を記憶」のチェック

  • ASCIIcasts - “Episode 275 - 私のテスト手法”

    275:  私のテスト手法  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 今後のエピソードでは、テストの話題をより多く取り上げていきたいと思います。今回は、前回のエピソード[動画を見る, 読む]でログインフォームに追加した「パスワード忘れ」のリンク用のテストを書くとしたらどうなるかを見ていきます。 前回のエピソードの最初では、ログインフォームを持つアプリケーションがありました。フォームには基的な認証機能がありましたが「ログイン状態を記憶(remember me)」のチェックボックスと「パスワード忘れ(forgotten password)」のリンクがなかったので、順を追って追加していきました。今回、リンクを再度追加する作業を、テスト駆動開発(TDD)の手法を

  • ASCIIcasts - “Episode 272 - RedcarpetでMarkdown”

    272: RedcarpetでMarkdown  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 3ヶ月ほど前にGithubがRedcarpetというRuby gemを導入しました。このgemMarkdownコードを解釈するのに使われ、Githubではドキュメントをマークアップする簡単な方法としてUpskirtライブラリと共に内部的に採用されています。操作方法も簡単なこのRedcarpetを使って、今回のエピソードではRailsアプリケーションに追加する方法およびカスタマイズの方法、またコードブロックをシンタックスハイライトする方法を紹介します。 下の簡単なブログアプリケーションを使って作業を行っていきます。下の記事に入力した内容はHTMLとして直接出力されるの

  • ASCIIcasts - “Episode 276 - 時刻とWebリクエストをテストする”

    276:  時刻とWebリクエストをテストする  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 前回のエピソードでは、テスト駆動開発の作業の流れを実際に見ていきました。ほとんどの部分については紹介したパターンでうまくいきますが、アプリケーションの一部にテストを行うのが難しい機能がある場合もあります。今回のエピソードでは、そのようなケースを2つ紹介します。 現在の時刻をテストする 前回はUserモデルをテストするspecをいくつか作成しました。これらを早足で書いたので、そのひとつについて今度はよく中身を見ていきます。 /spec/models/user.rb it "saves the time the password reset was sent" do us

  • ASCIIcasts - “Episode 277 - マウント可能なエンジン”

    277: マウント可能なエンジン  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 先週末Rails 3.1 HackFestが開催され、参加者の努力によってRails 3.1のリリース候補第5版が公開されました。このリリースには、マウント可能なエンジン(mountable engine)に関する重要な修正が含まれています。マウント可能なエンジンによって、任意のRailsアプリケーションを別のアプリケーションにマウントできるようになることについて、今回のエピソードで紹介します。 エピソード104で紹介したException Notificationプラグインを覚えている方もいるでしょう。このプラグインをアプリケーションに追加することで、アプリケーションが発生させた

  • ASCIIcasts - “Episode 281 - Foreman”

    281: Foreman  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto Ryan Batesが最近Twitterで、Railsアプリケーションの開発モード(development mode)で、依存するバックグラウンドプロセスを管理する最善の方法は何かと質問を投げかけました。何人かがForemanを推奨していたので、今回のエピソードで紹介します。 例えばRyanのGoVsGoアプリケーションを開発に利用するには、事前にいくつかのバックグラウンドプロセスを起動する必要があります。この中には、Beanstalkd、script/workerプロセス、Fayeサーバが含まれます。開発でこのアプリケーションを使用するたびに、これらすべての起動作業が発生します。これらの

  • ASCIIcasts - “Episode 282 - Rails 3.1へのアップグレード”

    282: Rails 3.1へのアップグレード  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto Rails 3.1がついにリリースされました。新機能についての優れた概要説明がRailsGuidesサイトのリリースノートにあります。また新機能のいくつかについては、Railscastsサイトとこのサイトでも紹介されています。今回のエピソードでは、Rails 3.0アプリケーションを3.1にアップグレードする方法に焦点をあて、Railscastsサイトを例として説明していきます。 サイトを準備する サイトをRails 3.1にアップグレードする前に、いくつかの準備作業が必要です。現在のサイトがRails 3.0の最新バージョン(現時点では3.0.10)で動いていなけれ

  • ASCIIcasts - “Episode 280 - RailsでPry”

    280: RailsでPry  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto PryはIRBの代替となるツールで、 IRBと同じようにRubyコードを実行するためのプロンプトを提供します。IRBと比較して、多くの付加機能を持っています。今回のエピソードでは、PryのしくみとRailsアプリケーションに統合する方法を紹介します。 Pryはgemで提供されるのでインストールは簡単です。pry-doc gemも一緒にインストールしますが、これについては後ほど説明します。 $ gem install pry pry-doc RVM gemsetを利用しているので、すべてのgemsetから使用できる形でPryをインストールします。そのためには次の2つのコマンドを実行します

  • ASCIIcasts - “Episode 283 - Sorceryで認証”

    283: Sorceryで認証  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto エピソード250[動画を見る, 読む]で、Railsアプリケーションにゼロから認証機能を追加しました。既存のサードパーティ製のツールを使いたい場合は、一部の機能を自動化してくれるgemがいくつかありますが、今回のエピソードではSorceryを紹介します。 Sorceryはシンプルなツールです。わずか20のメソッドを持つだけですが、およそ必要な認証機能のすべてを提供します。そのシンプルさに反してフル機能を持ち、またモジュール方式をとっているため、例えばパスワードの初期化、活動ログなど、必要な部品のみを選択して有効化できます。Sorceryは他の認証用gemと比較するとより低いレベルで動

  • ASCIIcasts - “Episode 284 - Active Admin”

    284: Active Admin  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 今回のエピソードではActive Adminを見ていきます。このgemを使うとRailsアプリケーションに管理用画面を簡単に追加できます。見栄えのする管理用画面を作成できるだけでなく、自由にカスタマイズ可能です。ライブデモで実際に動作する様子を見ることができます。 今回のエピソードでは、既存のRailsアプリケーションにActive Adminを追加します。対象のアプリケーションは簡単なEコマースアプリで、複数の商品があり、それぞれが価格を持ちカテゴリに属します。Active Adminを使って管理用画面を作成して商品を管理できるようにします。 Active Adminをインスト

  • ASCIIcasts - “Episode 278 - Sunspotで全文検索”

    278: Sunspotで全文検索  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto SunspotはRubyアプリケーションに全文検索機能を追加するためのソリューションです。バックグラウンドでSolrを利用し、多くの優れた機能を提供します。今回のエピソードでは、過去のエピソードで使用したブログアプリケーションを例にして、Sunspotを使ってRailsアプリケーションに全文検索機能を追加します。 このアプリケーションは複数の記事を表示するページを持っており、それらを横断して検索を行う機能を実装していきます。これをSQLを使って行うのは困難になりやすく、多くの場合最善のアプローチとは言えません。Sunspotのような専用の全文検索ツールの方が、この機能を実装するに

  • ASCIIcasts - “Episode 286 - Draper”

    286: Draper  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 今回のエピソードではDraperを紹介します。Draperはpresenterパターンに似た形でRailsアプリケーションのビューにdecoratorを追加できるようにするgemです。テンプレートやヘルパーメソッドに多くの複雑なビューロジックを持っているような場合に、Draperを利用してよりオブジェクト指向のアプローチをとることでコードをすっきりと整理できます。今回のエピソードでそのしくみを紹介します。 対象のアプリケーションを下に示します。ユーザプロファイルのページにそのユーザに関する各種の情報が表示されています。その内容は、アバター画像、フルネーム、ユーザ名、Markdownで記述され

  • ASCIIcasts - “Episode 210 - Deviseのカスタマイズ”

    210: Deviseのカスタマイズ  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 前回のエピソード[動画を見る, 読む]で、Railsアプリケーションでユーザ認証を行うためにdeviseを設定する方法を紹介しました。今回は、前回から引き続いてdeviseをカスタマイズする方法を見ていきます。 前回と同じアプリケーションを使うので、登録、ログイン、ログアウトのページがあり、すでにある程度の認証のしくみができています。 アクセスを制限する 次のステップでは、ログインユーザのみに特定のアクションへのアクセスを制限します。ログインしたユーザだけがプロジェクトを作成、編集、削除できるようにします。このためにProjectsControllerを修正しbefore_fi

  • ASCIIcasts - “Episode 285 - Spork”

    285: Spork  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 器の一種と同じ名前であるSporkは、アプリケーションのテストスイートの読み込みを高速化するRuby gemです。今回のエピソードではこのSporkを使ってアプリケーションのテストの速度を向上させる方法を紹介します。 通常Railsアプリケーションのテストスイートを実行すると、数秒間の停止状態のあとテストが開始されます。対象のアプリケーションのテストで、timeコマンドを使ってこの停止時間を計測してみます。 $ time rspec . ......... Finished in 1.98 seconds 9 examples, 0 failures real 0m11.090s user

  • ASCIIcasts - video.to_s

    Episode Archive 286 Draper 複雑なビューロジックをDraperで整理しましょう。Draper gemが提供する、presenterにとても似たdecoratorを使って、ビューロジックをオブジェクト指向的な手法でまとめることができます。今回のエピソードでは、複雑なテンプレートをステップバイステップでdecoratorにリファクタリングします。 285 Spork Sporkは、Railsアプリケーションを一度バックグラウンドで起動することでテストスイートの読み込み時間を改善します。Guardと一緒に使えば最強の組み合わせとなり、テスト駆動開発で素早いフィードバックを得ることができます。 284 Active Admin Active Adminを利用すると、わずかなコマンドですばやく管理用画面を作成できます。外観がきれいなだけでなく、今回のエピソードで紹介するよう