Class: Codestrap::Strap::Abstract Abstract

Inherits:
Object
  • Object
show all
Includes:
Mixin::Exceptions::Template
Defined in:
lib/codestrap/strap/abstract.rb

Overview

This class is abstract.

Boilerplate renderer class

Methods (aliased to #abstract) that require overriding

#pre

Pre execution

#execute

Render execution

Methods that may be overridden

#post

Direct Known Subclasses

Standard

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeAbstract

Abstract class. Raise error on instantiation



95
96
97
# File 'lib/codestrap/strap/abstract.rb', line 95

def initialize
  raise RendererAbstractOnly, 'Abstract Class Requires implementation'
end

Instance Attribute Details

#dstString

Path to destination file

Returns:

  • (String)


56
57
58
# File 'lib/codestrap/strap/abstract.rb', line 56

def dst
  @dst
end

#ignoreArray

List of files to ignore

Returns:

  • (Array)


35
36
37
# File 'lib/codestrap/strap/abstract.rb', line 35

def ignore
  @ignore
end

#objectsCodestrap::Object::Factory

Objects utilized in templates



30
31
32
# File 'lib/codestrap/strap/abstract.rb', line 30

def objects
  @objects
end

#overwritetrue|false

Allow overwrite of files

Returns:

  • (true|false)


61
62
63
# File 'lib/codestrap/strap/abstract.rb', line 61

def overwrite
  @overwrite
end

#srcString

Path to project

Returns:

  • (String)


51
52
53
# File 'lib/codestrap/strap/abstract.rb', line 51

def src
  @src
end

Class Method Details

.abstract_methodsArray

List methods aliased to Codestrap::Template::Abstract#abstract

Returns:

  • (Array)


39
40
41
42
43
44
45
46
# File 'lib/codestrap/strap/abstract.rb', line 39

def self.abstract_methods
  instance_methods.group_by { |m| instance_method(m) }.map(&:last).keep_if { |sym| sym.length > 1 }.map { |methods|
    if methods.include?('abstract'.to_sym)
      return methods.map { |method| method.to_s }.select { |method| method != 'abstract' }
    end
  }
  []
end

Instance Method Details

#abstractObject Also known as: pre, execute

This method is abstract.

Method(s) aliased to this method are considered abstract

Raises:



103
104
105
# File 'lib/codestrap/strap/abstract.rb', line 103

def abstract
  raise RendererRequiredMethod, "Method #{__method__.to_s} not implemented"
end

#overwrite?true|false

Check overwrite attribute

Returns:

  • (true|false)


65
66
67
# File 'lib/codestrap/strap/abstract.rb', line 65

def overwrite?
  !!@overwrite
end

#postObject

Post execution method



114
115
# File 'lib/codestrap/strap/abstract.rb', line 114

def post
end

#to_diskInteger

Moves #working_dir contents to #dst

Returns:

  • (Integer)

    Returns 0 on success



128
129
130
# File 'lib/codestrap/strap/abstract.rb', line 128

def to_disk
  FileUtils.mv self.working_dir.path, self.dst
end

#working_dirDir Also known as: file

Creates and returns path to working directory

Returns:

  • (Dir)


120
121
122
# File 'lib/codestrap/strap/abstract.rb', line 120

def working_dir
  @working_dir ||= Dir.new(Dir.mktmpdir('strap'))
end