Class: VFS::JSONWriter Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/yaml-vfs/yaml_vfs.rb

Overview

This class is abstract.

JSONWriter class.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeJSONWriter

Returns a new instance of JSONWriter.



79
80
81
# File 'lib/yaml-vfs/yaml_vfs.rb', line 79

def initialize
  @dir_stack = []
end

Instance Attribute Details

#dir_stackObject (readonly)

Returns the value of attribute dir_stack.



65
66
67
# File 'lib/yaml-vfs/yaml_vfs.rb', line 65

def dir_stack
  @dir_stack
end

Instance Method Details

#write(entries, use_external_names, case_sensitive, overlay_relative, overlay_dir) ⇒ Object



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/yaml-vfs/yaml_vfs.rb', line 67

def write(entries, use_external_names, case_sensitive, overlay_relative, overlay_dir)
  use_overlay_relative = write_yaml_header(use_external_names, case_sensitive, overlay_relative, overlay_dir)
  unless entries.empty?
    current_dir_empty = write_root_entry(entries, use_overlay_relative, overlay_dir)
    entries.drop(1).reduce(current_dir_empty) do |empty, entry|
      dir = entry.directory? ? entry.v_path : entry.v_path.dirname
      start_directory_or_return(dir, empty, use_overlay_relative, overlay_dir, entry)
    end
  end
  write_yaml_footer(entries)
end