Sale!

COEN 278 Assignment #2 solved

Original price was: $35.00.Current price is: $30.00. $25.50

Category:

Description

5/5 - (9 votes)

Question 1. Define a string using either literal or “here document”, for example, the following variable “str” is defined with a “here document” str = <3}   Question 2. Define an array of student record, for example, students = [ {:firstname => “John”, :lastname => “LastnameJohn”,  :phonenumber => 123456789}, {:firstname => “Ken”, :lastname => “Lastnameken”,  :phonenumber => 456734244}, {:firstname => “Marisa”, :lastname => “lastnamemarisa”,  :phonenumber => 443234567}, {:firstname => “Ken”, :lastname => “Kenlastname”,  :phonenumber => 456734244} ] write a method to be able to query student, for example find all the record with firstname is ken: search_students(students, firstname: “ken”), it will print: First Name Last Name Phone# Ken Lastnameken 456734244 Ken Kenlastname   456734244 you can also define a class to hold students record data and search method, then pass the object to search_students() Question 3. Write a class for compressing a string (remove duplicate word and be able to recover the original string). when you create an object of this class, you provide a string, then the object save the compressed result as the attribute of the  object. The compressed result will have two arrays:  an array for strings and an array for index (for recovering purpose). For example:  assuming the name of your class is Compress to create an object, you can call like this: obj = Compress.new(“i love you but do you love me”) then there will be two instance variables created inside the object to hold two values: [“i”, “love”, “you”, “but”, “do”, “me”]   # no duplicate word (compressed)    [0, 1, 2, 3, 4, 2, 1, 5]   # index to the original array to  represent original string Define a method to return the original string. Question 4.  one of the method in Hash class is Hash#merge, it will merge two hashes. it’s format is like this: merge(second_hash) → new hash merge(second_hash){ | key, val1, val2 | newvalue} → new hash if no block is given, it merge two hashes, if there is duplicate key, the value of the “other_hash” will be used. if a block is given, the value for the duplicate key is determined by calling the block with the duplicate key, the value in first hash (val1), and the value in second hash (val2) for example: h1 = { “a” => 100, “b” => 200 } h2 = { “b” => 254, “c” => 300 } h1.merge(h2) #=> {“a”=>100, “b”=>254, “c”=>300} h1.merge(h2){|key, val1, val2| val2 – val1} #=> {“a”=>100, “b”=>54, “c”=>300} h1 #=> {“a”=>100, “b”=>200} merge!() is the “dangerous” version of merge(), which will change the h1 to be the merged hash. re-open the class Hash, re-implement these two methods.  
 Question 5 A template is a HTML file with Ruby code inside. The Ruby code is marked by <% %>. or if a line start with %, then the whole line is ruby code For example, the following is an template file: Write a class, the object of this class has a template attribute and an instance method to “filter” its template, so that all ruby code are removed and filtered string is returned. You can define your string using either here document or normal string quotation %{ } then create the object, then filter the template and return the filtered string. [ assuming there is no nested case, for example, <% a <% b %> c %> ] ——— Requirement: – Define your classes in each .rb file – Write a main .rb file to require these .rb files, and write code to create object and call method  and output results. – Write comment – Your program should do some data check, for example, in question 1, if str is empty. in question 2, if no match, print out “no match is found”. <%= simple_form_for @project do |f| %> <%= f.input :name %> <%= f.input :description %>

Tasks

<%= f.simple_fields_for :tasks do |task| %> <%= render ‘task_fields’, :f => task %> <% end %>

<%= f.submit ‘Save’ %> <% end %> –  Use #!  to make your main .rb program be able to run directly.