Sha256: 89dc19a710955c30c730b6b3870cd03f9791a8846c55884bbe7c0ab4f2c4ed44

Contents?: true

Size: 1.08 KB

Versions: 7017

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

7,017 entries across 6,994 versions & 51 rubygems

Version Path
parser-2.7.1.4 lib/parser/source/rewriter/action.rb
parser-2.7.1.3 lib/parser/source/rewriter/action.rb
parser-2.7.1.2 lib/parser/source/rewriter/action.rb
parser-2.7.1.1 lib/parser/source/rewriter/action.rb
talon_one-2.0.0 vendor/bundle/ruby/2.7.0/gems/parser-2.7.1.0/lib/parser/source/rewriter/action.rb
talon_one-2.0.0 vendor/bundle/ruby/2.3.0/gems/parser-2.7.1.0/lib/parser/source/rewriter/action.rb
parser-2.7.1.0 lib/parser/source/rewriter/action.rb
parser-2.7.0.5 lib/parser/source/rewriter/action.rb
parser-2.7.0.4 lib/parser/source/rewriter/action.rb
parser-2.7.0.3 lib/parser/source/rewriter/action.rb
grape-extra_validators-1.0.0 vendor/bundle/ruby/2.4.0/gems/parser-2.7.0.2/lib/parser/source/rewriter/action.rb
grape-extra_validators-1.0.0 vendor/bundle/ruby/2.6.0/gems/parser-2.7.0.2/lib/parser/source/rewriter/action.rb
parser-2.7.0.2 lib/parser/source/rewriter/action.rb
parser-2.7.0.1 lib/parser/source/rewriter/action.rb
parser-2.7.0.0 lib/parser/source/rewriter/action.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/parser-2.6.3.0/lib/parser/source/rewriter/action.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/parser-2.6.5.0/lib/parser/source/rewriter/action.rb
zuora_connect_ui-0.10.0 vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/rewriter/action.rb
zuora_connect_ui-0.9.2 vendor/ruby/2.6.0/gems/parser-2.6.5.0/lib/parser/source/rewriter/action.rb
zuora_connect_ui-0.9.2 vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/rewriter/action.rb