Class: Maschine::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/maschine-generator/generator.rb

Constant Summary collapse

@@scaffoldDirs =
%w(
    src src/_includes src/_includes/sections src/_includes/snippets src/_pages src/_data src/_layouts
    src/_plugins src/_posts src/_sass src/_config src/_locales assets webpack
).freeze
@@rootCopyFiles =
%w(
    templates/Gemfile templates/package.json templates/webpack.config.js
).freeze
@@erbFiles =
%( templates/_config.yml.erb )

Instance Method Summary collapse

Constructor Details

#initialize(project_path = nil) ⇒ Generator

Returns a new instance of Generator.



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/maschine-generator/generator.rb', line 19

def initialize(project_path=nil)
    @gemPath = File.expand_path File.dirname(__FILE__) + "/../.."
    configFile = File.join(@gemPath, 'config.yaml')
     
    raise "config.yaml does not exists" if ! File.exists?(configFile)
    @config = YAML.load_file(configFile)            
    @projectPath = ENV['MASCHINE_PROJECT_DIRECTORY']            
    @logger = Logger.new(STDOUT)
    @logger.level = Logger::DEBUG
    # @logger.debug @projectPath
    # @logger.debug @gemPath
    @apikey = ENV['MASCHINE_API_KEY']
end

Instance Method Details

#apikeyObject



33
34
35
# File 'lib/maschine-generator/generator.rb', line 33

def apikey
    return @apikey
end

#copyRootFilesObject



75
76
77
78
79
80
81
82
83
# File 'lib/maschine-generator/generator.rb', line 75

def copyRootFiles
    rootFiles.each do |file|
        if File.exists?(file)
            FileUtils.cp(file, @projectPath)
        else
            @logger.error(file)    
        end    
    end
end

#copyThemeObject



57
58
59
60
61
62
63
64
65
# File 'lib/maschine-generator/generator.rb', line 57

def copyTheme
    import = @config['maschine']['theme']['import']
    importDir =  File.join(@projectPath, import['directory'])
    import['process'].each do |directory|
        from = File.join(importDir, directory['directory']['from'])
        to = File.join(@projectPath, directory['directory']['to'])
        FileUtils.cp_r from, to
    end            
end

#createDirsObject



37
38
39
40
41
42
# File 'lib/maschine-generator/generator.rb', line 37

def createDirs            
    @@scaffoldDirs.each do |directory|
        dir = File.join(@projectPath, directory)                
        FileUtils.mkdir_p(File.join(@projectPath, directory)) if !Dir.exists?(dir)
    end
end

#dirsObject



44
45
46
47
48
49
50
51
# File 'lib/maschine-generator/generator.rb', line 44

def dirs
    dir = Array.new
    @@scaffoldDirs.each do |directory|                
        d = File.join(@projectPath, directory)                
        dir << d 
    end
    return dir
end

#erbObject



53
54
55
# File 'lib/maschine-generator/generator.rb', line 53

def erb
    @erb ||= ERBRenderer.new(self)
end

#executeObject



88
89
90
91
92
93
94
95
# File 'lib/maschine-generator/generator.rb', line 88

def execute
    @logger.debug "create directories"
    self.createDirs
    # TODO: hole das theme vom server
    @logger.debug "copy theme"
    self.copyTheme
    @logger.debug "copy root files"
end

#processConfigFileObject



85
86
# File 'lib/maschine-generator/generator.rb', line 85

def processConfigFile
end

#rootFilesObject



67
68
69
70
71
72
73
# File 'lib/maschine-generator/generator.rb', line 67

def rootFiles
    files = Array.new
    @@rootCopyFiles.each do |file| 
        files.push(File.join(@gemPath, file))                            
    end
    return files
end