Class: Igniter::Contracts::Assembly::PackManifest
- Inherits:
-
Object
- Object
- Igniter::Contracts::Assembly::PackManifest
show all
- Defined in:
- lib/igniter/contracts/assembly/pack_manifest.rb
Defined Under Namespace
Classes: NodeContract, PackDependency, RegistryContract
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name:, node_contracts: [], registry_contracts: [], diagnostics: [], metadata: {}, requires_packs: [], provides_capabilities: [], requires_capabilities: []) ⇒ PackManifest
Returns a new instance of PackManifest.
91
92
93
94
95
96
97
98
99
100
101
102
103
104
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 91
def initialize(name:, node_contracts: [], registry_contracts: [], diagnostics: [], metadata: {},
requires_packs: [], provides_capabilities: [], requires_capabilities: [])
@name = name.to_sym
@node_contracts = node_contracts.freeze
@registry_contracts = (
registry_contracts +
diagnostics.map { |key| self.class.diagnostic(key) }
).uniq.freeze
@metadata = metadata.freeze
@requires_packs = normalize_pack_dependencies(requires_packs)
@provides_capabilities = normalize_capabilities(provides_capabilities)
@requires_capabilities = normalize_capabilities(requires_capabilities)
freeze
end
|
Instance Attribute Details
Returns the value of attribute metadata.
88
89
90
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 88
def metadata
@metadata
end
|
#name ⇒ Object
Returns the value of attribute name.
88
89
90
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 88
def name
@name
end
|
#node_contracts ⇒ Object
Returns the value of attribute node_contracts.
88
89
90
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 88
def node_contracts
@node_contracts
end
|
#provides_capabilities ⇒ Object
Returns the value of attribute provides_capabilities.
88
89
90
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 88
def provides_capabilities
@provides_capabilities
end
|
#registry_contracts ⇒ Object
Returns the value of attribute registry_contracts.
88
89
90
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 88
def registry_contracts
@registry_contracts
end
|
#requires_capabilities ⇒ Object
Returns the value of attribute requires_capabilities.
88
89
90
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 88
def requires_capabilities
@requires_capabilities
end
|
#requires_packs ⇒ Object
Returns the value of attribute requires_packs.
88
89
90
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 88
def requires_packs
@requires_packs
end
|
Class Method Details
.diagnostic(key) ⇒ Object
64
65
66
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 64
def diagnostic(key)
registry(:diagnostics_contributors, key)
end
|
.dsl_keyword(key) ⇒ Object
48
49
50
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 48
def dsl_keyword(key)
registry(:dsl_keywords, key)
end
|
.effect(key) ⇒ Object
68
69
70
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 68
def effect(key)
registry(:effects, key)
end
|
.executor(key) ⇒ Object
72
73
74
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 72
def executor(key)
registry(:executors, key)
end
|
.node(kind, requires_dsl: true, requires_runtime: true) ⇒ Object
36
37
38
39
40
41
42
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 36
def node(kind, requires_dsl: true, requires_runtime: true)
NodeContract.new(
kind: kind,
requires_dsl: requires_dsl,
requires_runtime: requires_runtime
)
end
|
.normalizer(key) ⇒ Object
60
61
62
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 60
def normalizer(key)
registry(:normalizers, key)
end
|
.pack_dependency(pack_or_name, pack: nil) ⇒ Object
76
77
78
79
80
81
82
83
84
85
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 76
def pack_dependency(pack_or_name, pack: nil)
return PackDependency.new(name: pack_or_name, pack: pack) if pack
if pack_or_name.respond_to?(:manifest)
manifest = pack_or_name.manifest
return PackDependency.new(name: manifest.name, pack: pack_or_name)
end
PackDependency.new(name: pack_or_name)
end
|
.registry(registry, key) ⇒ Object
44
45
46
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 44
def registry(registry, key)
RegistryContract.new(registry: registry, key: key)
end
|
.runtime_handler(key) ⇒ Object
52
53
54
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 52
def runtime_handler(key)
registry(:runtime_handlers, key)
end
|
.validator(key) ⇒ Object
56
57
58
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 56
def validator(key)
registry(:validators, key)
end
|
Instance Method Details
#declared_keys_for(registry) ⇒ Object
106
107
108
109
110
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 106
def declared_keys_for(registry)
registry_contracts
.select { |contract| contract.registry == registry.to_sym }
.map(&:key)
end
|
#diagnostics ⇒ Object
112
113
114
|
# File 'lib/igniter/contracts/assembly/pack_manifest.rb', line 112
def diagnostics
declared_keys_for(:diagnostics_contributors)
end
|