Sha256: 1de14560a9e5e153fb37271b79f8f4ea90e0d87c984faa022ebdb8b3d2008843

Contents?: true

Size: 1.46 KB

Versions: 1

Compression:

Stored size: 1.46 KB

Contents

# =============================================================================
#  
# MODULE      : lib/folder_template/fs_adapter.rb
# PROJECT     : FolderTemplate
# DESCRIPTION : 
#
# Copyright (c) 2016, Marc-Antoine Argenton.  All rights reserved.
# =============================================================================

module FolderTemplate

  class FsAdapter
    attr_reader :base_path
    attr_reader :opts

    def initialize( base_path, **opts )
      @base_path = base_path
      @opts = opts
    end

    def makedirs( dirname )
      target = File.join( base_path, dirname )
      return if ( File.directory?( target ) )

      puts "Creating diectory #{dirname} ..." if opts[:verbose]
      FileUtils.makedirs( target )
    end
    
    def write_to_file( filename, content )
      target = File.join( base_path, filename )
      
      if ( File.exists?( target ) && ! opts[:overwrite_files] )
        puts "Skiping file #{filename} ..." if opts[:verbose]
      else
        puts "Generating file #{filename} ..." if opts[:verbose]
        FileUtils.makedirs( File.dirname( target ) )
        File.write( target, content )
      end
    end

    def append_to_file( filename, content )
      target = File.join( base_path, filename )
      
      puts "Appending content to file #{filename} ..." if opts[:verbose]
      FileUtils.makedirs( File.dirname( target ) )
      File.open( target, "a" ) { |f| f.write( content ) }
    end
  end # class FsAdapter
  
end














Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
folder_template-0.1.1 lib/folder_template/fs_adapter.rb