Class: Semverve::ProjectMetadata

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

Overview

Infers project metadata from explicit configuration or project files.

Instance Method Summary collapse

Constructor Details

#initialize(configuration) ⇒ Semverve::ProjectMetadata

Initializes project metadata inference.

Parameters:



15
16
17
# File 'lib/semverve/project_metadata.rb', line 15

def initialize(configuration)
  @configuration = configuration
end

Instance Method Details

#gem_nameString?

Gem name from explicit config, the version-file path, or the gemspec. App adapters can disable package-name inference.

Returns:

  • (String, nil)


24
25
26
27
28
# File 'lib/semverve/project_metadata.rb', line 24

def gem_name
  return explicit_gem_name || configured_gem_name unless configuration.infer_package_name?

  explicit_gem_name || configured_version_file_gem_name || gemspec_name
end

#module_nameString

Ruby module name from explicit config or the resolved gem name.

Returns:

  • (String)


34
35
36
# File 'lib/semverve/project_metadata.rb', line 34

def module_name
  explicit_module_name || configured_module_name || camelize(gem_name)
end

#version_fileString

Version-file path from explicit config or the resolved gem name.

Returns:

  • (String)


42
43
44
# File 'lib/semverve/project_metadata.rb', line 42

def version_file
  configured_version_file || File.join("lib", gem_name, "version.rb")
end