Sha256: c9124546cf12933d2b4d99afe6b5a250866f9fd31084c4b881dbd1930ddab23e

Contents?: true

Size: 992 Bytes

Versions: 4

Compression:

Stored size: 992 Bytes

Contents

module Lono::Builder::Configset
  class Registration
    include DslEvaluator

    def initialize(blueprint)
      @blueprint = blueprint
    end

    cattr_accessor :metas, default: []
    def metas
      self.class.metas
    end

    def evaluate
      path = "#{@blueprint.root}/configsets.rb" # plural
      evaluate_file(path)
    end

    # Only one syntax method so not in separate module.
    #
    # Register configset for later processing.
    # By registering them all up front, can aggregate errors and show them together
    # for a user-friendly experience.
    #
    # The configset method is different with configset registration vs configset definition
    #
    #   definition:   app/configsets/httpd/configset.rb
    #   registration: app/blueprints/demo/configsets.rb
    #
    def configset(name, options={})
      found = metas.detect { |i| i[:name] == name && i[:resource] == options[:resource] }
      metas << options.merge(name: name) unless found
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
lono-8.0.0.pre.rc6 lib/lono/builder/configset/registration.rb
lono-8.0.0.pre.rc5 lib/lono/builder/configset/registration.rb
lono-8.0.0.pre.rc4 lib/lono/builder/configset/registration.rb
lono-8.0.0.pre.rc3 lib/lono/builder/configset/registration.rb