class DTK::DSL::Template::V1::ModuleRef

Constants

MODULE_NAMESPACE_DELIMS

Public Class Methods

elements_collection_type() click to toggle source
# File lib/dsl/template/v1/module_ref.rb, line 28
def self.elements_collection_type
  :array
end
parse_elements(input_array, parent_info) click to toggle source
# File lib/dsl/template/v1/module_ref.rb, line 32
def self.parse_elements(input_array, parent_info)
  ret = file_parser_output_array
  input_array.each_with_index do |module_ref, i|
    ret << parse_element(module_ref, parent_info, :index => i)
  end
  ret
end

Public Instance Methods

parse!() click to toggle source
# File lib/dsl/template/v1/module_ref.rb, line 40
def parse!
  split = split_by_delim(input_string)
  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
end
parser_output_type() click to toggle source
# File lib/dsl/template/v1/module_ref.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/module_ref.rb, line 52
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