Sha256: 89dc19a710955c30c730b6b3870cd03f9791a8846c55884bbe7c0ab4f2c4ed44

Contents?: true

Size: 1.08 KB

Versions: 7135

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,135 entries across 7,112 versions & 52 rubygems

Version Path
cybrid_api_organization_ruby-0.123.227 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.123.227 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.123.226 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.123.226 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.123.226 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.123.225 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.123.225 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.123.225 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.123.224 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.123.224 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.123.224 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.123.222 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.123.222 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.123.222 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.123.221 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.123.221 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_organization_ruby-0.123.221 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
ory-hydra-client-2.4.0.alpha1 vendor/bundle/ruby/3.1.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_id_ruby-0.123.220 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb
cybrid_api_bank_ruby-0.123.220 vendor/bundle/ruby/3.3.0/gems/parser-3.3.7.1/lib/parser/source/rewriter/action.rb