From 5d6fbe86d907a4acde0dccd8d9953f7811a50dab Mon Sep 17 00:00:00 2001 From: Awesome Code Date: Sun, 17 Jan 2021 05:48:03 +0000 Subject: [PATCH] Auto corrected by following Format Ruby Code --- lib/synvert/core.rb | 4 +- lib/synvert/core/engine/erb.rb | 51 ++--- lib/synvert/core/exceptions.rb | 9 +- lib/synvert/core/node_ext.rb | 32 +-- lib/synvert/core/rewriter.rb | 15 +- lib/synvert/core/rewriter/action.rb | 6 +- .../core/rewriter/action/append_action.rb | 2 +- .../core/rewriter/action/insert_action.rb | 9 +- .../rewriter/action/insert_after_action.rb | 2 +- .../core/rewriter/action/remove_action.rb | 2 +- .../replace_erb_stmt_with_expr_action.rb | 16 +- .../rewriter/action/replace_with_action.rb | 6 +- .../condition/if_only_exist_condition.rb | 3 +- lib/synvert/core/rewriter/gem_spec.rb | 2 +- lib/synvert/core/rewriter/helper.rb | 8 +- lib/synvert/core/rewriter/instance.rb | 17 +- lib/synvert/core/rewriter/scope.rb | 3 +- .../core/rewriter/scope/within_scope.rb | 1 + lib/synvert/core/version.rb | 2 +- spec/spec_helper.rb | 2 +- spec/synvert/core/engine/erb_spec.rb | 6 +- spec/synvert/core/node_ext_spec.rb | 92 ++++----- .../rewriter/action/insert_action_spec.rb | 32 +-- .../action/insert_after_action_spec.rb | 10 +- .../rewriter/action/remove_action_spec.rb | 6 +- .../action/replace_with_action_spec.rb | 38 ++-- spec/synvert/core/rewriter/action_spec.rb | 4 +- .../condition/if_exist_condition_spec.rb | 28 +-- .../condition/if_only_exist_condition_spec.rb | 37 ++-- .../condition/unless_exist_condition_spec.rb | 30 +-- spec/synvert/core/rewriter/gem_spec_spec.rb | 13 +- spec/synvert/core/rewriter/helper_spec.rb | 65 +++--- spec/synvert/core/rewriter/instance_spec.rb | 187 ++++++++++++------ .../core/rewriter/scope/goto_scope_spec.rb | 22 ++- .../core/rewriter/scope/within_scope.rb | 30 +-- spec/synvert/core/rewriter/warning_spec.rb | 4 +- spec/synvert/core/rewriter_spec.rb | 159 ++++++++------- 37 files changed, 546 insertions(+), 409 deletions(-) diff --git a/lib/synvert/core.rb b/lib/synvert/core.rb index c9a9eb02..96c67d15 100644 --- a/lib/synvert/core.rb +++ b/lib/synvert/core.rb @@ -1,9 +1,9 @@ # frozen_string_literal: true -require "synvert/core/version" +require 'synvert/core/version' # coding: utf-8 -require "synvert/core/version" +require 'synvert/core/version' require 'bundler' require 'parser' require 'parser/current' diff --git a/lib/synvert/core/engine/erb.rb b/lib/synvert/core/engine/erb.rb index 34dcadf7..70d47d01 100644 --- a/lib/synvert/core/engine/erb.rb +++ b/lib/synvert/core/engine/erb.rb @@ -4,17 +4,17 @@ module Synvert::Core module Engine - ERUBY_EXPR_SPLITTER = "; ;" - ERUBY_STMT_SPLITTER = "; ;" + ERUBY_EXPR_SPLITTER = '; ;' + ERUBY_STMT_SPLITTER = '; ;' class ERB - class <", "%>"), :escape => false, :trim => false).src + Erubis.new(source.gsub('-%>', '%>'), escape: false, trim: false).src end # convert ruby code to erb. @@ -28,25 +28,31 @@ def decode(source) source = remove_erubis_buf(source) end - private + private def decode_ruby_stmt(source) source.gsub(/#{ERUBY_STMT_SPLITTER}(.+?)#{ERUBY_STMT_SPLITTER}/m) { "<%#{$1}%>" } end def decode_ruby_output(source) - source.gsub(/@output_buffer.append=\((.+?)\);#{ERUBY_EXPR_SPLITTER}/m) { "<%=#{$1}%>" } - .gsub(/@output_buffer.append= (.+?)\s+(do|\{)(\s*\|[^|]*\|)?\s*#{ERUBY_EXPR_SPLITTER}/m) { |m| "<%=#{m.sub("@output_buffer.append= ", "").sub(ERUBY_EXPR_SPLITTER, "")}%>" } + source.gsub(/@output_buffer.append=\((.+?)\);#{ERUBY_EXPR_SPLITTER}/m) { "<%=#{$1}%>" }.gsub( + /@output_buffer.append= (.+?)\s+(do|\{)(\s*\|[^|]*\|)?\s*#{ERUBY_EXPR_SPLITTER}/m + ) { |m| "<%=#{m.sub('@output_buffer.append= ', '').sub(ERUBY_EXPR_SPLITTER, '')}%>" } end def decode_html_output(source) - source.gsub(/@output_buffer.safe_append='(.+?)'.freeze;/m) { reverse_escape_text($1) } - .gsub(/@output_buffer.safe_append=\((.+?)\);#{ERUBY_EXPR_SPLITTER}/m) { reverse_escape_text($1) } - .gsub(/@output_buffer.safe_append=(.+?)\s+(do|\{)(\s*\|[^|]*\|)?\s*#{ERUBY_EXPR_SPLITTER}/m) { reverse_escape_text($1) } + source.gsub(/@output_buffer.safe_append='(.+?)'.freeze;/m) { reverse_escape_text($1) }.gsub( + /@output_buffer.safe_append=\((.+?)\);#{ERUBY_EXPR_SPLITTER}/m + ) { reverse_escape_text($1) }.gsub( + /@output_buffer.safe_append=(.+?)\s+(do|\{)(\s*\|[^|]*\|)?\s*#{ERUBY_EXPR_SPLITTER}/m + ) { reverse_escape_text($1) } end def remove_erubis_buf(source) - source.sub("@output_buffer = output_buffer || ActionView::OutputBuffer.new;", "").sub("@output_buffer.to_s", "") + source.sub('@output_buffer = output_buffer || ActionView::OutputBuffer.new;', '').sub( + '@output_buffer.to_s', + '' + ) end def reverse_escape_text(source) @@ -59,7 +65,7 @@ def reverse_escape_text(source) class Erubis < ::Erubis::Eruby def add_preamble(src) @newline_pending = 0 - src << "@output_buffer = output_buffer || ActionView::OutputBuffer.new;" + src << '@output_buffer = output_buffer || ActionView::OutputBuffer.new;' end def add_text(src, text) @@ -102,22 +108,23 @@ def add_expr_literal(src, code) def add_expr_escaped(src, code) flush_newline_if_pending(src) if code =~ BLOCK_EXPR - src << "@output_buffer.safe_append= " << code << ERUBY_EXPR_SPLITTER + src << '@output_buffer.safe_append= ' << code << ERUBY_EXPR_SPLITTER else - src << "@output_buffer.safe_append=(" << code << ");" << ERUBY_EXPR_SPLITTER + src << '@output_buffer.safe_append=(' << code << ');' << ERUBY_EXPR_SPLITTER end end def add_stmt(src, code) flush_newline_if_pending(src) - if code != "\n" && code != "" - index = if code =~ /\A(\s*)\r?\n/ - $1.length - elsif code =~ /\A(\s+)/ - $1.end_with?(' ') ? $1.length - 1 : $1.length - else - 0 - end + if code != "\n" && code != '' + index = + if code =~ /\A(\s*)\r?\n/ + $1.length + elsif code =~ /\A(\s+)/ + $1.end_with?(' ') ? $1.length - 1 : $1.length + else + 0 + end code.insert(index, ERUBY_STMT_SPLITTER) code.insert(-1, ERUBY_STMT_SPLITTER[0...-1]) end diff --git a/lib/synvert/core/exceptions.rb b/lib/synvert/core/exceptions.rb index e683d8c6..d2705e7f 100644 --- a/lib/synvert/core/exceptions.rb +++ b/lib/synvert/core/exceptions.rb @@ -2,14 +2,11 @@ module Synvert::Core # Rewriter not found exception. - class RewriterNotFound < Exception - end + class RewriterNotFound < Exception; end # Gemfile.lock not found exception. - class GemfileLockNotFound < Exception - end + class GemfileLockNotFound < Exception; end # Method not supported exception. - class MethodNotSupported < Exception - end + class MethodNotSupported < Exception; end end diff --git a/lib/synvert/core/node_ext.rb b/lib/synvert/core/node_ext.rb index 046adbfb..03ddcbf2 100644 --- a/lib/synvert/core/node_ext.rb +++ b/lib/synvert/core/node_ext.rb @@ -25,11 +25,13 @@ def method_missing(meth, *args, &block) end # Parser::AST::Node monkey patch. + class Node # Get name node of :class, :module, :const, :mlhs, :def and :defs node. # # @return [Parser::AST::Node] name node. # @raise [Synvert::Core::MethodNotSupported] if calls on other node. + def name case self.type when :class, :module, :def, :arg, :blockarg, :restarg @@ -98,6 +100,7 @@ def message # # @return [Array] arguments node. # @raise [Synvert::Core::MethodNotSupported] if calls on other node. + def arguments case self.type when :def, :block @@ -129,6 +132,7 @@ def caller # # @return [Array] body node. # @raise [Synvert::Core::MethodNotSupported] if calls on other node. + def body case self.type when :begin @@ -287,12 +291,13 @@ def to_s end def debug_info - "\n" + [ - "file: #{self.loc.expression.source_buffer.name}", - "line: #{self.loc.expression.line}", - "source: #{self.to_source}", - "node: #{self.inspect}" - ].join("\n") + "\n" + + [ + "file: #{self.loc.expression.source_buffer.name}", + "line: #{self.loc.expression.line}", + "source: #{self.to_source}", + "node: #{self.inspect}" + ].join("\n") end # Get the source code of current node. @@ -376,9 +381,9 @@ def rewritten_source(code) lines_count = lines.length if lines_count > 1 && lines_count == evaluated.size new_code = [] - lines.each_with_index { |line, index| - new_code << (index == 0 ? line : line[evaluated.first.indent-2..-1]) - } + lines.each_with_index do |line, index| + new_code << (index == 0 ? line : line[evaluated.first.indent - 2..-1]) + end new_code.join("\n") else source @@ -397,7 +402,7 @@ def rewritten_source(code) end end - private + private # Compare actual value with expected value. # @@ -415,8 +420,7 @@ def match_value?(actual, expected) end when String if Parser::AST::Node === actual - actual.to_source == expected || - (actual.to_source[0] == ':' && actual.to_source[1..-1] == expected) || + actual.to_source == expected || (actual.to_source[0] == ':' && actual.to_source[1..-1] == expected) || actual.to_source[1...-1] == expected else actual.to_s == expected @@ -475,11 +479,11 @@ def flat_hash(h, k = []) # @param multi_keys [Array] # @return [Object] actual value. def actual_value(node, multi_keys) - multi_keys.inject(node) { |n, key| + multi_keys.inject(node) do |n, key| if n key == :source ? n.send(key) : n.send(key) end - } + end end # Get expected value from rules. diff --git a/lib/synvert/core/rewriter.rb b/lib/synvert/core/rewriter.rb index f436d843..aeac5a15 100644 --- a/lib/synvert/core/rewriter.rb +++ b/lib/synvert/core/rewriter.rb @@ -42,7 +42,7 @@ class Rewriter autoload :RubyVersion, 'synvert/core/rewriter/ruby_version' autoload :GemSpec, 'synvert/core/rewriter/gem_spec' - class < 1 - "\n\n" + rewritten_source.split("\n").map { |line| - indent(@node) + line - }.join("\n") + "\n\n" + rewritten_source.split("\n").map { |line| indent(@node) + line }.join("\n") else "\n" + indent(@node) + rewritten_source end diff --git a/lib/synvert/core/rewriter/action/append_action.rb b/lib/synvert/core/rewriter/action/append_action.rb index a3dc820d..156a6677 100644 --- a/lib/synvert/core/rewriter/action/append_action.rb +++ b/lib/synvert/core/rewriter/action/append_action.rb @@ -23,7 +23,7 @@ def end_pos begin_pos end - private + private # Indent of the node. # diff --git a/lib/synvert/core/rewriter/action/insert_action.rb b/lib/synvert/core/rewriter/action/insert_action.rb index 56edad63..35a242f0 100644 --- a/lib/synvert/core/rewriter/action/insert_action.rb +++ b/lib/synvert/core/rewriter/action/insert_action.rb @@ -2,8 +2,9 @@ module Synvert::Core # InsertAction to insert code to the top of node body. + class Rewriter::InsertAction < Rewriter::Action - DO_LENGTH = " do".length + DO_LENGTH = ' do'.length # Begin position to insert code. # @@ -11,7 +12,9 @@ class Rewriter::InsertAction < Rewriter::Action def begin_pos case @node.type when :block - @node.children[1].children.empty? ? @node.children[0].loc.expression.end_pos + DO_LENGTH : @node.children[1].loc.expression.end_pos + @node.children[1].children.empty? ? + @node.children[0].loc.expression.end_pos + DO_LENGTH : + @node.children[1].loc.expression.end_pos when :class @node.children[1] ? @node.children[1].loc.expression.end_pos : @node.children[0].loc.expression.end_pos else @@ -26,7 +29,7 @@ def end_pos begin_pos end - private + private # Indent of the node. # diff --git a/lib/synvert/core/rewriter/action/insert_after_action.rb b/lib/synvert/core/rewriter/action/insert_after_action.rb index 10d73ed8..8737d1b4 100644 --- a/lib/synvert/core/rewriter/action/insert_after_action.rb +++ b/lib/synvert/core/rewriter/action/insert_after_action.rb @@ -17,7 +17,7 @@ def end_pos begin_pos end - private + private # Indent of the node. # diff --git a/lib/synvert/core/rewriter/action/remove_action.rb b/lib/synvert/core/rewriter/action/remove_action.rb index 36eb8744..cda308aa 100644 --- a/lib/synvert/core/rewriter/action/remove_action.rb +++ b/lib/synvert/core/rewriter/action/remove_action.rb @@ -3,7 +3,7 @@ module Synvert::Core # RemoveAction to remove code. class Rewriter::RemoveAction < Rewriter::Action - def initialize(instance, code=nil) + def initialize(instance, code = nil) super end diff --git a/lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb b/lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb index 84489277..ac943024 100644 --- a/lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb +++ b/lib/synvert/core/rewriter/action/replace_erb_stmt_with_expr_action.rb @@ -4,7 +4,7 @@ module Synvert::Core # ReplaceErbStmtWithExprAction to replace erb stmt code to expr, # e.g. <% form_for ... %> => <%= form_for ... %>. class Rewriter::ReplaceErbStmtWithExprAction < Rewriter::Action - def initialize(instance, code=nil) + def initialize(instance, code = nil) super end @@ -13,8 +13,7 @@ def initialize(instance, code=nil) # @return [Integer] begin position. def begin_pos node_begin_pos = @node.loc.expression.begin_pos - while @node.loc.expression.source_buffer.source[node_begin_pos -= 1] == ' ' - end + while @node.loc.expression.source_buffer.source[node_begin_pos -= 1] == ' '; end node_begin_pos - Engine::ERUBY_STMT_SPLITTER.length + 1 end @@ -23,9 +22,8 @@ def begin_pos # @return [Integer] end position. def end_pos node_begin_pos = @node.loc.expression.begin_pos - node_begin_pos += @node.loc.expression.source.index "do" - while @node.loc.expression.source_buffer.source[node_begin_pos += 1] != '@' - end + node_begin_pos += @node.loc.expression.source.index 'do' + while @node.loc.expression.source_buffer.source[node_begin_pos += 1] != '@'; end node_begin_pos end @@ -33,8 +31,10 @@ def end_pos # # @return [String] rewritten code. def rewritten_code - @node.loc.expression.source_buffer.source[begin_pos...end_pos].sub(Engine::ERUBY_STMT_SPLITTER, "@output_buffer.append= ") - .sub(Engine::ERUBY_STMT_SPLITTER, Engine::ERUBY_EXPR_SPLITTER) + @node.loc.expression.source_buffer.source[begin_pos...end_pos].sub( + Engine::ERUBY_STMT_SPLITTER, + '@output_buffer.append= ' + ).sub(Engine::ERUBY_STMT_SPLITTER, Engine::ERUBY_EXPR_SPLITTER) end end end diff --git a/lib/synvert/core/rewriter/action/replace_with_action.rb b/lib/synvert/core/rewriter/action/replace_with_action.rb index f40a4e71..c91baf42 100644 --- a/lib/synvert/core/rewriter/action/replace_with_action.rb +++ b/lib/synvert/core/rewriter/action/replace_with_action.rb @@ -23,16 +23,16 @@ def end_pos def rewritten_code if rewritten_source.split("\n").length > 1 new_code = [] - rewritten_source.split("\n").each_with_index { |line, index| + rewritten_source.split("\n").each_with_index do |line, index| new_code << (index == 0 || !@options[:autoindent] ? line : indent(@node) + line) - } + end new_code.join("\n") else rewritten_source end end - private + private # Indent of the node # diff --git a/lib/synvert/core/rewriter/condition/if_only_exist_condition.rb b/lib/synvert/core/rewriter/condition/if_only_exist_condition.rb index 1407d623..22a9a7b7 100644 --- a/lib/synvert/core/rewriter/condition/if_only_exist_condition.rb +++ b/lib/synvert/core/rewriter/condition/if_only_exist_condition.rb @@ -5,8 +5,7 @@ module Synvert::Core class Rewriter::IfOnlyExistCondition < Rewriter::Condition # check if only have one child node and the child node matches rules. def match? - @instance.current_node.body.size == 1 && - @instance.current_node.body.first.match?(@rules) + @instance.current_node.body.size == 1 && @instance.current_node.body.first.match?(@rules) end end end diff --git a/lib/synvert/core/rewriter/gem_spec.rb b/lib/synvert/core/rewriter/gem_spec.rb index 6d5ad45c..da96abf7 100644 --- a/lib/synvert/core/rewriter/gem_spec.rb +++ b/lib/synvert/core/rewriter/gem_spec.rb @@ -3,7 +3,7 @@ module Synvert::Core # GemSpec checks and compares gem version. class Rewriter::GemSpec - OPERATORS = {eq: '==', lt: '<', gt: '>', lte: '<=', gte: '>=', ne: '!='} + OPERATORS = { eq: '==', lt: '<', gt: '>', lte: '<=', gte: '>=', ne: '!=' } # Initialize a gem_spec. # diff --git a/lib/synvert/core/rewriter/helper.rb b/lib/synvert/core/rewriter/helper.rb index 98da9e68..5b6772fa 100644 --- a/lib/synvert/core/rewriter/helper.rb +++ b/lib/synvert/core/rewriter/helper.rb @@ -34,9 +34,9 @@ def add_receiver_if_necessary(code) # if current_node has argument, it returns "({{arguments}})" def add_arguments_with_parenthesis_if_necessary if node.arguments.size > 0 - "({{arguments}})" + '({{arguments}})' else - "" + '' end end @@ -65,9 +65,7 @@ def add_curly_brackets_if_necessary(code) # # strip_brackets("(1..100)") #=> "1..100" def strip_brackets(code) - code.sub(/^\((.*)\)$/) { $1 } - .sub(/^\[(.*)\]$/) { $1 } - .sub(/^{(.*)}$/) { $1 } + code.sub(/^\((.*)\)$/) { $1 }.sub(/^\[(.*)\]$/) { $1 }.sub(/^{(.*)}$/) { $1 } end end end diff --git a/lib/synvert/core/rewriter/instance.rb b/lib/synvert/core/rewriter/instance.rb index e9c71672..37b269a8 100644 --- a/lib/synvert/core/rewriter/instance.rb +++ b/lib/synvert/core/rewriter/instance.rb @@ -8,7 +8,7 @@ module Synvert::Core class Rewriter::Instance include Rewriter::Helper - class <