From 087f3c9f751940018aebac8f428b96ad99665056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Mota?= Date: Mon, 29 Apr 2013 17:09:49 +0000 Subject: [PATCH] Extract Method. --- extract-method/lib/after.rb | 40 ++++++++++++++++++++++++++++++++++++ extract-method/lib/before.rb | 36 ++++++++++++++++++++++++++++++++ extract-method/test/test.rb | 31 ++++++++++++++++++++++++++++ 3 files changed, 107 insertions(+) diff --git a/extract-method/lib/after.rb b/extract-method/lib/after.rb index e69de29..f5e4c8a 100644 --- a/extract-method/lib/after.rb +++ b/extract-method/lib/after.rb @@ -0,0 +1,40 @@ +class Post + + attr_reader :title, :date + + def initialize title, date + @title = title + @date = date + end + + def body + <<-RETURN + RANDOM TEXT Ladyship it daughter securing procured or am moreover mr. Put + sir she exercise vicinity cheerful wondered. Continual say suspicion + provision you neglected sir curiosity unwilling. + RETURN + + end + + def condensed_format + metadata + end + + def full_format + return_string = metadata + return_string << "--\n#{body}" + + return_string + end + + private + + def metadata + return_string = '' + return_string << "Title: #{title}" + return_string << "Date: #{date.strftime "%Y/%m/%d"}" + + return_string + end + +end diff --git a/extract-method/lib/before.rb b/extract-method/lib/before.rb index e69de29..28532f8 100644 --- a/extract-method/lib/before.rb +++ b/extract-method/lib/before.rb @@ -0,0 +1,36 @@ +class Post + + attr_reader :title, :date + + def initialize title, date + @title = title + @date = date + end + + def body + <<-RETURN + RANDOM TEXT Ladyship it daughter securing procured or am moreover mr. Put + sir she exercise vicinity cheerful wondered. Continual say suspicion + provision you neglected sir curiosity unwilling. + RETURN + + end + + def condensed_format + return_string = '' + return_string << "Title: #{title}" + return_string << "Date: #{date.strftime "%Y/%m/%d"}" + + return_string + end + + def full_format + return_string = '' + return_string << "Title: #{title}" + return_string << "Date: #{date.strftime "%Y/%m/%d"}" + return_string << "--\n#{body}" + + return_string + end + +end diff --git a/extract-method/test/test.rb b/extract-method/test/test.rb index a8f6974..e26f821 100644 --- a/extract-method/test/test.rb +++ b/extract-method/test/test.rb @@ -3,3 +3,34 @@ require 'before' if ENV["BEFORE"] require 'after' unless ENV["BEFORE"] + +describe Post do + before do + @date = Time.new(2014,02,28) + @post = Post.new("Fragmented Class", @date) + end + + describe "when requested a condensed format" do + + it "shows the post's title" do + @post.condensed_format.must_include "Fragmented Class" + end + + it "shows the post's date" do + @post.condensed_format.must_include "2014/02/28" + end + + end + + describe "when requested a full format" do + + it "shows the post's title" do + @post.full_format.must_include "Fragmented Class" + end + + it "shows the post's date" do + @post.full_format.must_include "2014/02/28" + end + + end +end