module TerraspaceBundler::Mod::Concerns::NotationConcern

Public Instance Methods

clean_notation(source) click to toggle source
# File lib/terraspace_bundler/mod/concerns/notation_concern.rb, line 38
def clean_notation(source)
  source.sub(/.*::/,'').sub(%r{http[s?]://},'').sub(%r{git@(.*?):},'') # also remove git@ notation
end
ref(source) click to toggle source
# File lib/terraspace_bundler/mod/concerns/notation_concern.rb, line 29
def ref(source)
  url = clean_notation(source)
  uri = URI(url)
  if uri.query
    params = URI::decode_www_form(uri.query).to_h # if you are in 2.1 or later version of Ruby
    params['ref']
  end
end
remove_notations(source) click to toggle source
# File lib/terraspace_bundler/mod/concerns/notation_concern.rb, line 5
def remove_notations(source)
  remove_subfolder_notation(remove_ref_notation(source))
end
remove_ref_notation(source) click to toggle source
# File lib/terraspace_bundler/mod/concerns/notation_concern.rb, line 9
def remove_ref_notation(source)
  source.sub(/\?.*/,'')
end
remove_subfolder_notation(source) click to toggle source
# File lib/terraspace_bundler/mod/concerns/notation_concern.rb, line 13
def remove_subfolder_notation(source)
  parts = clean_notation(source).split('//')
  if parts.size == 2 # has subfolder
    source.split('//')[0..-2].join('//') # remove only subfolder, keep rest of original source
  else
    source
  end
end
subfolder(source) click to toggle source
# File lib/terraspace_bundler/mod/concerns/notation_concern.rb, line 22
def subfolder(source)
  parts = clean_notation(source).split('//')
  if parts.size == 2 # has subfolder
    remove_ref_notation(parts.last)
  end
end