Sha256: 827fb4a7b7e3291da1aadfd8e8fbdf07479943f122efb7e4bfce7f12b2b005e1

Contents?: true

Size: 1.45 KB

Versions: 27

Compression:

Stored size: 1.45 KB

Contents

module Multiverse
  # Reads an envfile.rb and converts it into gemfiles that can be used by
  # bundler
  class Envfile
    attr_accessor :file_path, :condition, :newrelic_gemfile_options
    attr_reader :before, :after, :mode, :skip_message

    def initialize(file_path)
      self.file_path = file_path
      @gemfiles = []
      @mode = 'fork'
      if File.exist? file_path
        @text = File.read self.file_path
        instance_eval @text
      end
      @gemfiles = [''] if @gemfiles.empty?
    end

    def suite_condition(skip_message, &block)
      @skip_message = skip_message
      @condition = block
    end

    # string representation options hash to append to the newrelic_rpm line
    # when setting up Gemfile
    # e.g. ":require => false"
    def newrelic_gemfile_options=(options_string)
      @newrelic_gemfile_options = options_string
    end


    def gemfile(content)
      @gemfiles.push content
    end

    def before_suite(&block)
      @before = block
    end

    def after_suite(&block)
      @after = block
    end

    def execute_mode(mode)
      valid_modes = %w| fork spawn |
      unless valid_modes.member? mode
        raise ArgumentError, "#{mode.inspect} is not a valid execute mode.  Valid modes: #{valid_modes.inspect}"
      end
      @mode = mode
    end

    include Enumerable
    def each(&block)
      @gemfiles.each(&block)
    end

    def [](key)
      @gemfiles[key]
    end

    def size
      @gemfiles.size
    end

  end
end

Version data entries

27 entries across 27 versions & 4 rubygems

Version Path
wd_newrelic_rpm-3.5.8 test/multiverse/lib/multiverse/envfile.rb
sundawg_newrelic_rpm-3.5.8.2 test/multiverse/lib/multiverse/envfile.rb
sundawg_newrelic_rpm-3.5.8.1 test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.8.72 test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.8.70 test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.8.64.beta test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.7.59 test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.7.59.beta test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.7.58.beta test/multiverse/lib/multiverse/envfile.rb
wd_newrelic_rpm-3.5.6 test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.7.57.beta test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.6.55 test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.6.48.beta test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.6.46.beta test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.6.42.beta test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.5.39.beta test/multiverse/lib/multiverse/envfile.rb
wd_newrelic_rpm-3.5.5 test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.5.38 test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.5.540.dev test/multiverse/lib/multiverse/envfile.rb
newrelic_rpm-3.5.4.35.beta test/multiverse/lib/multiverse/envfile.rb