Sha256: e1b42df55ed9d8af29df6ff3c6c4ba5cf27183c20f4a9b0ce61c874135c97d5b

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

module VagrantPlugins
  module Rubber
    class Config < Vagrant.plugin("2", :config)
      attr_accessor :roles, :rubber_env, :use_vagrant_ruby

      def initialize
        @roles = UNSET_VALUE
        @rubber_env = UNSET_VALUE
        @use_vagrant_ruby = UNSET_VALUE
      end

      def finalize!
        @rubber_env = 'vagrant' if @rubber_env == UNSET_VALUE
        @use_vagrant_ruby = false if @use_vagrant_ruby == UNSET_VALUE

        ::Rubber::initialize(Dir.pwd, @rubber_env)

        @roles = ::Rubber.config['staging_roles'] if @roles == UNSET_VALUE
      end

      def validate(machine)
        if @rubber_env.nil?
          return { 'rubber' => ['rubber_env must be set to the Rubber environment to use for this cluster'] }
        end

        unless [true, false].include?(@use_vagrant_ruby)
          return { 'rubber' => ['use_vagrant_ruby must be set to a Boolean value'] }
        end

        if @roles.nil?
          return { 'rubber' => ['roles must be set to a list of roles to use for this machine'] }
        end

        {}
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubber-2.5.2 lib/rubber/vagrant/config.rb