Sha256: 0025f8c86bc2aae7c5a1cb38d6990aaab3fa00276f977b62f63414352e8c140e

Contents?: true

Size: 714 Bytes

Versions: 4

Compression:

Stored size: 714 Bytes

Contents

# frozen_string_literal: true

require "bundler"
require "bundler/cli"
require "refinements/io"
require "refinements/pathname"

module Rubysmith
  module Extensions
    # Ensures gem dependencies are installed.
    class Bundler
      include Import[:settings]

      using Refinements::IO
      using Refinements::Pathname

      def initialize(client: ::Bundler::CLI, **)
        @client = client
        super(**)
      end

      def call
        settings.project_root.change_dir do
          client.start %w[install --quiet]
          STDOUT.squelch { client.start %w[lock --add-platform x86_64-linux --update] }
        end

        true
      end

      private

      attr_reader :client
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rubysmith-7.3.0 lib/rubysmith/extensions/bundler.rb
rubysmith-7.2.0 lib/rubysmith/extensions/bundler.rb
rubysmith-7.1.0 lib/rubysmith/extensions/bundler.rb
rubysmith-7.0.0 lib/rubysmith/extensions/bundler.rb