Sha256: a9daa1bc3209150bdb68872107abd64ca16e6538df4cdb752d035d8da1c63f4f

Contents?: true

Size: 763 Bytes

Versions: 34

Compression:

Stored size: 763 Bytes

Contents

require "yaml"
require "active_support/inflector"

module Kamal::Configuration::Validation
  extend ActiveSupport::Concern

  class_methods do
    def validation_doc
      @validation_doc ||= File.read(File.join(File.dirname(__FILE__), "docs", "#{validation_config_key}.yml"))
    end

    def validation_config_key
      @validation_config_key ||= name.demodulize.underscore
    end
  end

  def validate!(config, example: nil, context: nil, with: Kamal::Configuration::Validator)
    context ||= self.class.validation_config_key
    example ||= validation_yml[self.class.validation_config_key]

    with.new(config, example: example, context: context).validate!
  end

  def validation_yml
    @validation_yml ||= YAML.load(self.class.validation_doc)
  end
end

Version data entries

34 entries across 34 versions & 2 rubygems

Version Path
kamal-2.5.3 lib/kamal/configuration/validation.rb
kamal-2.5.2 lib/kamal/configuration/validation.rb
kamal-2.5.1 lib/kamal/configuration/validation.rb
kamal-2.5.0 lib/kamal/configuration/validation.rb
kamal-2.4.0 lib/kamal/configuration/validation.rb
nocoffee-kamal-2.3.0.3 lib/kamal/configuration/validation.rb
nocoffee-kamal-2.3.0.2 lib/kamal/configuration/validation.rb
nocoffee-kamal-2.3.0.1 lib/kamal/configuration/validation.rb
kamal-2.3.0 lib/kamal/configuration/validation.rb
kamal-2.2.2 lib/kamal/configuration/validation.rb
kamal-2.2.1 lib/kamal/configuration/validation.rb
kamal-2.2.0 lib/kamal/configuration/validation.rb
kamal-1.9.2 lib/kamal/configuration/validation.rb
kamal-2.1.2 lib/kamal/configuration/validation.rb
kamal-2.1.1 lib/kamal/configuration/validation.rb
kamal-2.1.0 lib/kamal/configuration/validation.rb
kamal-1.9.1 lib/kamal/configuration/validation.rb
kamal-2.0.0 lib/kamal/configuration/validation.rb
kamal-1.9.0 lib/kamal/configuration/validation.rb
kamal-2.0.0.rc4 lib/kamal/configuration/validation.rb