Sha256: 0004aa40feeeeaeeb361304546ea0df87503a0fcd512f9d404bfe57bdfe84ad8

Contents?: true

Size: 728 Bytes

Versions: 3

Compression:

Stored size: 728 Bytes

Contents

require 'appraisal/appraisal'
require 'appraisal/gemfile'

module Appraisal
  # Loads and parses Appraisal files
  class File
    attr_reader :appraisals, :gemfile

    def self.each(&block)
      new.each(&block)
    end

    def initialize
      @appraisals = []
      @gemfile = Gemfile.new
      @gemfile.load('Gemfile')
      run(IO.read(path))
    end

    def each(&block)
      appraisals.each(&block)
    end

    def appraise(name, &block)
      @appraisals << Appraisal.new(name, gemfile).tap do |appraisal|
        appraisal.instance_eval(&block)
      end
    end

    private

    def run(definitions)
      instance_eval definitions, __FILE__, __LINE__
    end

    def path
      'Appraisals'
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
appraisal-0.3.1 lib/appraisal/file.rb
appraisal-0.2.0 lib/appraisal/file.rb
appraisal-0.1 lib/appraisal/file.rb