Ebook Studio

Topic 9

Topic 9

Ruby source files are converted directly from the English source tree.

Overview

Why this topic matters ๐Ÿ’ก

The capstone exists to gather the course ideas into one small domain. Students move from isolated features to a coherent miniature system with domain objects, state changes, validation, collaboration, and export behavior.

Learning outcomes ๐ŸŽฏ

By the end of this topic, students should be able to:

Assessment focus โœ…

Students should be able to explain why the model is split across Book , Member , Library , and LibraryReport .

Short Note

A capstone should not be large. It should be large enough to reveal whether the student can connect the ideas from earlier topics:

Ruby beauty in this topic:

Ruby caution in this topic:

Reflection prompt:

Worked Examples

Example 1: Borrowing rule on the member ๐Ÿ’ก

The borrowing limit belongs to Member , not to a controller-like script, because it is part of the member's domain constraint.

This is a useful teaching decision:

Example 2: Exporting lending state ๐Ÿ’ก

The library may need to expose lending state in multiple forms:

That makes the exporter boundary realistic and shows the payoff from Topic 7.

Cheatsheet

Domain objects