class DTK::DSL::Template::V1::ModuleRefsLock
Constants
- MODULE_NAMESPACE_DELIMS
Public Instance Methods
parse!()
click to toggle source
# File lib/dsl/template/v1/module_refs_lock.rb, line 25 def parse! input_hash.each_pair do |module_ref_term, info_hash| add parse_element(module_ref_term, info_hash) end end
parser_output_type()
click to toggle source
# File lib/dsl/template/v1/module_refs_lock.rb, line 21 def parser_output_type :array end
Private Instance Methods
parse_element(module_ref_term, info_hash)
click to toggle source
# File lib/dsl/template/v1/module_refs_lock.rb, line 33 def parse_element(module_ref_term, info_hash) ret = self.class.file_parser_output_hash version = parse_version(info_hash) namespace, module_name = parse_module_ref_term(module_ref_term) ret.set :Namespace, namespace ret.set :ModuleName, module_name ret.set :ModuleVersion, version ret end
parse_module_ref_term(module_ref_term)
click to toggle source
returns [namespace, module_name]
# File lib/dsl/template/v1/module_refs_lock.rb, line 54 def parse_module_ref_term(module_ref_term) split = split_by_delim(module_ref_term) unless split.size == 2 raise parsing_error("The term '#{module_ref_term}' is an ill-formed module reference") end namespace, module_name = split [namespace, module_name] end
parse_version(info_hash)
click to toggle source
# File lib/dsl/template/v1/module_refs_lock.rb, line 45 def parse_version(info_hash) unless version = info_hash['version'] raise parsing_error("The missing version info") end # TODO: check syntax of version version end
split_by_delim(str)
click to toggle source
# File lib/dsl/template/v1/module_refs_lock.rb, line 65 def split_by_delim(str) if matching_delim = MODULE_NAMESPACE_DELIMS.find { |delim| str =~ Regexp.new(delim) } str.split(matching_delim) else [str] end end