diff --git a/README.md b/README.md index 89fb91c..d6f21d1 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,7 @@ Classes treated in detail: - [String](#string) - [Symbol](#symbol) - [File](#file) +- [Dir](#dir) - [Set](#set) - [OpenStruct](#openstruct) @@ -706,6 +707,36 @@ File (message='My simple file'): symlink?: false writable?: true ``` +### Dir + +#### Simple Dir + +This example shows a simple ```Dir ``. + +```show.rb```: +```ruby +require 'debug_helper' + +dir = Dir.new(File.dirname(__FILE__)) +DebugHelper.show(dir, 'My simple dir') +``` + +The output shows details of the ```Dir```. + +```show.yaml```: +```yaml +--- +Dir (message='My simple dir'): + path: "." + entries: + - "." + - ".." + - show.md + - show.rb + - show.yaml + - template.md + exist?: true +``` ### Set #### Simple Set @@ -1046,7 +1077,7 @@ The output shows details of the datetime. ```show.yaml```: ```yaml ---- 'DateTime (message=''My datetime'') #' +--- 'DateTime (message=''My datetime'') #' ``` #### Range diff --git a/lib/debug_helper.rb b/lib/debug_helper.rb index ce23151..a33de85 100644 --- a/lib/debug_helper.rb +++ b/lib/debug_helper.rb @@ -2,20 +2,21 @@ require 'set' require 'yaml' -require 'debug_helper/version' +require_relative 'debug_helper/version' -require 'debug_helper/handler' +require_relative 'debug_helper/handler' - require 'debug_helper/each_with_index_handler' + require_relative 'debug_helper/each_with_index_handler' - require 'debug_helper/each_pair_handler' - require 'debug_helper/hash_handler' - require 'debug_helper/struct_handler' + require_relative 'debug_helper/each_pair_handler' + require_relative 'debug_helper/hash_handler' + require_relative 'debug_helper/struct_handler' - require 'debug_helper/file_handler' - require 'debug_helper/object_handler' - require 'debug_helper/string_handler' - require 'debug_helper/symbol_handler' + require_relative 'debug_helper/dir_handler' + require_relative 'debug_helper/file_handler' + require_relative 'debug_helper/object_handler' + require_relative 'debug_helper/string_handler' + require_relative 'debug_helper/symbol_handler' class DebugHelper @@ -63,6 +64,8 @@ def show(obj, message, info) handler_class = case when obj.kind_of?(Array) EachWithIndexHandler + when obj.kind_of?(Dir) + DirHandler when obj.kind_of?(File) FileHandler when obj.kind_of?(Hash) diff --git a/lib/debug_helper/dir_handler.rb b/lib/debug_helper/dir_handler.rb new file mode 100644 index 0000000..1c28e57 --- /dev/null +++ b/lib/debug_helper/dir_handler.rb @@ -0,0 +1,26 @@ +class DebugHelper + + class DirHandler < Handler + + def show + # Instance methods. + [ + :path, + ].each do |method| + self.content.store(method.to_s, obj.send(method)) + end + # Class methods. + { + :entries => [obj.path], + :exist? => [obj.path], + }.each_pair do |method, args| + self.content.store(method.to_s, Dir.send(method, *args)) + end + self.attrs = { + :message => message, + } + show_item + end + + end +end \ No newline at end of file diff --git a/markdown/readme/Rakefile b/markdown/readme/Rakefile index 981d907..87120a4 100644 --- a/markdown/readme/Rakefile +++ b/markdown/readme/Rakefile @@ -1,3 +1,4 @@ +require 'debug_helper' require 'markdown_helper' namespace :build do @@ -20,6 +21,7 @@ namespace :build do String Symbol File + Dir Set OpenStruct Object diff --git a/markdown/readme/class_inclusions.md b/markdown/readme/class_inclusions.md index 97ee619..74f943d 100644 --- a/markdown/readme/class_inclusions.md +++ b/markdown/readme/class_inclusions.md @@ -4,6 +4,7 @@ @[:markdown](classes/string/template.md) @[:markdown](classes/symbol/template.md) @[:markdown](classes/file/template.md) +@[:markdown](classes/dir/template.md) @[:markdown](classes/set/template.md) @[:markdown](classes/open_struct/template.md) @[:markdown](classes/object/template.md) diff --git a/markdown/readme/class_links.md b/markdown/readme/class_links.md index b04792e..0d29006 100644 --- a/markdown/readme/class_links.md +++ b/markdown/readme/class_links.md @@ -4,5 +4,6 @@ - [String](#string) - [Symbol](#symbol) - [File](#file) +- [Dir](#dir) - [Set](#set) - [OpenStruct](#openstruct) diff --git a/markdown/readme/classes/dir/simple/show.md b/markdown/readme/classes/dir/simple/show.md new file mode 100644 index 0000000..653020b --- /dev/null +++ b/markdown/readme/classes/dir/simple/show.md @@ -0,0 +1,28 @@ +#### Simple Dir + +This example shows a simple ```Dir ``. + +```show.rb```: +```ruby +require 'debug_helper' + +dir = Dir.new(File.dirname(__FILE__)) +DebugHelper.show(dir, 'My simple dir') +``` + +The output shows details of the ```Dir```. + +```show.yaml```: +```yaml +--- +Dir (message='My simple dir'): + path: "." + entries: + - "." + - ".." + - show.md + - show.rb + - show.yaml + - template.md + exist?: true +``` diff --git a/markdown/readme/classes/dir/simple/show.rb b/markdown/readme/classes/dir/simple/show.rb new file mode 100644 index 0000000..1bb7c3f --- /dev/null +++ b/markdown/readme/classes/dir/simple/show.rb @@ -0,0 +1,4 @@ +require 'debug_helper' + +dir = Dir.new(File.dirname(__FILE__)) +DebugHelper.show(dir, 'My simple dir') diff --git a/markdown/readme/classes/dir/simple/show.yaml b/markdown/readme/classes/dir/simple/show.yaml new file mode 100644 index 0000000..d1af125 --- /dev/null +++ b/markdown/readme/classes/dir/simple/show.yaml @@ -0,0 +1,11 @@ +--- +Dir (message='My simple dir'): + path: "." + entries: + - "." + - ".." + - show.md + - show.rb + - show.yaml + - template.md + exist?: true diff --git a/markdown/readme/classes/dir/simple/template.md b/markdown/readme/classes/dir/simple/template.md new file mode 100644 index 0000000..ad30a6e --- /dev/null +++ b/markdown/readme/classes/dir/simple/template.md @@ -0,0 +1,9 @@ +#### Simple Dir + +This example shows a simple ```Dir ``. + +@[ruby](show.rb) + +The output shows details of the ```Dir```. + +@[yaml](show.yaml) diff --git a/markdown/readme/classes/dir/template.md b/markdown/readme/classes/dir/template.md new file mode 100644 index 0000000..27d684a --- /dev/null +++ b/markdown/readme/classes/dir/template.md @@ -0,0 +1,3 @@ +### Dir + +@[:markdown](simple/show.md) diff --git a/markdown/readme/classes/object/datetime/show.md b/markdown/readme/classes/object/datetime/show.md index a64bef6..1590e59 100644 --- a/markdown/readme/classes/object/datetime/show.md +++ b/markdown/readme/classes/object/datetime/show.md @@ -14,5 +14,5 @@ The output shows details of the datetime. ```show.yaml```: ```yaml ---- 'DateTime (message=''My datetime'') #' +--- 'DateTime (message=''My datetime'') #' ``` diff --git a/markdown/readme/classes/object/datetime/show.yaml b/markdown/readme/classes/object/datetime/show.yaml index 76dc914..7e30073 100644 --- a/markdown/readme/classes/object/datetime/show.yaml +++ b/markdown/readme/classes/object/datetime/show.yaml @@ -1 +1 @@ ---- 'DateTime (message=''My datetime'') #' +--- 'DateTime (message=''My datetime'') #' diff --git a/test/debug_helper_test.rb b/test/debug_helper_test.rb index 30bf5c0..d2df2dc 100644 --- a/test/debug_helper_test.rb +++ b/test/debug_helper_test.rb @@ -83,6 +83,8 @@ def test_show_object :test_array_self_referencing => array_self_referencing, :test_array_circular => array_circular_0, + :test_dir => Dir.new(File.dirname(__FILE__)), + :test_hash => {:a => 14, :b => 22}, :test_hash_empty => {}, :test_hash_mixed_keys => {14 => 0, :a => 1, 'foobar' => 2}, diff --git a/test/show/actual/test_dir.txt b/test/show/actual/test_dir.txt new file mode 100644 index 0000000..7af9b5d --- /dev/null +++ b/test/show/actual/test_dir.txt @@ -0,0 +1,11 @@ +--- +Dir (message='test_dir'): + path: C:/Users/Burdette/Documents/GitHub/debug_helper/test + entries: + - "." + - ".." + - debug_helper_test.rb + - show + - show_hash + - test_helper.rb + exist?: true diff --git a/test/show/expected/test_dir.txt b/test/show/expected/test_dir.txt new file mode 100644 index 0000000..7af9b5d --- /dev/null +++ b/test/show/expected/test_dir.txt @@ -0,0 +1,11 @@ +--- +Dir (message='test_dir'): + path: C:/Users/Burdette/Documents/GitHub/debug_helper/test + entries: + - "." + - ".." + - debug_helper_test.rb + - show + - show_hash + - test_helper.rb + exist?: true