class Envirobly::Default

def self.key = "url"

def self.key = "url"

def cast_id(value)

def cast_id(value)
  value.to_i
end

def id

def id
  if File.exist?(@path)
    content = YAML.safe_load_file(@path)
    if content[self.class.key] =~ self.class.regexp
      return cast_id($1)
    end
  end
  nil
end

def initialize(shell: nil)

def initialize(shell: nil)
  @path = File.join Envirobly::Config::DIR, "defaults", self.class.file
  @shell = shell
end

def require_if_none

def require_if_none
  id || require_id
end

def save(url)

def save(url)
  unless url =~ self.class.regexp
    raise ArgumentError, "'#{url}' must match #{self.class.regexp}"
  end
  FileUtils.mkdir_p(File.dirname(@path))
  content = YAML.dump({ self.class.key => url })
  File.write(@path, content)
end

def save_if_none(url)

def save_if_none(url)
  return if id.present?
  save(url)
end