タグ

software-engineeringとasciicastsに関するnabinnoのブックマーク (29)

  • 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を利用すると、わずかなコマンドですばやく管理用画面を作成できます。外観がきれいなだけでなく、今回のエピソードで紹介するよう

  • ASCIIcasts - “Episode 256 - 国際化のバックエンド”

    256:  国際化のバックエンド  (view original Railscast) Other translations: Other formats: Written by Naomi Fujimoto 国際化(internationalization)については、一番最近ではエピソード138[動画を見る, 読む]で取り上げました。デフォルト設定ではRailsは国際化の情報をYAMLファイルに保存しますが、今回のエピソードでは別のバックエンドの使い方を紹介します。 下の図は簡単なRailsサイトのページです。このページのヘッダーテキストを国際化してみましょう。 translateメソッド(短縮形はt)を使えばRailsアプリケーションのテキストの一部を簡単に国際化できます。ただしその場合、アプリケーションがサポートする言語ごとにYAMLファイルを編集して、キーとその言語のテキストを

  • 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 298 - Spree入門”

    298: Spree入門  (view original Railscast) Other translations: Written by Naomi Fujimoto Spreeは、Railsアプリケーションに簡単に統合できる、フル機能のEコマースソリューションです。Railsアプリケーションを商品を販売するオンラインストアにしたいという場合に、Spreeはこれをすぐ実現するための方法の一つです。今回のエピソードでは、新規のRailsアプリケーションにSpreeを設定し、いくつかの機能をカスタマイズしながらその仕組みを理解して、自分のアプリケーションのニーズに合うかどうかを判断できるための知識を身につけます。 Spreeのインストール Spreeはイメージ処理のためにImageMagickに依存するので、Spreeをインストールする前にそれをインストールする必要があります。これをおこ

  • ASCIIcasts - “Episode 300 - オープンソースへの貢献”

    300: オープンソースへの貢献  (view original Railscast) Other translations: Written by Naomi Fujimoto Githubによって、オープンソースプロジェクトへの貢献がかつては信じられなかったほど簡単になりました。今回のエピソードでは、オープンソースへ貢献する具体的な方法を、VCR projectにpull requestを送信する手順を例にして紹介します。このgemは、テストをスピードアップするためにHTTPによる通信を記録して再生する手段を提供するもので、エピソード291で取り上げました。gemの作者のMyron Marstonは他の人からの貢献に対して迅速に対応しています。 例えばこのgemに問題を発見したとして、パッチを提供して貢献したいとします。まずやるべきことはgemのissue tracker(問題追跡リ