Class: Semverve::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/semverve/generator.rb

Overview

Generates new Ruby version files from Semverve configuration.

Constant Summary collapse

DEFAULT_VERSION =

Default version used when VERSION is not provided.

Returns:

  • (String)
"0.1.0"

Instance Method Summary collapse

Constructor Details

#initialize(configuration, env = ENV) ⇒ Semverve::Generator

Initializes a version-file generator.

Parameters:



26
27
28
29
# File 'lib/semverve/generator.rb', line 26

def initialize(configuration, env = ENV)
  @configuration = configuration
  @env = env
end

Instance Method Details

#generateString

Generates the configured version file.

Returns:

  • (String)


35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/semverve/generator.rb', line 35

def generate
  version = SemanticVersion.parse(env.fetch("VERSION", DEFAULT_VERSION))
  format = Formats.fetch(env.fetch("FORMAT", configuration.format))
  path = configuration.absolute_version_file

  if File.exist?(path) && !force?
    raise Error, "Version file already exists at #{path}. Set FORCE=true to overwrite it."
  end

  FileUtils.mkdir_p(File.dirname(path))
  File.write(path, format.generate(version, module_name: configuration.module_name))

  path
end