Difference between revisions of "Text File Writer Assignment"

From CSE425S Wiki
Jump to navigation Jump to search
Line 1: Line 1:
 
=Background=
 
=Background=
 
==Ensure==
 
==Ensure==
https://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/ensure.html
+
Ruby provides begin/rescue/ensure which is rather analogous to try/catch/finally in Java.
  
note: this page covers the try/finally equivalent in Ruby and happens to use opening and closing a file as an example.
+
note: although coincidental, it is rather fitting that this reference covers [[https://ruby-doc.org/docs/ruby-doc-bundle/UsersGuide/rg/ensure.html begin/rescue/ensure] with ensuring to close an opened file as its example.  Ensuring to close an opened file is the canonical example for this sort of feature.
  
 
=Code To Implement=
 
=Code To Implement=

Revision as of 05:05, 25 November 2022

Background

Ensure

Ruby provides begin/rescue/ensure which is rather analogous to try/catch/finally in Java.

note: although coincidental, it is rather fitting that this reference covers [begin/rescue/ensure with ensuring to close an opened file as its example. Ensuring to close an opened file is the canonical example for this sort of feature.

Code To Implement

open_yield_close

file: src/main/ruby/text_file_writer/text_file_writer.rb Ruby logo.svg
class: TextFileWriter
superclass: Object
methods: open_yield_close(path)

Client

  TextFileWriter.open_yield_close(path) do |file|
    file.write("<html><body><h1>#{Time.now}</h1></body></html>")
  end