Sha256: 6894f25d13d23acd16760b66c9f594d6994e0f224f2efa65f991d0b938f24d73

Contents?: true

Size: 696 Bytes

Versions: 8

Compression:

Stored size: 696 Bytes

Contents

require 'blue/template'
require 'active_support/core_ext'

module Blue
  class Box < Blue::AbstractManifest

    include Blue::Template
    include Blue::Ntpd
    include Blue::Apt

    def self.inherited(klass)
      Blue.register_box(klass)
      klass.add_role(:ruby)
    end

    def self.add_role(role)
      roles << role
      true
    end

    def self.roles
      @roles ||= Set.new
    end

    def roles
      self.class.roles
    end

    def self.import(plugin)
      require "blue/#{plugin}"

      module_name = "Blue::#{plugin.to_s.split('/').map(&:titlecase).join('::')}".constantize
      puts "including #{module_name}"
      self.send :include, module_name
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
blue-0.2.7 lib/blue/box.rb
blue-0.2.6 lib/blue/box.rb
blue-0.2.5 lib/blue/box.rb
blue-0.2.3 lib/blue/box.rb
blue-0.2.2 lib/blue/box.rb
blue-0.2.1 lib/blue/box.rb
blue-0.2.0 lib/blue/box.rb
blue-0.1.9 lib/blue/box.rb