02 Sep '12, 2am

yieldの使い方 / “リファクタリング(1) - Ruby 練習問題集 - Ruby on Rails with OIAX”

require 'digest/md5' class Bird attr_accessor :name private def digest(food) d = Digest::MD5.new d 親クラスで edible? メソッドを定義することで、eat メソッドを簡略化しています。 筆者の模範解答は以下の通りです。 require 'digest/md5' class Bird attr_accessor :name private def digest(food) d = Digest::MD5.new d 共通部分を抜き出すためにブロック を利用しています。 Crow クラスの eat メソッド内にある中括弧で囲まれた部分 {|f| f.reverse } が、ブロックです ブロックはメソッド呼び出しに付け加えられる「コードの塊」です。 Ruby 言語の初心者がつまづきやすいのがこのブロックという概念なのですが、ポイントはブロックを「機能」と捉えずに「コードの塊」という「物」としてイメージすることです。 この「コードの塊」がメソッドに対して引数と一緒に 渡されるのです。 super(food) で、親クラスの同名メソッド eat に変数 food の中身が引数として渡されるのですが、それと一緒に {|f| f.reverse } というブロックも渡されるのです。 ブロックを受け取ったメソッド内では、yield メソッドでこのブロックを呼び出すことができます。 つまり、yield(food) によって {|f| f.reverse } というコードが実行されるのです。 ブロックに対して引数として渡した food の値は、ブロックの中ではパイプ文字(| )で囲まれた変数 f に格納されます。 今回の問題は、やや無理のある設定だったかもしれません。 現実の開発では、MTG さんの解答の方が分かりやすくてよいかもしれませんん。 しかし、2 つのメソッドの中身がほとんど同じなのに、真ん中辺りが少しだけ違っている、という状況はよくあるものです...

Full article: http://www.oiax.jp/rails/ruby-ex/refactoring_1.html

Tweets

I'm looking to hire a Ruby on Rails Engineer in...

odesk.com 31 Aug '12, 6pm

We're developing an analytics platform centered around enabling businesses to communicate and draw insights from a variety...

Ruby on Rails Engineer for an Analytics applica...

odesk.com 31 Aug '12, 7pm

We're developing an analytics platform centered around enabling businesses to communicate and draw insights from a variety...

¿Quieres trabajar programando en #Ruby o en #Ra...

toprubyjobs.com 01 Sep '12, 3am

Web Developer at Full Sail University Web Developer Full Sail University in Winter Park, FL, USA Full-Time, In House Ruby ...

Shopify website (ruby on rails) Country selecto...

freelancer.com 31 Aug '12, 11am

Project ID: 2449303 Project Type: Fixed Project Description: We have 3 stores based on the Shopify eCommerce platform, the...

[Startup Job] Ruby on Rails Developers at Explo...

workinstartups.com 31 Aug '12, 2pm

Explocial is a growing company. We are designing, building and deploying new applications for the social web. We are recru...

Ruby on Rails Developer (Austin, TX) #job

careers.joelonsoftware.com 30 Aug '12, 8pm

Ruby on Rails Developer Ticketbud Austin, TX (relocation offered) ruby-on-rails ruby-on-rails-3 ruby sinatra Job Descripti...

New Blog: Sinatra, Padrino or Ruby on Rails - W...

openshift.redhat.com 30 Aug '12, 5pm

It is said Rails is the killer-feature of Ruby because it made creating web applications so easy. Some people see it that ...

Learn Ruby on Rails w/ a friend @GA_London this...

generalassemb.ly 03 Sep '12, 2pm

Want to be able to take your ideas and visions and translate them into real working applications? Interested in increasing...

Senior Ruby on Rails Developer Job (San Francis...

zillionjobs.com 30 Aug '12, 9pm

Job Description: Job DescriptionWho You Are: You are a web development master with ninja-like coding skills. You take prid...

Требуется Ruby on Rails разработчик (возможно п...

hantim.ru 30 Aug '12, 10am

Опыт разработки веб-проектов Работа с SQL базами данных – MySQL / PostgreSQL Хорошие знания UNIX-систем, командная строка ...

CINESE #sp procura DESENVOLVEDOR RUBY ON RAILS ...

trampos.co 30 Aug '12, 6pm

Desenvolvedor de ruby on rails para fazer parte da equipe do Cinese, plataforma de crowdlearning com a proposta de compart...

Experienced Ruby on Rails Dev for creating a sc...

freelancer.com 28 Aug '12, 5pm

Project ID: 2441155 Project Type: Fixed Project Description: Experienced Ruby and Ruby on Rails developer needed for a sim...

Reminder: We're throwing our first Ruby / Rails...

columbusrb.com 04 Sep '12, 1pm

Join us as we explore the Ruby and Rails ecosystems. All levels of experience are welcome and encouraged to join!

SupaDupa.me: Ruby On Rails Developer: Location:...

jobs.37signals.com 29 Aug '12, 2pm

SupaDupa.me - Picture Tumblr but for eCommerce. SupaDupa is all about enabling creative businesses start their own branded...