class Metanorma::Cli::TemplateRepo
Attributes
name[R]
overwrite[R]
source[R]
type[R]
Public Class Methods
add(name, source, options = {})
click to toggle source
# File lib/metanorma/cli/template_repo.rb, line 23 def self.add(name, source, options = {}) new(options.merge(name: name, source: source)).add end
new(options = {})
click to toggle source
# File lib/metanorma/cli/template_repo.rb, line 8 def initialize(options = {}) @name = options.fetch(:name) @source = options.fetch(:source) @type = options.fetch(:type, "custom") @overwrite = options.fetch(:overwrite, false) end
Public Instance Methods
add()
click to toggle source
# File lib/metanorma/cli/template_repo.rb, line 15 def add create_template_config add_new_template(name, source, type) write_to_template_config(templates) templates[:templates] end
Private Instance Methods
add_new_template(name, source, type)
click to toggle source
# File lib/metanorma/cli/template_repo.rb, line 54 def add_new_template(name, source, type) names = templates[:templates].map { |template| template[:name].to_s } if names.include?(name.to_s) && overwrite == false raise Errors::DuplicateTemplateError.new("Duplicate metanorma template") end templates[:templates].push({ name: name, source: source, type: type }) end
create_template_config()
click to toggle source
# File lib/metanorma/cli/template_repo.rb, line 39 def create_template_config unless template_config_file.exist? unless template_config_file.dirname.exist? FileUtils.mkdir_p(template_config_file.dirname) end write_to_template_config(templates: []) end end
template_config_file()
click to toggle source
# File lib/metanorma/cli/template_repo.rb, line 35 def template_config_file @template_config_file ||= Cli.config_path(true) end
templates()
click to toggle source
# File lib/metanorma/cli/template_repo.rb, line 31 def templates @templates ||= YAML.load_file(template_config_file).symbolize_all_keys end
write_to_template_config(templates)
click to toggle source
# File lib/metanorma/cli/template_repo.rb, line 49 def write_to_template_config(templates) shash = templates.stringify_all_keys File.write(template_config_file, shash.to_yaml) end