class DTK::DSL::Template::V1::Dependency

Constants

MODULE_NAMESPACE_DELIMS

Public Class Methods

parse_elements(input_hash, parent_info) click to toggle source
# File lib/dsl/template/v1/dependency.rb, line 28
def self.parse_elements(input_hash, parent_info)
  ret = file_parser_output_array
  input_hash.each do |name, version|
    ret << parse_element({ 'name' => name, 'version' => version }, parent_info, :index => name)
  end
  ret
end

Public Instance Methods

parse!() click to toggle source
# File lib/dsl/template/v1/dependency.rb, line 36
def parse!
  name = input_hash['name']
  version = input_hash['version']

  split = split_by_delim(name)
  unless split.size == 2
    raise parsing_error("The term '#{input_string}' is an ill-formed module reference")
  end
  namespace, module_name = split

  set :Namespace, namespace
  set :ModuleName, module_name
  set :ModuleVersion, version
end
parser_output_type() click to toggle source
# File lib/dsl/template/v1/dependency.rb, line 24
def parser_output_type
  :hash
end

Private Instance Methods

split_by_delim(str) click to toggle source
# File lib/dsl/template/v1/dependency.rb, line 53
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