Sha256: 6198766816f42f81011054d0a501290ed3abe412e539b923fa4a0209864c1bdf
Contents?: true
Size: 1.89 KB
Versions: 3
Compression:
Stored size: 1.89 KB
Contents
# frozen_string_literal: true 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 # Add arguments with parenthesis if necessary. # # @return [String] return `({{arguments}})` if node.arguments present, otherwise return nothing. # # @example # # add_arguments_with_parenthesis_if_necessary # # if current_node doesn't have an argument, it returns "" # if current_node has argument, it returns "({{arguments}})" def add_arguments_with_parenthesis_if_necessary if node.arguments.size > 0 "({{arguments}})" else "" end end # Add curly brackets to code if necessary. # # @param code [String] old code # @return [String] new code # # @example # # add_curly_brackets_if_necessary("{{arguments}}") def add_curly_brackets_if_necessary(code) if code.start_with?('{') && code.end_with?('}') 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
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
synvert-core-0.17.0 | lib/synvert/core/rewriter/helper.rb |
synvert-core-0.16.1 | lib/synvert/core/rewriter/helper.rb |
synvert-core-0.16.0 | lib/synvert/core/rewriter/helper.rb |