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
-
.error_loading(arg) ⇒ Object
Error found and exit application.
-
.load(args) ⇒ Object
Load project from args rubocop:disable Metrics/MethodLength.
-
.load_from_string(filepath) ⇒ Object
Load project from filepath.
-
.load_from_yaml(arg) ⇒ Object
rubocop:disable Security/YAMLLoad.
Class Method Details
.error_loading(arg) ⇒ Object
Error found and exit application.
77 78 79 80 81 |
# File 'lib/asker/loader/project_loader.rb', line 77 def self.error_loading(arg) msg = Rainbow("[ERROR] Loading... #{arg}").red.bright puts msg exit 1 end |
.load(args) ⇒ Object
Load project from args rubocop:disable Metrics/MethodLength
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/asker/loader/project_loader.rb', line 17 def self.load(args) project = ProjectData.instance if args.class == Hash project.param.merge!(args) project.open return project elsif args.class == String ProjectLoader.load_from_string(args) project.open return project end msg = '[ERROR] ProjectLoader:' msg += "Configuration params format is <#{pArgs.class}>!" puts Rainbow(msg).red raise msg end |
.load_from_string(filepath) ⇒ Object
Load project from filepath. Options:
-
HAML filepath
-
XML filepath
-
YAML filepath
rubocop:disable Metrics/MethodLength rubocop:disable Metrics/AbcSize
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/asker/loader/project_loader.rb', line 45 def self.load_from_string(filepath) project = ProjectData.instance unless File.exist?(filepath) msg = Rainbow("[ERROR] #{filepath} not found!").red.bright puts msg exit 1 end if File.extname(filepath) == '.haml' || File.extname(filepath) == '.xml' project.set(:inputdirs, File.dirname(filepath)) project.set(:process_file, File.basename(filepath)) return project elsif File.extname(filepath) == '.yaml' return load_from_yaml(filepath) end error_loading(filepath) end |
.load_from_yaml(arg) ⇒ Object
rubocop:disable Security/YAMLLoad
66 67 68 69 70 71 72 |
# File 'lib/asker/loader/project_loader.rb', line 66 def self.load_from_yaml(arg) project = ProjectData.instance project.param.merge!(YAML.load(File.open(arg))) project.set(:configfilename, arg) project.set(:projectdir, File.dirname(arg)) project end |