Sha256: 89dc19a710955c30c730b6b3870cd03f9791a8846c55884bbe7c0ab4f2c4ed44

Contents?: true

Size: 1.08 KB

Versions: 6689

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

module Parser
  module Source

    ##
    # @api private
    #
    class Rewriter::Action
      include Comparable

      attr_reader :range, :replacement, :allow_multiple_insertions, :order
      alias_method :allow_multiple_insertions?, :allow_multiple_insertions

      def initialize(range, replacement='', allow_multiple_insertions = false, order = 0)
        @range = range
        @replacement = replacement
        @allow_multiple_insertions = allow_multiple_insertions
        @order = order

        freeze
      end

      def <=>(other)
        result = range.begin_pos <=> other.range.begin_pos
        return result unless result.zero?
        order <=> other.order
      end

      def to_s
        if @range.length == 0 && @replacement.empty?
          'do nothing'
        elsif @range.length == 0
          "insert #{@replacement.inspect}"
        elsif @replacement.empty?
          "remove #{@range.length} character(s)"
        else
          "replace #{@range.length} character(s) with #{@replacement.inspect}"
        end
      end
    end

  end
end

Version data entries

6,689 entries across 6,666 versions & 49 rubygems

Version Path
cybrid_api_bank_ruby-0.122.57 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.122.57 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.122.54 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.122.54 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.122.54 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.122.53 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.122.53 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.122.53 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.122.52 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.122.52 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.122.52 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.122.51 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.122.51 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.122.51 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.122.49 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.122.49 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.122.49 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.122.48 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.122.48 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.122.48 vendor/bundle/ruby/3.3.0/gems/parser-3.3.6.0/lib/parser/source/rewriter/action.rb