├── .gitignore ├── 01_template_method_sample.rb ├── 02_strategy_sample1.rb ├── 02_strategy_sample2.rb ├── 03_observer_sample.rb ├── 04_composite_sample.rb ├── 05_iterator_sample1.rb ├── 05_iterator_sample2.rb ├── 06_command_sample.rb ├── 07_adapter_sample1.rb ├── 07_adapter_sample2.rb ├── 08_proxy_sample1.rb ├── 08_proxy_sample2.rb ├── 08_proxy_sample3.rb ├── 09_decorator_sample1.rb ├── 09_decorator_sample2.rb ├── 09_decorator_sample3.rb ├── 10_singleton_sample.rb ├── 11_factory_method_sample.rb ├── 11_factory_method_sample1.rb ├── 11_factory_method_sample2.rb ├── 12_builder_sample1.rb ├── 12_builder_sample2.rb ├── 13_interpreter_sample1.rb ├── 13_test_data ├── big.mp3 ├── big2.mp3 ├── small.mp3 ├── small1.txt ├── small2.txt └── subdir │ ├── other.mp3 │ └── small.jpg ├── 14_abstract_factory_sample.rb ├── 15_test_data ├── dir1 │ ├── big.mp3 │ ├── small.mp3 │ ├── small1.txt │ └── small2.txt ├── dir2 │ ├── big.mp3 │ ├── small.mp3 │ ├── small1.txt │ ├── small2.txt │ └── subdir │ │ ├── other.mp3 │ │ └── small.jpg ├── ex1_files.rb ├── ex1_files_demo.rb ├── ex1_files_test.rb ├── ex2_parser.rb ├── ex2_parser_demo.rb ├── ex2_parser_test.rb ├── ex3_operators.rb ├── ex3_operators_demo.rb ├── ex3_operators_test.rb ├── ex4_speed_demo.rb ├── ex5_runt_demo.rb └── music_dir │ ├── 1.mp3 │ ├── 2.mp3 │ └── 3.mp3 ├── README.md ├── rspec_minitest.rb └── test_case ├── strategies ├── abstract_test_case.rb ├── minitest.rb ├── rspec.rb └── testunit.rb └── test_case_explain.rb /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/.gitignore -------------------------------------------------------------------------------- /01_template_method_sample.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/01_template_method_sample.rb -------------------------------------------------------------------------------- /02_strategy_sample1.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/02_strategy_sample1.rb -------------------------------------------------------------------------------- /02_strategy_sample2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/02_strategy_sample2.rb -------------------------------------------------------------------------------- /03_observer_sample.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/03_observer_sample.rb -------------------------------------------------------------------------------- /04_composite_sample.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/04_composite_sample.rb -------------------------------------------------------------------------------- /05_iterator_sample1.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/05_iterator_sample1.rb -------------------------------------------------------------------------------- /05_iterator_sample2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/05_iterator_sample2.rb -------------------------------------------------------------------------------- /06_command_sample.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/06_command_sample.rb -------------------------------------------------------------------------------- /07_adapter_sample1.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/07_adapter_sample1.rb -------------------------------------------------------------------------------- /07_adapter_sample2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/07_adapter_sample2.rb -------------------------------------------------------------------------------- /08_proxy_sample1.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/08_proxy_sample1.rb -------------------------------------------------------------------------------- /08_proxy_sample2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/08_proxy_sample2.rb -------------------------------------------------------------------------------- /08_proxy_sample3.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/08_proxy_sample3.rb -------------------------------------------------------------------------------- /09_decorator_sample1.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/09_decorator_sample1.rb -------------------------------------------------------------------------------- /09_decorator_sample2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/09_decorator_sample2.rb -------------------------------------------------------------------------------- /09_decorator_sample3.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/09_decorator_sample3.rb -------------------------------------------------------------------------------- /10_singleton_sample.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/10_singleton_sample.rb -------------------------------------------------------------------------------- /11_factory_method_sample.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/11_factory_method_sample.rb -------------------------------------------------------------------------------- /11_factory_method_sample1.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/11_factory_method_sample1.rb -------------------------------------------------------------------------------- /11_factory_method_sample2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/11_factory_method_sample2.rb -------------------------------------------------------------------------------- /12_builder_sample1.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/12_builder_sample1.rb -------------------------------------------------------------------------------- /12_builder_sample2.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/12_builder_sample2.rb -------------------------------------------------------------------------------- /13_interpreter_sample1.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/13_interpreter_sample1.rb -------------------------------------------------------------------------------- /13_test_data/big.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/13_test_data/big.mp3 -------------------------------------------------------------------------------- /13_test_data/big2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/13_test_data/big2.mp3 -------------------------------------------------------------------------------- /13_test_data/small.mp3: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /13_test_data/small1.txt: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /13_test_data/small2.txt: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /13_test_data/subdir/other.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/13_test_data/subdir/other.mp3 -------------------------------------------------------------------------------- /13_test_data/subdir/small.jpg: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /14_abstract_factory_sample.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/14_abstract_factory_sample.rb -------------------------------------------------------------------------------- /15_test_data/dir1/big.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/dir1/big.mp3 -------------------------------------------------------------------------------- /15_test_data/dir1/small.mp3: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /15_test_data/dir1/small1.txt: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /15_test_data/dir1/small2.txt: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /15_test_data/dir2/big.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/dir2/big.mp3 -------------------------------------------------------------------------------- /15_test_data/dir2/small.mp3: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /15_test_data/dir2/small1.txt: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /15_test_data/dir2/small2.txt: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /15_test_data/dir2/subdir/other.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/dir2/subdir/other.mp3 -------------------------------------------------------------------------------- /15_test_data/dir2/subdir/small.jpg: -------------------------------------------------------------------------------- 1 | small 2 | -------------------------------------------------------------------------------- /15_test_data/ex1_files.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex1_files.rb -------------------------------------------------------------------------------- /15_test_data/ex1_files_demo.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex1_files_demo.rb -------------------------------------------------------------------------------- /15_test_data/ex1_files_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex1_files_test.rb -------------------------------------------------------------------------------- /15_test_data/ex2_parser.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex2_parser.rb -------------------------------------------------------------------------------- /15_test_data/ex2_parser_demo.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex2_parser_demo.rb -------------------------------------------------------------------------------- /15_test_data/ex2_parser_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex2_parser_test.rb -------------------------------------------------------------------------------- /15_test_data/ex3_operators.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex3_operators.rb -------------------------------------------------------------------------------- /15_test_data/ex3_operators_demo.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex3_operators_demo.rb -------------------------------------------------------------------------------- /15_test_data/ex3_operators_test.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex3_operators_test.rb -------------------------------------------------------------------------------- /15_test_data/ex4_speed_demo.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex4_speed_demo.rb -------------------------------------------------------------------------------- /15_test_data/ex5_runt_demo.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/ex5_runt_demo.rb -------------------------------------------------------------------------------- /15_test_data/music_dir/1.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/music_dir/1.mp3 -------------------------------------------------------------------------------- /15_test_data/music_dir/2.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/music_dir/2.mp3 -------------------------------------------------------------------------------- /15_test_data/music_dir/3.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/15_test_data/music_dir/3.mp3 -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/README.md -------------------------------------------------------------------------------- /rspec_minitest.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/rspec_minitest.rb -------------------------------------------------------------------------------- /test_case/strategies/abstract_test_case.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/test_case/strategies/abstract_test_case.rb -------------------------------------------------------------------------------- /test_case/strategies/minitest.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/test_case/strategies/minitest.rb -------------------------------------------------------------------------------- /test_case/strategies/rspec.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/test_case/strategies/rspec.rb -------------------------------------------------------------------------------- /test_case/strategies/testunit.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/test_case/strategies/testunit.rb -------------------------------------------------------------------------------- /test_case/test_case_explain.rb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/morizyun/ruby_design_pattern_sample/HEAD/test_case/test_case_explain.rb --------------------------------------------------------------------------------