class Skeletor::Skeletons::Skeleton

The Skeleton class provides a wrapper round the template file and handles loading it and validating it, as well as providing default values for any missing sections.

Constants

SCHEMA_FILE

Defines the location to the required schema file for the templates

Public Class Methods

new(template) click to toggle source

Creates a new Skeleton instance from ‘template`

# File lib/skeletor/skeletons/skeleton.rb, line 16
def initialize(template)
  
  begin
    @template = Loader.load_template(template)
    validator = Grayskull::Validator.new(@template,SCHEMA_FILE)
    results = validator.validate
    if results["result"]
      puts "Validated Successfully!"
      @directory_structure = @template["directory_structure"] || []
      @tasks = @template["tasks"] || {}
      @includes = @template["includes"] || {}
      @path = @template["path"]
    else
      puts 'Validation Failed with ' + @errors.count.to_s + ' errors';
      puts ''
      results["errors"].each{
        |error|
        puts error            
      }
      exit
    end
  rescue LoadError => e
    puts e.message
    exit
  end
    
end

Public Instance Methods

directory_structure() click to toggle source

Returns the directory structure section

# File lib/skeletor/skeletons/skeleton.rb, line 45
def directory_structure
  @directory_structure
end
includes() click to toggle source

Returns the includes section

# File lib/skeletor/skeletons/skeleton.rb, line 55
def includes
  @includes
end
path() click to toggle source

Returns the template path

# File lib/skeletor/skeletons/skeleton.rb, line 60
def path
  @path
end
tasks() click to toggle source

Returns the tasks section

# File lib/skeletor/skeletons/skeleton.rb, line 50
def tasks
  @tasks
end