diff options
Diffstat (limited to 'spec/bundler/support/the_bundle.rb')
-rw-r--r-- | spec/bundler/support/the_bundle.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/spec/bundler/support/the_bundle.rb b/spec/bundler/support/the_bundle.rb new file mode 100644 index 0000000000..742d393425 --- /dev/null +++ b/spec/bundler/support/the_bundle.rb @@ -0,0 +1,36 @@ +# frozen_string_literal: true +require "support/helpers" +require "support/path" + +module Spec + class TheBundle + include Spec::Helpers + include Spec::Path + + attr_accessor :bundle_dir + + def initialize(opts = {}) + opts = opts.dup + @bundle_dir = Pathname.new(opts.delete(:bundle_dir) { bundled_app }) + raise "Too many options! #{opts}" unless opts.empty? + end + + def to_s + "the bundle" + end + alias_method :inspect, :to_s + + def locked? + lockfile.file? + end + + def lockfile + bundle_dir.join("Gemfile.lock") + end + + def locked_gems + raise "Cannot read lockfile if it doesn't exist" unless locked? + Bundler::LockfileParser.new(lockfile.read) + end + end +end |