Sha256: 1bb57be79cf3d714c3f77838d35105a280ae15f7274a46b50155c359b5ca1dd7

Contents?: true

Size: 1.65 KB

Versions: 39

Compression:

Stored size: 1.65 KB

Contents

# frozen_string_literal: true
module Bundler::Molinillo
  # Conveys information about the resolution process to a user.
  module UI
    # The {IO} object that should be used to print output. `STDOUT`, by default.
    #
    # @return [IO]
    def output
      STDOUT
    end

    # Called roughly every {#progress_rate}, this method should convey progress
    # to the user.
    #
    # @return [void]
    def indicate_progress
      output.print '.' unless debug?
    end

    # How often progress should be conveyed to the user via
    # {#indicate_progress}, in seconds. A third of a second, by default.
    #
    # @return [Float]
    def progress_rate
      0.33
    end

    # Called before resolution begins.
    #
    # @return [void]
    def before_resolution
      output.print 'Resolving dependencies...'
    end

    # Called after resolution ends (either successfully or with an error).
    # By default, prints a newline.
    #
    # @return [void]
    def after_resolution
      output.puts
    end

    # Conveys debug information to the user.
    #
    # @param [Integer] depth the current depth of the resolution process.
    # @return [void]
    def debug(depth = 0)
      if debug?
        debug_info = yield
        debug_info = debug_info.inspect unless debug_info.is_a?(String)
        output.puts debug_info.split("\n").map { |s| '  ' * depth + s }
      end
    end

    # Whether or not debug messages should be printed.
    # By default, whether or not the `MOLINILLO_DEBUG` environment variable is
    # set.
    #
    # @return [Boolean]
    def debug?
      return @debug_mode if defined?(@debug_mode)
      @debug_mode = ENV['MOLINILLO_DEBUG']
    end
  end
end

Version data entries

39 entries across 39 versions & 2 rubygems

Version Path
rubygems-update-2.6.14 bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
rubygems-update-2.6.13 bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
rubygems-update-2.6.12 bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
rubygems-update-2.6.11 bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.14.3 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
rubygems-update-2.6.10 bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.14.2 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.14.1 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.14.0 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
rubygems-update-2.6.9 bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.14.0.pre.2 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.14.0.pre.1 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.13.7 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
rubygems-update-2.6.8 bundler/lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.13.6 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.13.5 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.13.4 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.13.3 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.12.6 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb
bundler-1.13.2 lib/bundler/vendor/molinillo/lib/molinillo/modules/ui.rb