Module: Semverve::Adapters

Defined in:
lib/semverve/adapters.rb

Overview

Framework-specific configuration adapters.

Defined Under Namespace

Classes: Base, Rails, Sinatra

Class Method Summary collapse

Class Method Details

.checksArray<#name>

Checks supplied by all registered adapters.

Returns:

  • (Array<#name>)


52
53
54
55
56
# File 'lib/semverve/adapters.rb', line 52

def checks
  adapters.values.flat_map(&:checks).each_with_object({}) do |check, checks|
    checks[check.name] = check
  end.values
end

.checks_for(name) ⇒ Array<#name>

Checks supplied by the configured adapter.

Parameters:

  • name (Symbol, String, nil)

Returns:

  • (Array<#name>)


64
65
66
67
68
# File 'lib/semverve/adapters.rb', line 64

def checks_for(name)
  return [] unless name

  fetch(name).checks
end

.defaults_for(name, configuration) ⇒ Hash

Defaults for the configured adapter.

Parameters:

Returns:

  • (Hash)


42
43
44
45
46
# File 'lib/semverve/adapters.rb', line 42

def defaults_for(name, configuration)
  return {} unless name

  fetch(name).defaults(configuration)
end

.fetch(name) ⇒ #name, ...

Returns an adapter by name.

Parameters:

  • name (Symbol, String)

Returns:

Raises:



27
28
29
30
31
32
33
# File 'lib/semverve/adapters.rb', line 27

def fetch(name)
  normalized_name = normalize_name(name)
  adapter = adapters[normalized_name]
  return adapter if adapter

  raise Error, unknown_adapter_message(name)
end

.infer_package_name?(name) ⇒ Boolean

Whether package names should be inferred for the configured adapter.

Parameters:

  • name (Symbol, String, nil)

Returns:

  • (Boolean)


76
77
78
79
80
# File 'lib/semverve/adapters.rb', line 76

def infer_package_name?(name)
  return true unless name

  fetch(name).infer_package_name?
end

.namesArray<Symbol>

Registered adapter names.

Returns:

  • (Array<Symbol>)


86
87
88
# File 'lib/semverve/adapters.rb', line 86

def names
  adapters.keys
end

.register(adapter) ⇒ #name, ...

Registers a framework adapter.

Parameters:

  • adapter (#name, #defaults, #checks)

Returns:



17
18
19
# File 'lib/semverve/adapters.rb', line 17

def register(adapter)
  adapters[adapter.name] = adapter
end