Module: Halite

Defined in:
lib/halite.rb,
lib/halite/gem.rb,
lib/halite/error.rb,
lib/halite/version.rb,
lib/halite/converter.rb,
lib/halite/helper_base.rb,
lib/halite/rake_helper.rb,
lib/halite/spec_helper.rb,
lib/halite/dependencies.rb,
lib/halite/converter/chef.rb,
lib/halite/converter/misc.rb,
lib/halite/berkshelf/helper.rb,
lib/halite/berkshelf/source.rb,
lib/halite/converter/metadata.rb,
lib/halite/spec_helper/runner.rb,
lib/halite/converter/libraries.rb,
lib/halite/spec_helper/patcher.rb

Overview

Library to convert a Ruby gem to a Chef cookbook.

See Also:

Since:

  • 1.0.0

Defined Under Namespace

Modules: Berkshelf, Converter, Dependencies, SpecHelper Classes: Error, Gem, HelperBase, InvalidDependencyError, RakeHelper

Constant Summary collapse

VERSION =

Halite version.

Since:

  • 1.0.0

'1.8.2'

Class Method Summary collapse

Class Method Details

.convert(gem_name, base_path)

This method returns an undefined value.

Convert a Ruby gem to a Chef cookbook.

Examples:

Converting a gem by name

Halite.convert('mygem', 'dest')

Converting a gem from a loaded gemspec

Halite.convert(Bundler.load_gemspec('mygem.gemspec'), 'dest')

Parameters:

  • gem_name (String, Gem::Specification)

    Gem to convert.

  • base_path (String)

    Output path.

Since:

  • 1.0.0



39
40
41
42
43
44
45
46
# File 'lib/halite.rb', line 39

def self.convert(gem_name, base_path)
  gem_data = if gem_name.is_a?(Gem)
    gem_name
  else
    Gem.new(gem_name)
  end
  Converter.write(gem_data, base_path)
end

.SpecHelper(gemspec) ⇒ Object

Method version of SpecHelper module. Used to inject a gem data to load a synthetic cookbook during testing.

Parameters:

  • gemspec (Gem::Specification)

    Gem spec to load as cookbook.

See Also:

Since:

  • 1.0.0



485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
# File 'lib/halite/spec_helper.rb', line 485

def self.SpecHelper(gemspec)
  # Create a new anonymous module
  mod = Module.new

  # Fake the name
  def mod.name
    super || 'Halite::SpecHelper'
  end

  mod.define_singleton_method(:included) do |klass|
    super(klass)
    # Pull in the main helper to cover most of the needed logic
    klass.class_exec do
      include Halite::SpecHelper
      let(:halite_gemspec) { gemspec }
    end
  end

  mod
end