During this activity:
This activity helps students develop the following skills, values and attitudes: ability to analyze and synthesize, capacity for identifying and solving problems, and efficient use of computer systems.
This activity must be developed in the pre-assigned teams of two.
Create a directory called
observer and a subdirectory
src within it. Inside the
src folder create two files called:
Both Ruby source files must start with a comment containing title, date, and the authors’ personal information. For example:
# Observer Pattern # Date: 29-Aug-2022 # Authors: # A01160611 Thursday Rubinstein # A01777771 Stephen Strange
twitter.rb file write a class called
# File name: twitter_test.rb require 'minitest/autorun' require 'stringio' require 'twitter' class TwitterTest < Minitest::Test def setup @out = StringIO.new @old_stdout = $stdout $stdout = @out end def teardown $stdout = @old_stdout end def test_twitter_alices_adventures_in_wonderland a = Twitter.new('Alice') k = Twitter.new('King') q = Twitter.new('Queen') h = Twitter.new('Mad Hatter') c = Twitter.new('Cheshire Cat') a.follow(c) k.follow(q) h.follow(a).follow(q).follow(c) q.follow(q) a.tweet "What a strange world we live in." k.tweet "Begin at the beginning, and go on till you come " \ "to the end: then stop." q.tweet "Off with their heads!" c.tweet "We're all mad here." assert_equal \ "Mad Hatter received a tweet from Alice: What a strange " \ "world we live in.\n" \ "King received a tweet from Queen: Off with their " \ "heads!\n" \ "Mad Hatter received a tweet from Queen: Off with their " \ "heads!\n" \ "Queen received a tweet from Queen: Off with their " \ "heads!\n" \ "Alice received a tweet from Cheshire Cat: We're all " \ "mad here.\n" \ "Mad Hatter received a tweet from Cheshire Cat: " \ "We're all mad here.\n", \ @out.string end def test_twitter_star_wars y = Twitter.new('Yoda') o = Twitter.new('Obi-Wan Kenobi') v = Twitter.new('Darth Vader') p = Twitter.new('Padmé Amidala') p.follow(v) v.follow(p).follow(y).follow(v) y.tweet "Do or do not. There is no try." o.tweet "The Force will be with you, always." v.tweet "I find your lack of faith disturbing." o.tweet "In my experience, there's no such thing as luck." y.tweet "Truly wonderful, the mind of a child is." p.tweet "I will not condone a course of action that will " \ "lead us to war." assert_equal \ "Darth Vader received a tweet from Yoda: Do or do not. " \ "There is no try.\n" \ "Padmé Amidala received a tweet from Darth Vader: I find "\ "your lack of faith disturbing.\n" \ "Darth Vader received a tweet from Darth Vader: I find " \ "your lack of faith disturbing.\n" \ "Darth Vader received a tweet from Yoda: Truly wonderful,"\ " the mind of a child is.\n" \ "Darth Vader received a tweet from Padmé Amidala: I will "\ "not condone a course of action that will lead us to " \ "war.\n", \ @out.string end end
Create a compressed tarball file with the full contents of the
observer directory (including the generated HTML documentation in the
doc subdirectory). Call this file
observer.tgz. From a terminal, you can use the following command to create this file (make sure to run it at the same level where the
observer folder resides):
tar czf observer.tgz observer
To deliver the
observer.tgz file, please provide the following information:
Only one team member needs to upload the file.
Due date is Monday, August 29.
This activity will be evaluated using the following criteria:
|50%||Implementation of program requirements.|
|1||The program and/or documentation was plagiarized.|