Sha256: c97491b29c0975ddc0e2ec4fe8a4c6e77aa93fb7732f50b6470ca5dfea6c9c5c

Contents?: true

Size: 1.42 KB

Versions: 18

Compression:

Stored size: 1.42 KB

Contents

require_relative 'ui/ui'

module PantographCore
  class PantographFolder
    FOLDER_NAME = 'pantograph'

    # Path to the pantograph folder containing the Pantfile and other configuration files
    def self.path
      value ||= "./#{FOLDER_NAME}/" if File.directory?("./#{FOLDER_NAME}/")
      value ||= "./.#{FOLDER_NAME}/" if File.directory?("./.#{FOLDER_NAME}/") # hidden folder
      value ||= "./" if File.basename(Dir.getwd) == FOLDER_NAME && File.exist?('Pantfile') # inside the folder
      value ||= "./" if File.basename(Dir.getwd) == ".#{FOLDER_NAME}" && File.exist?('Pantfile') # inside the folder and hidden
      return value
    end

    # Path to the Pantfile inside the pantograph folder. This is nil when none is available
    def self.pantfile_path
      return nil if self.path.nil?

      path = File.join(self.path, 'Pantfile')
      return path if File.exist?(path)
      return nil
    end

    # Does a pantograph configuration already exist?
    def self.setup?
      return false unless self.pantfile_path
      File.exist?(self.pantfile_path)
    end

    def self.create_folder!(path = nil)
      path = File.join(path || '.', FOLDER_NAME)
      return if File.directory?(path) # directory is already there
      UI.user_error!("Found a file called 'pantograph' at path '#{path}', please delete it") if File.exist?(path)
      FileUtils.mkdir_p(path)
      UI.success("Created new folder '#{path}'.")
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
pantograph-0.1.22 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.21 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.20 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.19 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.17 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.16 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.15 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.14 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.13 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.12 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.10 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.8 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.7 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.6 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.4 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.3 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.1 pantograph_core/lib/pantograph_core/pantograph_folder.rb
pantograph-0.1.0 pantograph_core/lib/pantograph_core/pantograph_folder.rb