Sha256: 861f2108daf0cb22ae0f882470bc9cbf6e4dcd46924545314f98ad90f975d665

Contents?: true

Size: 920 Bytes

Versions: 11

Compression:

Stored size: 920 Bytes

Contents

module Berkshelf
  module DSL
    @@active_group = nil

    def cookbook(*args)
      source = CookbookSource.new(*args)
      source.add_group(@@active_group) if @@active_group
      add_source(source)
    end

    def group(*args)
      @@active_group = args
      yield
      @@active_group = nil
    end

    def metadata(options = {})
      path = options[:path] || File.expand_path('.')

      metadata_file = Berkshelf.find_metadata(path)

      unless metadata_file
        raise CookbookNotFound, "No 'metadata.rb' found at #{path}"
      end

      metadata = Chef::Cookbook::Metadata.new
      metadata.from_file(metadata_file.to_s)

      name = if metadata.name.empty? || metadata.name.nil?
        File.basename(File.dirname(metadata_file))
      else
        metadata.name
      end

      source = CookbookSource.new(name, :path => File.dirname(metadata_file))
      add_source(source)
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
berkshelf-0.3.7 lib/berkshelf/dsl.rb
berkshelf-0.3.3 lib/berkshelf/dsl.rb
berkshelf-0.3.2 lib/berkshelf/dsl.rb
berkshelf-0.3.1 lib/berkshelf/dsl.rb
berkshelf-0.3.0 lib/berkshelf/dsl.rb
berkshelf-0.2.0 lib/berkshelf/dsl.rb
berkshelf-0.1.5 lib/berkshelf/dsl.rb
berkshelf-0.1.4 lib/berkshelf/dsl.rb
berkshelf-0.1.3 lib/berkshelf/dsl.rb
berkshelf-0.1.2 lib/berkshelf/dsl.rb
berkshelf-0.1.1 lib/berkshelf/dsl.rb