Examples from the book Eloquent Ruby, by Russ Olsen
.
├── README.md
├── chapter_01
│ └── document.rb
├── chapter_03
│ ├── Gemfile
│ ├── Gemfile.lock
│ ├── beware_the_bang.rb
│ ├── dc.xml
│ ├── document.rb
│ ├── in_the_wild.rb
│ ├── instant_arrays_hashes.rb
│ ├── literal_shortcuts.rb
│ └── running_through_collection.rb
├── chapter_04
│ ├── another_api_to_master.rb
│ ├── coming_up.rb
│ ├── staying_out_of_trouble.rb
│ └── the_string_place.rb
├── chapter_05
│ ├── beginnings_and_endings.rb
│ └── regular_expresions_in_ruby.rb
├── chapter_06
│ ├── in_the_wild.rb
│ ├── optimized_to_stand_for_something.rb
│ └── staying_out_of_trouble.rb
├── chapter_07
│ ├── a_quick_review.rb
│ ├── document.rb
│ └── romance_novel.rb
├── chapter_08
│ ├── base_document.rb
│ ├── document.rb
│ ├── extreme_decoupling.rb
│ ├── lazy_document.rb
│ ├── shorter_programs.rb
│ └── test_file.txt
├── chapter_09
│ ├── rspec
│ │ ├── document.rb
│ │ ├── document_spec.rb
│ │ ├── printable_document.rb
│ │ └── printable_document_spec.rb
│ └── test_unit
│ ├── document.rb
│ ├── document_test.rb
│ └── output.txt
├── chapter_10
│ ├── text_compressor.rb
│ ├── text_compressor_spec.rb
│ ├── text_compressor_v2.rb
│ └── text_compressor_v3.rb
├── chapter_11
│ ├── defining_operators.rb
│ ├── document.rb
│ ├── operating_across_classes.rb
│ └── sampling_of_operators.rb
├── chapter_12
│ ├── broadening_the_appeal.rb
│ ├── document_identifier.rb
│ ├── document_pointer.rb
│ └── double_equals.rb
├── chapter_13
│ ├── a_hidden_but_real_class.rb
│ ├── a_stubby_puzzle.rb
│ ├── class_methods.rb
│ └── document.rb
├── chapter_14
│ ├── class_instance_variables
│ │ ├── document_convenience.rb
│ │ └── document_plain.rb
│ └── class_variables
│ ├── document.rb
│ ├── presentation.rb
│ └── resume.rb
├── chapter_15
│ ├── rendering_module.rb
│ └── wordprocessor_module.rb
├── chapter_16
│ ├── document.rb
│ ├── extending_a_module.rb
│ ├── finders_module.rb
│ ├── mixin_modules_to_the_rescue.rb
│ └── writing_quality_module.rb
├── chapter_17
│ ├── a_quick_review_of_code_blocks.rb
│ ├── document.rb
│ ├── enumerable.rb
│ ├── in_the_wild.rb
│ ├── iterating_over_the_ethereal.rb
│ └── one_word_after_another.rb
├── chapter_18
│ ├── add_a_little_logging.rb
│ ├── document.rb
│ └── setting_up_objects_with_init_block.rb
├── chapter_19
│ ├── banking_blocks.rb
│ ├── example.txt
│ ├── instant_block_objetcs.rb
│ ├── lazy_initialization.rb
│ └── the_callback_problem.rb
├── chapter_20
│ ├── class_inclusion_hook.rb
│ ├── document.rb
│ ├── module_inclusion_hook.rb
│ └── set_trace_func.rb
├── chapter_21
│ ├── coping_with_constants.rb
│ ├── document.error.txt
│ ├── document.rb
│ ├── handling_document_errors.rb
│ └── meeting_those_missing_methods.rb
├── chapter_22
│ ├── document.rb
│ ├── in_the_wild.rb
│ └── super_secret_document.rb
├── chapter_23
│ ├── building_form_letters.rb
│ ├── document.rb
│ ├── in_the_wild.rb
│ └── magic_methods.rb
├── chapter_24
│ ├── alias_method.rb
│ ├── document.rb
│ ├── fixing_a_broken_class.rb
│ ├── improving_existing_classes.rb
│ └── wide_open_classes.rb
├── chapter_25
│ ├── class_methods_that_change_their_class.rb
│ ├── document.rb
│ ├── document_spec.rb
│ ├── in_the_wild.rb
│ ├── open_classes.rb
│ └── put_programming_logic_in_your_classes.rb
├── chapter_26
│ ├── a_document_of_paragraphs.rb
│ ├── better_method_creation_with_define_method.rb
│ ├── class_methods_that_build_instance_methods.rb
│ ├── in_the_wild.rb
│ ├── instructions.rb
│ ├── paragraph.rb
│ ├── resume.rb
│ ├── structured_document.rb
│ └── the_modification_sky_is_the_limit.rb
├── chapter_27
│ ├── dealing_with_xml.rb
│ ├── fellowship.xml
│ ├── fix_author.ripper
│ ├── xmlripper.rb
│ └── xmlripper_v2.rb
├── chapter_28
│ ├── edit.ezr
│ ├── edit_regexp.ezr
│ ├── ez_ripper_statement.rb
│ ├── ez_ripper_statement.tt
│ ├── ezripper.rb
│ ├── ezripper_regex.rb
│ ├── fellowship.xml
│ ├── treetop_run_example.rb
│ └── xmlripper.rb
└── chapter_29
├── document
│ ├── README
│ ├── document.gemspec
│ ├── lib
│ │ └── document.rb
│ └── spec
│ └── document_spec.rb
└── document-1.0.1.gem
35 directories, 133 files