Sha256: bf5c4414bc9a9ecc6bc915e51ea579fed2792ce42d7aa5754aa0ae881256000a

Contents?: true

Size: 1 KB

Versions: 8

Compression:

Stored size: 1 KB

Contents

# encoding: utf-8

module Synvert::Core
  # Rewriter::Helper provides some helper methods to make it easier to write a snippet.
  module Rewriter::Helper
    # Add receiver to code if necessary.
    #
    # @param code [String] old code
    # @return [String] new code
    #
    # @example
    #
    #   add_receiver_if_necessary("{{message}} {{arguments}}")
    #
    #   if current_node doesn't have a receiver, it returns "{{message}} {{arguments}}"
    #   if current_node has a receiver, it returns "{{receiver}}.{{message}} {{arguments}}"
    def add_receiver_if_necessary(code)
      if node.receiver
        "{{receiver}}.#{code}"
      else
        code
      end
    end

    # Remove leading and trailing brackets.
    #
    # @param code [String] old code
    # @return [String] new code
    #
    # @example
    #
    #   strip_brackets("(1..100)") #=> "1..100"
    def strip_brackets(code)
      code.sub(/^\((.*)\)$/) { $1 }
          .sub(/^\[(.*)\]$/) { $1 }
          .sub(/^{(.*)}$/) { $1 }
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
synvert-core-0.7.3 lib/synvert/core/rewriter/helper.rb
synvert-core-0.7.2 lib/synvert/core/rewriter/helper.rb
synvert-core-0.7.1 lib/synvert/core/rewriter/helper.rb
synvert-core-0.6.5 lib/synvert/core/rewriter/helper.rb
synvert-core-0.6.4 lib/synvert/core/rewriter/helper.rb
synvert-core-0.6.3 lib/synvert/core/rewriter/helper.rb
synvert-core-0.4.3 lib/synvert/core/rewriter/helper.rb
synvert-core-0.4.2 lib/synvert/core/rewriter/helper.rb