aboutsummaryrefslogtreecommitdiffstats
path: root/spec/bundler/support/the_bundle.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/bundler/support/the_bundle.rb')
-rw-r--r--spec/bundler/support/the_bundle.rb36
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