Module: ProjectLoader

Defined in:
lib/asker/loader/project_loader.rb

Overview

Load params into Project class using arg input

  • load

  • load_from_string

  • load_from_yaml

  • load_from_directory

  • load_error

Class Method Summary collapse

Class Method Details

.load(args = {}) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/asker/loader/project_loader.rb', line 13

def self.load(args = {})
  project = Project.instance

  if args.class == Hash
    project.param.merge!(args)
    return true
  elsif args.class == String
    ProjectLoader.load_from_string(args)
    return true
  end

  msg = '[ERROR] ProjectLoader:'
  msg += "Configuration params format is <#{pArgs.class}>!"
  project.verbose Rainbow(msg).red
  raise msg
end

.load_error(arg) ⇒ Object



65
66
67
68
69
70
# File 'lib/asker/loader/project_loader.rb', line 65

def self.load_error(arg)
  msg = Rainbow('[ERR ] ProjectLoader: Input ').red
  msg += Rainbow(arg).red.bright + Rainbow(' unkown').red
  Project.instance.verbose msg
  raise msg
end

.load_from_directory(dirpath) ⇒ Object



57
58
59
60
61
62
63
# File 'lib/asker/loader/project_loader.rb', line 57

def self.load_from_directory(dirpath)
  msg = Rainbow('[WARN] ProjectLoader.load: Directory input ').yellow
  msg += Rainbow(dirpath).bright.yellow
  msg += Rainbow(' not implemented!').yellow
  Project.instance.verbose msg
  exit 1
end

.load_from_string(arg) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/asker/loader/project_loader.rb', line 30

def self.load_from_string(arg)
  project = Project.instance
  unless File.exist?(arg)
    msg = Rainbow("[WARN] ProjectLoader.load: #{arg} dosn't exists!").yellow.bright
    project.verbose msg
    raise msg
  end

  if File.extname(arg) == '.haml' || File.extname(arg) == '.xml'
    project.set(:inputdirs, File.dirname(arg))
    project.set(:process_file, File.basename(arg))
  elsif File.extname(arg) == '.yaml'
    load_from_yaml(arg)
  elsif File.directory?(arg)
    load_from_directory(arg)
  else
    load_error(arg)
  end
end

.load_from_yaml(arg) ⇒ Object



50
51
52
53
54
55
# File 'lib/asker/loader/project_loader.rb', line 50

def self.load_from_yaml(arg)
  project = Project.instance
  project.param.merge!(YAML.load(File.open(arg)))
  project.set(:configfilename, arg)
  project.set(:projectdir, File.dirname(arg))
end