class RgGen::Core::Builder::PluginSpec

Constants

DEFAULT_VERSION

Public Class Methods

new(name, plugin_module) click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 7
def initialize(name, plugin_module)
  @name = name
  @plugin_module = plugin_module
  @component_registrations = []
  @loader_registrations = []
  @files = []
end

Public Instance Methods

activate(builder) click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 44
def activate(builder)
  activate_components(builder)
  activate_loaders(builder)
  load_files
end
files(files)
Alias for: register_files
register_component(component, layers = nil, &body) click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 24
def register_component(component, layers = nil, &body)
  @component_registrations << [component, layers, body]
end
register_files(files) click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 37
def register_files(files)
  root = File.dirname(caller_locations(1, 1).first.path)
  files.each { |file| @files << File.join(root, file) }
end
Also aliased as: files
register_loader(component, loader_type, loader) click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 28
def register_loader(component, loader_type, loader)
  @loader_registrations << [component, loader_type, loader]
end
register_loaders(component, loader_type, loaders) click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 32
def register_loaders(component, loader_type, loaders)
  Array(loaders)
    .each { |loader| register_loader(component, loader_type, loader) }
end
version(value = nil) click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 15
def version(value = nil)
  @version = value if value
  version_value
end
version_info() click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 20
def version_info
  "#{@name} #{version}"
end

Private Instance Methods

activate_components(builder) click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 63
def activate_components(builder)
  @component_registrations.each do |component, layers, body|
    builder
      .output_component_registry(component)
      .register_component(layers, &body)
  end
end
activate_loaders(builder) click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 71
def activate_loaders(builder)
  @loader_registrations.each do |component, loader_type, loader|
    builder.register_loader(component, loader_type, loader)
  end
end
const_version() click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 58
def const_version
  @plugin_module.const_defined?(:VERSION) &&
    @plugin_module.const_get(:VERSION)
end
load_files() click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 77
def load_files
  @files.each(&method(:require))
end
version_value() click to toggle source
# File lib/rggen/core/builder/plugin_spec.rb, line 54
def version_value
  @version || const_version || DEFAULT_VERSION
end