module Jeweler::VersionHelper::YamlExtension

def parse_yaml

def parse_yaml
  yaml = read_yaml
  @major = (yaml['major'] || yaml[:major]).to_i
  @minor = (yaml['minor'] || yaml[:minor]).to_i
  @patch = (yaml['patch'] || yaml[:patch]).to_i
  @build = (yaml['build'] || yaml[:build])
end

def path

def path
  yaml_path
end

def read_yaml

def read_yaml
  if File.exist?(yaml_path)
    YAML.load_file(yaml_path)
  else
    raise VersionYmlError, "#{yaml_path} does not exist!"
  end
end

def refresh

def refresh
  parse_yaml
end

def to_hash

def to_hash
  {
    major: major,
    minor: minor,
    patch: patch,
    build: build
  }
end

def write

def write
  File.open(yaml_path, 'w+') do |f|
    YAML.dump(to_hash, f)
  end
end