Module: Rexer::Definition
- Defined in:
- lib/rexer/definition.rb,
lib/rexer/definition/dsl.rb,
lib/rexer/definition/data.rb,
lib/rexer/definition/diff.rb,
lib/rexer/definition/lock.rb
Defined Under Namespace
Modules: ExtensionComparable, Lock
Classes: DefinitionFileNotFound, Diff, Dsl
Constant Summary
collapse
- Source =
::Data.define(:type, :options)
- Plugin =
::Data.define(:name, :source, :hooks, :env) do
include ExtensionComparable
end
- Theme =
::Data.define(:name, :source, :hooks, :env) do
include ExtensionComparable
end
- Data =
::Data.define(:plugins, :themes, :env, :version) do
def initialize(plugins:, themes:, env: nil, version: nil)
super
end
def envs
(plugins.map(&:env) + themes.map(&:env)).uniq.sort
end
def diff(other)
Definition::Diff.new(self, other)
end
end
Class Method Summary
collapse
Class Method Details
.dir ⇒ Object
29
30
31
|
# File 'lib/rexer/definition.rb', line 29
def self.dir
@dir ||= find_difinition_dir
end
|
.file ⇒ Object
33
34
35
|
# File 'lib/rexer/definition.rb', line 33
def self.file
@file ||= dir.join(Rexer.definition_file)
end
|
.load_data ⇒ Object
37
38
39
40
41
42
|
# File 'lib/rexer/definition.rb', line 37
def self.load_data
dsl = Dsl.new.tap { _1.instance_eval(file.read) }
dsl.to_data
rescue DefinitionFileNotFound
nil
end
|