prettyrb 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/Gemfile.lock +7 -1
- data/lib/prettyrb/formatter.rb +2 -5
- data/lib/prettyrb/version.rb +1 -1
- data/lib/prettyrb/visitor.rb +400 -119
- data/prettyrb.gemspec +1 -0
- metadata +18 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 6cdbfca887166eb0de5bb781abd2203f4b888459a49a7248462898cb002a368c
         | 
| 4 | 
            +
              data.tar.gz: 57e3b5eb278aeb405f19a4aa77ac2eec0cd6f3fc824fcb7da0780b9403b500bb
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 83d80892f95ed1b7c081a2325f36aa5462bd065e4b8d6e636b65bf0cd77a2b7566da1c7f1d119995281da6dbaa33897ae76b41e0429a2d71276ac25ad5e1a2bc
         | 
| 7 | 
            +
              data.tar.gz: 61a4e582bd7eb20f409b96fbb69f559d645bb9563d22cf07cd4b2a69e54664814e256cf8241a6fe7d8ab10f1e07bb81d7fb08d3239c726fcf2441bf25d9ca1d2
         | 
    
        data/.gitignore
    CHANGED
    
    
    
        data/.ruby-version
    ADDED
    
    | @@ -0,0 +1 @@ | |
| 1 | 
            +
            2.7.0
         | 
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            PATH
         | 
| 2 2 | 
             
              remote: .
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            -
                prettyrb (0. | 
| 4 | 
            +
                prettyrb (0.2.0)
         | 
| 5 5 | 
             
                  parser (~> 2.7.0.5)
         | 
| 6 6 | 
             
                  thor
         | 
| 7 7 |  | 
| @@ -10,10 +10,15 @@ GEM | |
| 10 10 | 
             
              specs:
         | 
| 11 11 | 
             
                ast (2.4.0)
         | 
| 12 12 | 
             
                byebug (11.1.1)
         | 
| 13 | 
            +
                docile (1.3.2)
         | 
| 13 14 | 
             
                minitest (5.14.0)
         | 
| 14 15 | 
             
                parser (2.7.0.5)
         | 
| 15 16 | 
             
                  ast (~> 2.4.0)
         | 
| 16 17 | 
             
                rake (12.3.3)
         | 
| 18 | 
            +
                simplecov (0.18.5)
         | 
| 19 | 
            +
                  docile (~> 1.1)
         | 
| 20 | 
            +
                  simplecov-html (~> 0.11)
         | 
| 21 | 
            +
                simplecov-html (0.12.2)
         | 
| 17 22 | 
             
                thor (1.0.1)
         | 
| 18 23 |  | 
| 19 24 | 
             
            PLATFORMS
         | 
| @@ -25,6 +30,7 @@ DEPENDENCIES | |
| 25 30 | 
             
              minitest (~> 5.0)
         | 
| 26 31 | 
             
              prettyrb!
         | 
| 27 32 | 
             
              rake (~> 12.3.3)
         | 
| 33 | 
            +
              simplecov (~> 0.18)
         | 
| 28 34 |  | 
| 29 35 | 
             
            BUNDLED WITH
         | 
| 30 36 | 
             
               1.17.2
         | 
    
        data/lib/prettyrb/formatter.rb
    CHANGED
    
    | @@ -2,18 +2,15 @@ module Prettyrb | |
| 2 2 | 
             
              MAX_LINE_LENGTH = 100
         | 
| 3 3 |  | 
| 4 4 | 
             
              class Formatter
         | 
| 5 | 
            -
                def self.for(node)
         | 
| 6 | 
            -
                end
         | 
| 7 | 
            -
             | 
| 8 5 | 
             
                def initialize(code)
         | 
| 9 6 | 
             
                  @code = code
         | 
| 10 7 | 
             
                end
         | 
| 11 8 |  | 
| 12 9 | 
             
                def format
         | 
| 13 | 
            -
                  root_node,  | 
| 10 | 
            +
                  root_node, _comments = Parser::CurrentRuby.parse_with_comments(@code)
         | 
| 14 11 |  | 
| 15 12 | 
             
                  visitor = Visitor.new
         | 
| 16 | 
            -
                  visitor.visit(root_node)
         | 
| 13 | 
            +
                  visitor.visit(root_node, nil)
         | 
| 17 14 |  | 
| 18 15 | 
             
                  visitor.output
         | 
| 19 16 | 
             
                end
         | 
    
        data/lib/prettyrb/version.rb
    CHANGED
    
    
    
        data/lib/prettyrb/visitor.rb
    CHANGED
    
    | @@ -1,6 +1,37 @@ | |
| 1 1 | 
             
            module Prettyrb
         | 
| 2 2 | 
             
              class Visitor
         | 
| 3 3 | 
             
                MAX_LENGTH = 100
         | 
| 4 | 
            +
                SINGLE_LINE = "single_line"
         | 
| 5 | 
            +
                MULTI_LINE = "multi_line"
         | 
| 6 | 
            +
             | 
| 7 | 
            +
                FNAMES = [
         | 
| 8 | 
            +
                  "..",
         | 
| 9 | 
            +
                  "|",
         | 
| 10 | 
            +
                  "ˆ",
         | 
| 11 | 
            +
                  "&",
         | 
| 12 | 
            +
                  "<=>",
         | 
| 13 | 
            +
                  "==",
         | 
| 14 | 
            +
                  "===",
         | 
| 15 | 
            +
                  "=˜",
         | 
| 16 | 
            +
                  ">",
         | 
| 17 | 
            +
                  ">=",
         | 
| 18 | 
            +
                  "<",
         | 
| 19 | 
            +
                  "<=",
         | 
| 20 | 
            +
                  "+",
         | 
| 21 | 
            +
                  "-",
         | 
| 22 | 
            +
                  "*",
         | 
| 23 | 
            +
                  "/",
         | 
| 24 | 
            +
                  "%",
         | 
| 25 | 
            +
                  "**",
         | 
| 26 | 
            +
                  "<<",
         | 
| 27 | 
            +
                  ">>",
         | 
| 28 | 
            +
                  "~",
         | 
| 29 | 
            +
                  "+@",
         | 
| 30 | 
            +
                  "-@",
         | 
| 31 | 
            +
                  "[]",
         | 
| 32 | 
            +
                  "[]="
         | 
| 33 | 
            +
                ]
         | 
| 34 | 
            +
                VALID_SYMBOLS = FNAMES + ["!", "!="]
         | 
| 4 35 |  | 
| 5 36 | 
             
                attr_reader :output
         | 
| 6 37 |  | 
| @@ -10,7 +41,8 @@ module Prettyrb | |
| 10 41 |  | 
| 11 42 | 
             
                  @newline = true
         | 
| 12 43 | 
             
                  @multiline_conditional_level = 0
         | 
| 13 | 
            -
                  @ | 
| 44 | 
            +
                  @previous_node = nil
         | 
| 45 | 
            +
                  @current_line = ''
         | 
| 14 46 | 
             
                end
         | 
| 15 47 |  | 
| 16 48 | 
             
                def indents
         | 
| @@ -27,10 +59,14 @@ module Prettyrb | |
| 27 59 |  | 
| 28 60 | 
             
                def indent(&block)
         | 
| 29 61 | 
             
                  old_indent_level = @indent_level
         | 
| 62 | 
            +
                  old_previous_node = @previous_node
         | 
| 30 63 |  | 
| 64 | 
            +
                  @previous_node = nil
         | 
| 31 65 | 
             
                  @indent_level += 1
         | 
| 32 | 
            -
                  yield
         | 
| 66 | 
            +
                  value = yield
         | 
| 33 67 | 
             
                  @indent_level = old_indent_level
         | 
| 68 | 
            +
                  @previous_node = old_previous_node
         | 
| 69 | 
            +
                  value
         | 
| 34 70 | 
             
                end
         | 
| 35 71 |  | 
| 36 72 | 
             
                def multiline_conditional_level
         | 
| @@ -48,7 +84,9 @@ module Prettyrb | |
| 48 84 | 
             
                def capture(&block)
         | 
| 49 85 | 
             
                  old_newline = @newline
         | 
| 50 86 | 
             
                  old_output = @output
         | 
| 87 | 
            +
                  old_current_line = @current_line
         | 
| 51 88 |  | 
| 89 | 
            +
                  @current_line = ""
         | 
| 52 90 | 
             
                  @output = ""
         | 
| 53 91 |  | 
| 54 92 | 
             
                  yield
         | 
| @@ -56,109 +94,115 @@ module Prettyrb | |
| 56 94 | 
             
                  @output.tap do |output|
         | 
| 57 95 | 
             
                    @output = old_output
         | 
| 58 96 | 
             
                    @newline = old_newline
         | 
| 97 | 
            +
                    @current_line = old_current_line
         | 
| 59 98 | 
             
                  end
         | 
| 60 99 | 
             
                end
         | 
| 61 100 |  | 
| 62 101 | 
             
                def newline
         | 
| 63 102 | 
             
                  @output << "\n"
         | 
| 64 103 | 
             
                  @newline = true
         | 
| 104 | 
            +
                  @current_line = ''
         | 
| 65 105 | 
             
                end
         | 
| 66 106 |  | 
| 67 107 | 
             
                def write(input)
         | 
| 68 108 | 
             
                  if @newline
         | 
| 69 109 | 
             
                    @output << indents
         | 
| 110 | 
            +
                    @current_line << indents
         | 
| 70 111 | 
             
                  end
         | 
| 71 112 | 
             
                  @newline = false
         | 
| 72 113 | 
             
                  @output << input
         | 
| 114 | 
            +
                  @current_line << input
         | 
| 73 115 | 
             
                end
         | 
| 74 116 |  | 
| 75 | 
            -
                def visit(node)
         | 
| 76 | 
            -
                  @previous_node = @__current_node
         | 
| 77 | 
            -
                  @__current_node = node
         | 
| 78 | 
            -
             | 
| 117 | 
            +
                def visit(node, parent_node)
         | 
| 79 118 | 
             
                  case node.type
         | 
| 80 119 | 
             
                  when :module
         | 
| 81 120 | 
             
                    write "module "
         | 
| 82 | 
            -
                    visit node.children[0]
         | 
| 121 | 
            +
                    visit node.children[0], node
         | 
| 83 122 | 
             
                    newline
         | 
| 84 123 |  | 
| 85 124 | 
             
                    indent do
         | 
| 86 | 
            -
                      visit node.children[1]
         | 
| 125 | 
            +
                      visit node.children[1], node
         | 
| 87 126 | 
             
                    end
         | 
| 88 127 |  | 
| 89 128 | 
             
                    write "end"
         | 
| 90 129 | 
             
                    newline
         | 
| 91 130 | 
             
                  when :class
         | 
| 131 | 
            +
                    newline unless @previous_node.nil?
         | 
| 92 132 | 
             
                    write "class "
         | 
| 93 | 
            -
                    visit node.children[0]
         | 
| 133 | 
            +
                    visit node.children[0], node
         | 
| 94 134 | 
             
                    newline
         | 
| 95 135 | 
             
                    # TODO handle children[1] which is inheritance
         | 
| 96 136 |  | 
| 97 137 | 
             
                    indent do
         | 
| 98 | 
            -
                      visit node.children[2]
         | 
| 138 | 
            +
                      visit node.children[2], node
         | 
| 99 139 | 
             
                    end
         | 
| 100 140 |  | 
| 101 141 | 
             
                    newline unless @output.end_with?("\n")
         | 
| 102 142 | 
             
                    write "end"
         | 
| 103 143 | 
             
                    newline
         | 
| 104 144 | 
             
                  when :const
         | 
| 145 | 
            +
                    visit node.children[0] if node.children[0]
         | 
| 105 146 | 
             
                    write node.children[1].to_s
         | 
| 106 147 | 
             
                  when :casgn
         | 
| 107 148 | 
             
                    write node.children[1].to_s
         | 
| 108 149 | 
             
                    write " = "
         | 
| 109 | 
            -
                    visit node.children[2]
         | 
| 150 | 
            +
                    visit node.children[2], node
         | 
| 110 151 | 
             
                  when :block
         | 
| 111 | 
            -
                     | 
| 152 | 
            +
                    newline unless @previous_node.nil?
         | 
| 153 | 
            +
                    visit node.children[0], node
         | 
| 112 154 | 
             
                    write " do"
         | 
| 113 155 |  | 
| 114 156 | 
             
                    if node.children[1].children.length > 0
         | 
| 115 157 | 
             
                      write " |"
         | 
| 116 | 
            -
                      visit node.children[1]
         | 
| 158 | 
            +
                      visit node.children[1], node
         | 
| 117 159 | 
             
                      write "|"
         | 
| 118 160 | 
             
                    end
         | 
| 119 161 |  | 
| 120 162 | 
             
                    newline
         | 
| 121 163 |  | 
| 122 164 | 
             
                    indent do
         | 
| 123 | 
            -
                      visit node.children[2]
         | 
| 165 | 
            +
                      visit node.children[2], node
         | 
| 124 166 | 
             
                    end
         | 
| 125 167 |  | 
| 126 168 | 
             
                    newline
         | 
| 127 169 |  | 
| 128 170 | 
             
                    write "end"
         | 
| 129 | 
            -
                    newline
         | 
| 130 171 | 
             
                  when :send
         | 
| 131 | 
            -
                    if  | 
| 132 | 
            -
             | 
| 133 | 
            -
                      write " "
         | 
| 134 | 
            -
                      write node.children[1].to_s
         | 
| 135 | 
            -
                      write " "
         | 
| 136 | 
            -
                      visit node.children[2]
         | 
| 137 | 
            -
                    elsif node.children[1] == :[]
         | 
| 138 | 
            -
                      visit node.children[0]
         | 
| 139 | 
            -
                      write "["
         | 
| 140 | 
            -
                      visit node.children[2]
         | 
| 141 | 
            -
                      write "]"
         | 
| 142 | 
            -
                    elsif node.children[1] == :!
         | 
| 143 | 
            -
                      write "!"
         | 
| 144 | 
            -
                      visit node.children[0]
         | 
| 145 | 
            -
                    elsif node.children[0] == nil
         | 
| 172 | 
            +
                    newline if parent_node&.type == :begin && @previous_node && @previous_node&.type != :send
         | 
| 173 | 
            +
                    if node.children[0] == nil
         | 
| 146 174 | 
             
                      write node.children[1].to_s
         | 
| 147 175 |  | 
| 148 176 | 
             
                      # TODO possible > MAX via `capture`
         | 
| 149 177 | 
             
                      arguments = node.children[2..-1]
         | 
| 150 178 | 
             
                      if arguments.length > 0
         | 
| 151 179 | 
             
                        write "("
         | 
| 152 | 
            -
                         | 
| 153 | 
            -
                           | 
| 154 | 
            -
             | 
| 180 | 
            +
                        indent do
         | 
| 181 | 
            +
                          if splittable_separated_map(node, arguments) == MULTI_LINE
         | 
| 182 | 
            +
                            newline
         | 
| 183 | 
            +
                          end
         | 
| 155 184 | 
             
                        end
         | 
| 156 185 | 
             
                        write ")"
         | 
| 157 186 | 
             
                      end
         | 
| 158 187 |  | 
| 159 | 
            -
                      newline if @previous_node | 
| 188 | 
            +
                      newline if @previous_node&.type == :class 
         | 
| 189 | 
            +
                    elsif node.children[1] == :[]
         | 
| 190 | 
            +
                      visit node.children[0], node
         | 
| 191 | 
            +
                      write "["
         | 
| 192 | 
            +
                      visit node.children[2], node
         | 
| 193 | 
            +
                      write "]"
         | 
| 194 | 
            +
                    elsif node.children[1] == :!
         | 
| 195 | 
            +
                      write "!"
         | 
| 196 | 
            +
                      visit node.children[0], node
         | 
| 197 | 
            +
                    elsif !node.children[1].to_s.match?(/[a-zA-Z]/)
         | 
| 198 | 
            +
                    # if [:!=, :==, :+, :-, :*, :/, :<<, :<].include?(node.children[1])
         | 
| 199 | 
            +
                      visit node.children[0], node
         | 
| 200 | 
            +
                      write " "
         | 
| 201 | 
            +
                      write node.children[1].to_s
         | 
| 202 | 
            +
                      write " "
         | 
| 203 | 
            +
                      visit node.children[2], node
         | 
| 160 204 | 
             
                    else
         | 
| 161 | 
            -
                      visit node.children[0]
         | 
| 205 | 
            +
                      visit node.children[0], node
         | 
| 162 206 | 
             
                      write "."
         | 
| 163 207 | 
             
                      write node.children[1].to_s
         | 
| 164 208 |  | 
| @@ -166,123 +210,166 @@ module Prettyrb | |
| 166 210 | 
             
                      arguments = node.children[2..-1]
         | 
| 167 211 | 
             
                      if arguments.length > 0
         | 
| 168 212 | 
             
                        write "("
         | 
| 169 | 
            -
                        arguments.each_with_index do | | 
| 170 | 
            -
                          visit node
         | 
| 213 | 
            +
                        arguments.each_with_index do |child_node, index|
         | 
| 214 | 
            +
                          visit child_node, node
         | 
| 171 215 | 
             
                          write ", " unless index == arguments.length - 1
         | 
| 172 216 | 
             
                        end
         | 
| 173 217 | 
             
                        write ")"
         | 
| 174 218 | 
             
                      end
         | 
| 175 219 | 
             
                    end
         | 
| 176 220 | 
             
                  when :if
         | 
| 177 | 
            -
                     | 
| 178 | 
            -
             | 
| 221 | 
            +
                    newline if @previous_node && parent_node&.type != :if
         | 
| 222 | 
            +
             | 
| 223 | 
            +
                    if parent_node&.type == :if
         | 
| 224 | 
            +
                      conditions_node = node.children[0]
         | 
| 225 | 
            +
                      body_node = node.children[1]
         | 
| 226 | 
            +
                      else_body_node = node.children[2]
         | 
| 227 | 
            +
             | 
| 228 | 
            +
                      write "elsif"
         | 
| 229 | 
            +
             | 
| 179 230 | 
             
                      conditions = capture do
         | 
| 180 | 
            -
                        visit node | 
| 231 | 
            +
                        visit conditions_node, node
         | 
| 181 232 | 
             
                      end
         | 
| 182 233 |  | 
| 183 234 | 
             
                      if !conditions.start_with?("\n")
         | 
| 184 235 | 
             
                        write(" ")
         | 
| 185 236 | 
             
                      end
         | 
| 237 | 
            +
             | 
| 186 238 | 
             
                      write conditions
         | 
| 239 | 
            +
                      newline
         | 
| 240 | 
            +
             | 
| 241 | 
            +
                      if body_node.type == :if
         | 
| 242 | 
            +
                        visit body_node, node
         | 
| 243 | 
            +
                      else
         | 
| 244 | 
            +
                        indent do
         | 
| 245 | 
            +
                          visit body_node, node
         | 
| 246 | 
            +
                        end
         | 
| 247 | 
            +
                      end
         | 
| 187 248 |  | 
| 188 249 | 
             
                      newline
         | 
| 189 250 |  | 
| 190 | 
            -
                      if  | 
| 191 | 
            -
                        visit node | 
| 251 | 
            +
                      if else_body_node&.type == :if
         | 
| 252 | 
            +
                        visit else_body_node, node
         | 
| 253 | 
            +
                      elsif else_body_node
         | 
| 254 | 
            +
                        write "else"
         | 
| 192 255 | 
             
                        newline
         | 
| 256 | 
            +
                        indent do
         | 
| 257 | 
            +
                          visit else_body_node, node
         | 
| 258 | 
            +
                        end
         | 
| 193 259 | 
             
                      end
         | 
| 194 | 
            -
                     | 
| 260 | 
            +
                    else
         | 
| 261 | 
            +
                      is_unless = node.children[1].nil? && node.children[2]&.type != :if
         | 
| 262 | 
            +
                      conditions = node.children[0]
         | 
| 195 263 |  | 
| 196 | 
            -
             | 
| 197 | 
            -
             | 
| 198 | 
            -
                         | 
| 199 | 
            -
                         | 
| 264 | 
            +
                      if is_unless
         | 
| 265 | 
            +
                        write "unless"
         | 
| 266 | 
            +
                        body_node = node.children[2]
         | 
| 267 | 
            +
                        else_body_node = nil
         | 
| 200 268 | 
             
                      else
         | 
| 201 | 
            -
                        write " | 
| 269 | 
            +
                        write "if" unless parent_node&.type == :if
         | 
| 270 | 
            +
                        body_node = node.children[1]
         | 
| 271 | 
            +
                        else_body_node = node.children[2]
         | 
| 272 | 
            +
                      end
         | 
| 273 | 
            +
             | 
| 274 | 
            +
                      indent do
         | 
| 275 | 
            +
                        conditions = capture do
         | 
| 276 | 
            +
                          visit node.children[0], node
         | 
| 277 | 
            +
                        end
         | 
| 278 | 
            +
             | 
| 279 | 
            +
                        if !conditions.start_with?("\n")
         | 
| 280 | 
            +
                          write(" ")
         | 
| 281 | 
            +
                        end
         | 
| 282 | 
            +
             | 
| 283 | 
            +
                        write conditions
         | 
| 202 284 | 
             
                        newline
         | 
| 203 285 |  | 
| 204 | 
            -
                         | 
| 205 | 
            -
                          visit node | 
| 286 | 
            +
                        if body_node
         | 
| 287 | 
            +
                          visit body_node, node
         | 
| 288 | 
            +
                          newline
         | 
| 206 289 | 
             
                        end
         | 
| 207 290 | 
             
                      end
         | 
| 208 | 
            -
                      newline
         | 
| 209 | 
            -
                    end
         | 
| 210 291 |  | 
| 211 | 
            -
             | 
| 292 | 
            +
                      if else_body_node
         | 
| 293 | 
            +
                        if else_body_node.type == :if
         | 
| 294 | 
            +
                          visit else_body_node, node
         | 
| 295 | 
            +
                        else
         | 
| 296 | 
            +
                          write "else"
         | 
| 297 | 
            +
                          newline
         | 
| 298 | 
            +
             | 
| 299 | 
            +
                          indent do
         | 
| 300 | 
            +
                            visit else_body_node, node
         | 
| 301 | 
            +
                          end
         | 
| 302 | 
            +
                        end
         | 
| 303 | 
            +
                        newline
         | 
| 304 | 
            +
                      end
         | 
| 305 | 
            +
             | 
| 306 | 
            +
                      write "end" unless parent_node&.type == :if
         | 
| 307 | 
            +
                    end
         | 
| 212 308 | 
             
                  when :true
         | 
| 213 309 | 
             
                    write "true"
         | 
| 214 310 | 
             
                  when :false
         | 
| 215 311 | 
             
                    write "false"
         | 
| 216 312 | 
             
                  when :nil
         | 
| 217 313 | 
             
                    write "nil"
         | 
| 218 | 
            -
                  when :int
         | 
| 314 | 
            +
                  when :int, :float
         | 
| 219 315 | 
             
                    write node.children[0].to_s
         | 
| 220 316 | 
             
                  when :array
         | 
| 221 | 
            -
                     | 
| 222 | 
            -
                       | 
| 223 | 
            -
             | 
| 224 | 
            -
                        visit(child)
         | 
| 225 | 
            -
                        write ", " unless index == node.children.length - 1
         | 
| 226 | 
            -
                      end
         | 
| 227 | 
            -
                      write "]"
         | 
| 228 | 
            -
                    end
         | 
| 229 | 
            -
             | 
| 230 | 
            -
                    if possible_output.length > MAX_LENGTH
         | 
| 317 | 
            +
                    if node.children[0].type == :splat
         | 
| 318 | 
            +
                      visit node.children[0], node
         | 
| 319 | 
            +
                    else
         | 
| 231 320 | 
             
                      write "["
         | 
| 232 | 
            -
                      newline
         | 
| 233 | 
            -
             | 
| 234 321 | 
             
                      indent do
         | 
| 235 | 
            -
                        node.children | 
| 236 | 
            -
             | 
| 237 | 
            -
                          write ","
         | 
| 238 | 
            -
                          newline
         | 
| 239 | 
            -
                        end
         | 
| 322 | 
            +
                        result = splittable_separated_map(node, node.children)
         | 
| 323 | 
            +
                        newline if result == MULTI_LINE
         | 
| 240 324 | 
             
                      end
         | 
| 241 | 
            -
             | 
| 242 325 | 
             
                      write "]"
         | 
| 243 | 
            -
                    else
         | 
| 244 | 
            -
                      write possible_output.lstrip
         | 
| 245 326 | 
             
                    end
         | 
| 246 327 | 
             
                  when :str
         | 
| 247 328 | 
             
                    write '"'
         | 
| 248 | 
            -
                    write node | 
| 329 | 
            +
                    write format_string(node)
         | 
| 249 330 | 
             
                    write '"'
         | 
| 250 331 | 
             
                  when :dstr
         | 
| 251 332 | 
             
                    write "\""
         | 
| 252 333 | 
             
                    node.children.map do |child|
         | 
| 253 334 | 
             
                      if child.type == :str
         | 
| 254 | 
            -
                        write child.children[0]
         | 
| 255 | 
            -
                        write child.children[0].gsub("\n", "\\n")
         | 
| 335 | 
            +
                        write child.children[0] # TODO better handling
         | 
| 256 336 | 
             
                      else
         | 
| 257 337 | 
             
                        write '#{'
         | 
| 258 | 
            -
                        visit child
         | 
| 338 | 
            +
                        visit child, node
         | 
| 259 339 | 
             
                        write '}'
         | 
| 260 340 | 
             
                      end
         | 
| 261 341 | 
             
                    end
         | 
| 262 342 | 
             
                    write "\""
         | 
| 263 343 | 
             
                  when :begin
         | 
| 264 | 
            -
                    if @previous_node | 
| 344 | 
            +
                    if @previous_node&.type == :or || @previous_node&.type == :and
         | 
| 265 345 | 
             
                      write "("
         | 
| 266 | 
            -
                       | 
| 346 | 
            +
                      @previous_node = nil
         | 
| 347 | 
            +
                      node.children.map do |child|
         | 
| 348 | 
            +
                        visit child, node
         | 
| 349 | 
            +
                        @previous_node = child
         | 
| 350 | 
            +
                      end
         | 
| 351 | 
            +
                      @previous_node = nil
         | 
| 267 352 | 
             
                      write ")"
         | 
| 268 353 | 
             
                    else
         | 
| 354 | 
            +
                      @previous_node = nil
         | 
| 269 355 | 
             
                      node.children.each_with_index do |child, index|
         | 
| 270 | 
            -
                        visit child
         | 
| 356 | 
            +
                        visit child, node
         | 
| 271 357 | 
             
                        newline unless index == node.children.length - 1
         | 
| 358 | 
            +
                        @previous_node = child
         | 
| 272 359 | 
             
                      end
         | 
| 360 | 
            +
                      @previous_node = nil
         | 
| 273 361 | 
             
                    end
         | 
| 274 362 | 
             
                  when :or, :and
         | 
| 363 | 
            +
                    write "(" if parent_node&.type == :begin
         | 
| 275 364 | 
             
                    possible_output = capture do
         | 
| 276 | 
            -
                      visit node.children[0]
         | 
| 365 | 
            +
                      visit node.children[0], node
         | 
| 277 366 | 
             
                      if node.type == :or
         | 
| 278 367 | 
             
                        write " || "
         | 
| 279 368 | 
             
                      elsif node.type == :and
         | 
| 280 369 | 
             
                        write " && "
         | 
| 281 370 | 
             
                      end
         | 
| 282 | 
            -
                      visit node.children[1]
         | 
| 371 | 
            +
                      visit node.children[1], node
         | 
| 283 372 | 
             
                    end
         | 
| 284 | 
            -
             | 
| 285 | 
            -
             | 
| 286 373 | 
             
                    if @multiline_conditional_level > 0 # TODO track and check currently level
         | 
| 287 374 | 
             
                      write_multiline_conditional(node)
         | 
| 288 375 | 
             
                    elsif possible_output.length > MAX_LENGTH
         | 
| @@ -298,41 +385,72 @@ module Prettyrb | |
| 298 385 | 
             
                    else
         | 
| 299 386 | 
             
                      write possible_output
         | 
| 300 387 | 
             
                    end
         | 
| 301 | 
            -
             | 
| 302 | 
            -
             | 
| 303 | 
            -
                     | 
| 304 | 
            -
                    if node. | 
| 388 | 
            +
                    write ")" if parent_node&.type == :begin
         | 
| 389 | 
            +
                  when :def, :defs
         | 
| 390 | 
            +
                    newline unless @previous_node&.type.nil?
         | 
| 391 | 
            +
                    if node.type == :defs
         | 
| 392 | 
            +
                      write "def self."
         | 
| 393 | 
            +
                      method_name_node = node.children[1]
         | 
| 394 | 
            +
                      arguments_node = node.children[2]
         | 
| 395 | 
            +
                      body_node = node.children[3]
         | 
| 396 | 
            +
                    else
         | 
| 397 | 
            +
                      write "def "
         | 
| 398 | 
            +
                      method_name_node = node.children[0]
         | 
| 399 | 
            +
                      arguments_node = node.children[1]
         | 
| 400 | 
            +
                      body_node = node.children[2]
         | 
| 401 | 
            +
                    end
         | 
| 402 | 
            +
             | 
| 403 | 
            +
                    write method_name_node.to_s
         | 
| 404 | 
            +
             | 
| 405 | 
            +
                    if arguments_node.children.length > 0 || arguments_node.type != :args
         | 
| 305 406 | 
             
                      write "("
         | 
| 306 | 
            -
                      visit node | 
| 407 | 
            +
                      visit arguments_node, node
         | 
| 307 408 | 
             
                      write ")"
         | 
| 308 409 | 
             
                    end
         | 
| 309 410 | 
             
                    newline
         | 
| 310 411 |  | 
| 311 | 
            -
                     | 
| 312 | 
            -
                       | 
| 412 | 
            +
                    if body_node
         | 
| 413 | 
            +
                      indent do
         | 
| 414 | 
            +
                        visit body_node, node
         | 
| 415 | 
            +
                      end
         | 
| 416 | 
            +
             | 
| 417 | 
            +
                      newline
         | 
| 313 418 | 
             
                    end
         | 
| 314 419 |  | 
| 315 | 
            -
                    newline
         | 
| 316 420 | 
             
                    write "end"
         | 
| 317 421 | 
             
                  when :args
         | 
| 318 422 | 
             
                    node.children.each_with_index do |child, index|
         | 
| 319 | 
            -
                      visit child
         | 
| 423 | 
            +
                      visit child, node
         | 
| 320 424 | 
             
                      write ", " unless index == node.children.length - 1
         | 
| 321 425 | 
             
                    end
         | 
| 322 426 | 
             
                  when :arg
         | 
| 323 427 | 
             
                    write node.children[0].to_s
         | 
| 324 | 
            -
                  when :lvar
         | 
| 428 | 
            +
                  when :lvar, :gvar
         | 
| 325 429 | 
             
                    write node.children[0].to_s
         | 
| 326 430 | 
             
                  when :self
         | 
| 327 431 | 
             
                    "self"
         | 
| 328 432 | 
             
                  when :sym
         | 
| 329 | 
            -
                     | 
| 330 | 
            -
             | 
| 433 | 
            +
                    content = node.children[0].to_s
         | 
| 434 | 
            +
             | 
| 435 | 
            +
                    # TODO handle already quoted symbols
         | 
| 436 | 
            +
                    if !VALID_SYMBOLS.include?(content) && !content.match?(/\A[a-zA-Z_]{1}[a-zA-Z0-9_!?]*\z/)
         | 
| 437 | 
            +
                      content = "'#{content}'"
         | 
| 438 | 
            +
                      write ":"
         | 
| 439 | 
            +
                      write content
         | 
| 440 | 
            +
                    else
         | 
| 441 | 
            +
                      if parent_node&.type == :pair
         | 
| 442 | 
            +
                        write content
         | 
| 443 | 
            +
                        write ": "
         | 
| 444 | 
            +
                      else
         | 
| 445 | 
            +
                        write ":"
         | 
| 446 | 
            +
                        write content
         | 
| 447 | 
            +
                      end
         | 
| 448 | 
            +
                    end
         | 
| 331 449 | 
             
                  when :return
         | 
| 332 450 | 
             
                    write "return"
         | 
| 333 451 |  | 
| 334 452 | 
             
                    possible_output = capture do
         | 
| 335 | 
            -
                      visit node.children[0]
         | 
| 453 | 
            +
                      visit node.children[0], node
         | 
| 336 454 | 
             
                    end
         | 
| 337 455 |  | 
| 338 456 | 
             
                    if !possible_output.start_with?("\n")
         | 
| @@ -340,63 +458,193 @@ module Prettyrb | |
| 340 458 | 
             
                    end
         | 
| 341 459 | 
             
                  when :case
         | 
| 342 460 | 
             
                    write "case "
         | 
| 343 | 
            -
                    visit node.children[0]
         | 
| 461 | 
            +
                    visit node.children[0], node
         | 
| 344 462 | 
             
                    newline
         | 
| 345 463 | 
             
                    node.children[1..-1].each do |child|
         | 
| 346 | 
            -
                      if child.type != :when
         | 
| 464 | 
            +
                      if child && child.type != :when
         | 
| 347 465 | 
             
                        write "else"
         | 
| 348 466 | 
             
                        newline
         | 
| 349 467 |  | 
| 350 468 | 
             
                        indent do
         | 
| 351 | 
            -
                          visit child
         | 
| 469 | 
            +
                          visit child, node
         | 
| 352 470 | 
             
                        end
         | 
| 353 471 | 
             
                      else
         | 
| 354 | 
            -
                         | 
| 355 | 
            -
             | 
| 472 | 
            +
                        if child
         | 
| 473 | 
            +
                          visit child, node
         | 
| 474 | 
            +
                          newline
         | 
| 475 | 
            +
                        end
         | 
| 356 476 | 
             
                      end
         | 
| 357 477 | 
             
                    end
         | 
| 358 478 | 
             
                    write "end"
         | 
| 479 | 
            +
                  when :regexp
         | 
| 480 | 
            +
                    write '/'
         | 
| 481 | 
            +
                    node.children[0...-1].map do |child_node|
         | 
| 482 | 
            +
                      if child_node.type == :str
         | 
| 483 | 
            +
                        write child_node.children[0].to_s
         | 
| 484 | 
            +
                      else
         | 
| 485 | 
            +
                        visit child_node, node
         | 
| 486 | 
            +
                      end
         | 
| 487 | 
            +
                    end
         | 
| 488 | 
            +
                    write '/'
         | 
| 489 | 
            +
                    visit node.children[-1], node
         | 
| 490 | 
            +
                  when :regopt
         | 
| 491 | 
            +
                    node.children.map { |child| child.to_s }.join('')
         | 
| 359 492 | 
             
                  when :when
         | 
| 360 | 
            -
                    write "when | 
| 361 | 
            -
             | 
| 493 | 
            +
                    write "when"
         | 
| 494 | 
            +
             | 
| 495 | 
            +
                    indent do
         | 
| 496 | 
            +
                      splittable_separated_map(node, node.children[0..-2], skip_last_multiline_separator: true, write_space_if_single_line: true)
         | 
| 497 | 
            +
                    end
         | 
| 498 | 
            +
             | 
| 362 499 | 
             
                    newline
         | 
| 363 500 | 
             
                    indent do
         | 
| 364 | 
            -
                      visit node.children[1]
         | 
| 501 | 
            +
                      visit node.children[-1], node
         | 
| 502 | 
            +
                    end
         | 
| 503 | 
            +
                  when :or_asgn, :and_asgn
         | 
| 504 | 
            +
                    newline if @previous_node && ![:ivasgn, :or_asgn, :lvasgn, :op_asgn].include?(@previous_node.type)
         | 
| 505 | 
            +
                    visit node.children[0], node
         | 
| 506 | 
            +
                    if node.type == :or_asgn
         | 
| 507 | 
            +
                      write " ||= " # TODO handle long lines here too
         | 
| 508 | 
            +
                    elsif node.type == :and_asgn
         | 
| 509 | 
            +
                      write " &&= " # TODO handle long lines here too
         | 
| 365 510 | 
             
                    end
         | 
| 366 | 
            -
             | 
| 367 | 
            -
                    visit node.children[0]
         | 
| 368 | 
            -
                    write " ||= " # TODO handle long lines here too
         | 
| 369 | 
            -
                    visit node.children[1]
         | 
| 511 | 
            +
                    visit node.children[1], node
         | 
| 370 512 | 
             
                  when :ivasgn
         | 
| 513 | 
            +
                    newline if @previous_node && ![:ivasgn, :or_asgn, :lvasgn, :op_asgn].include?(@previous_node.type)
         | 
| 371 514 | 
             
                    write node.children[0].to_s
         | 
| 515 | 
            +
             | 
| 516 | 
            +
                    if node.children[1]
         | 
| 517 | 
            +
                      write " = "
         | 
| 518 | 
            +
                      visit node.children[1], node
         | 
| 519 | 
            +
                    end
         | 
| 520 | 
            +
                  when :csend
         | 
| 521 | 
            +
                    visit node.children[0], node
         | 
| 522 | 
            +
                    write "&."
         | 
| 523 | 
            +
                    write node.children[1].to_s
         | 
| 372 524 | 
             
                  when :ivar
         | 
| 373 525 | 
             
                    write node.children[0].to_s
         | 
| 374 526 | 
             
                  when :blockarg
         | 
| 527 | 
            +
                    write '&'
         | 
| 375 528 | 
             
                    write node.children[0].to_s
         | 
| 376 529 | 
             
                  when :yield
         | 
| 530 | 
            +
                    newline unless @previous_node.nil? || [:op_asgn, :lvasgn, :or_asgn, :and_asgn].include?(@previous_node.type)
         | 
| 377 531 | 
             
                    write "yield"
         | 
| 378 532 | 
             
                  when :op_asgn
         | 
| 379 | 
            -
                     | 
| 533 | 
            +
                    newline if @previous_node && ![:ivasgn, :or_asgn, :lvasgn, :op_asgn].include?(@previous_node.type)
         | 
| 534 | 
            +
                    visit node.children[0], node
         | 
| 380 535 | 
             
                    write " "
         | 
| 381 536 | 
             
                    write node.children[1].to_s
         | 
| 537 | 
            +
                    write "="
         | 
| 382 538 | 
             
                    write " "
         | 
| 383 | 
            -
                    visit node.children[2]
         | 
| 539 | 
            +
                    visit node.children[2], node
         | 
| 384 540 | 
             
                  when :lvasgn
         | 
| 541 | 
            +
                    newline if @previous_node && ![:ivasgn, :or_asgn, :lvasgn, :op_asgn].include?(@previous_node.type)
         | 
| 385 542 | 
             
                    write node.children[0].to_s
         | 
| 386 | 
            -
                     | 
| 387 | 
            -
             | 
| 388 | 
            -
             | 
| 543 | 
            +
                    if node.children[1]
         | 
| 544 | 
            +
                      write " = "
         | 
| 545 | 
            +
                      visit node.children[1], node
         | 
| 546 | 
            +
                    end
         | 
| 389 547 | 
             
                  when :irange
         | 
| 390 | 
            -
                    visit node.children[0]
         | 
| 548 | 
            +
                    visit node.children[0], node unless node.children[0].nil?
         | 
| 391 549 | 
             
                    write ".."
         | 
| 392 | 
            -
                    visit node.children[1]
         | 
| 550 | 
            +
                    visit node.children[1], node unless node.children[1].nil?
         | 
| 551 | 
            +
                  when :erange
         | 
| 552 | 
            +
                    visit node.children[0], node unless node.children[0].nil?
         | 
| 553 | 
            +
                    write "..."
         | 
| 554 | 
            +
                    visit node.children[1], node unless node.children[1].nil?
         | 
| 555 | 
            +
                  when :hash
         | 
| 556 | 
            +
                    if node.children.length == 0
         | 
| 557 | 
            +
                      write "{}"
         | 
| 558 | 
            +
                    else
         | 
| 559 | 
            +
                      write "{"
         | 
| 560 | 
            +
             | 
| 561 | 
            +
                      result = indent do
         | 
| 562 | 
            +
                        splittable_separated_map(node, node.children, write_space_if_single_line: true)
         | 
| 563 | 
            +
                      end
         | 
| 564 | 
            +
             | 
| 565 | 
            +
                      if result == MULTI_LINE
         | 
| 566 | 
            +
                        newline
         | 
| 567 | 
            +
                        write "}"
         | 
| 568 | 
            +
                      else
         | 
| 569 | 
            +
                        write " }"
         | 
| 570 | 
            +
                      end
         | 
| 571 | 
            +
                    end
         | 
| 572 | 
            +
                  when :pair
         | 
| 573 | 
            +
                    visit node.children[0], node
         | 
| 574 | 
            +
                    if node.children[0].type != :sym
         | 
| 575 | 
            +
                      write " => "
         | 
| 576 | 
            +
                    end
         | 
| 577 | 
            +
                    visit node.children[1], node
         | 
| 578 | 
            +
                  when :splat
         | 
| 579 | 
            +
                    write "*"
         | 
| 580 | 
            +
                    visit node.children[0], node
         | 
| 581 | 
            +
                  when :defined?
         | 
| 582 | 
            +
                    write "defined?("
         | 
| 583 | 
            +
                    visit node.children[0], node
         | 
| 584 | 
            +
                    write ")"
         | 
| 585 | 
            +
                  when :complex,
         | 
| 586 | 
            +
                    :dsym,
         | 
| 587 | 
            +
                    :xstr,
         | 
| 588 | 
            +
                    :'nth-ref',
         | 
| 589 | 
            +
                    :'back-ref',
         | 
| 590 | 
            +
                    :gvasgn,
         | 
| 591 | 
            +
                    :mlhs,
         | 
| 592 | 
            +
                    :procarg0,
         | 
| 593 | 
            +
                    :shadowarg
         | 
| 594 | 
            +
                    raise "implement me, #{node.inspect}"
         | 
| 595 | 
            +
                  when :sclass
         | 
| 596 | 
            +
                    write "class << "
         | 
| 597 | 
            +
                    visit node.children[0], node
         | 
| 598 | 
            +
                    newline
         | 
| 599 | 
            +
             | 
| 600 | 
            +
                    indent do
         | 
| 601 | 
            +
                      visit node.children[1], node if node.children[1]
         | 
| 602 | 
            +
                    end
         | 
| 603 | 
            +
             | 
| 604 | 
            +
                    newline if node.children[1]
         | 
| 605 | 
            +
                    write "end"
         | 
| 606 | 
            +
                  when :undef
         | 
| 607 | 
            +
                    write "undef "
         | 
| 608 | 
            +
                    node.children.each_with_index do |child_node, index|
         | 
| 609 | 
            +
                      visit child_node, node
         | 
| 610 | 
            +
                      write ", " unless index == node.children.length - 1
         | 
| 611 | 
            +
                    end
         | 
| 612 | 
            +
                  when :alias
         | 
| 613 | 
            +
                    write 'alias '
         | 
| 614 | 
            +
                    visit node.children[0], node
         | 
| 615 | 
            +
                    write ' '
         | 
| 616 | 
            +
                    visit node.children[1], node
         | 
| 617 | 
            +
                  when :restarg
         | 
| 618 | 
            +
                    write "*"
         | 
| 619 | 
            +
                    write node.children[0].to_s
         | 
| 620 | 
            +
                  when :optarg
         | 
| 621 | 
            +
                    write node.children[0].to_s
         | 
| 622 | 
            +
                    write " = "
         | 
| 623 | 
            +
                    visit node.children[1], node
         | 
| 624 | 
            +
                  when :kwsplat
         | 
| 625 | 
            +
                    write "**"
         | 
| 626 | 
            +
                    visit node.children[0], node
         | 
| 627 | 
            +
                  when :kwarg
         | 
| 628 | 
            +
                    write node.children[0].to_s
         | 
| 629 | 
            +
                    write ":"
         | 
| 630 | 
            +
                  when :forward_args, :forwarded_args
         | 
| 631 | 
            +
                    write "..."
         | 
| 632 | 
            +
                  when :kwoptarg
         | 
| 633 | 
            +
                    write node.children[0].to_s
         | 
| 634 | 
            +
                    write ": "
         | 
| 635 | 
            +
                    visit node.children[1], node
         | 
| 636 | 
            +
                  when :kwrestarg
         | 
| 637 | 
            +
                    write "**"
         | 
| 638 | 
            +
                    write node.children[0].to_s if node.children[0]
         | 
| 639 | 
            +
                  when :kwnilarg
         | 
| 640 | 
            +
                    write "**nil"
         | 
| 393 641 | 
             
                  else
         | 
| 394 642 | 
             
                    raise "unhandled node type `#{node.type}`\nnode: #{node}"
         | 
| 395 643 | 
             
                  end
         | 
| 396 644 | 
             
                end
         | 
| 397 645 |  | 
| 398 646 | 
             
                def write_multiline_conditional(node)
         | 
| 399 | 
            -
                  visit node.children[0]
         | 
| 647 | 
            +
                  visit node.children[0], node
         | 
| 400 648 |  | 
| 401 649 | 
             
                  if node.type == :or
         | 
| 402 650 | 
             
                    write " ||"
         | 
| @@ -406,7 +654,40 @@ module Prettyrb | |
| 406 654 |  | 
| 407 655 | 
             
                  newline
         | 
| 408 656 |  | 
| 409 | 
            -
                  visit node.children[1]
         | 
| 657 | 
            +
                  visit node.children[1], node
         | 
| 658 | 
            +
                end
         | 
| 659 | 
            +
             | 
| 660 | 
            +
                def format_string(string)
         | 
| 661 | 
            +
                  raw_content = string.loc.expression.source
         | 
| 662 | 
            +
                  content = raw_content[1...-1]
         | 
| 663 | 
            +
             | 
| 664 | 
            +
                  if raw_content[0] == "'"
         | 
| 665 | 
            +
                    content.gsub('"', '\\"').gsub('#{', '\\#{')
         | 
| 666 | 
            +
                  else
         | 
| 667 | 
            +
                    content.gsub("\\", "\\\\")
         | 
| 668 | 
            +
                  end
         | 
| 669 | 
            +
                end
         | 
| 670 | 
            +
             | 
| 671 | 
            +
                def splittable_separated_map(current_node, mappable, separator: ", ", skip_last_multiline_separator: false, write_space_if_single_line: false)
         | 
| 672 | 
            +
                  one_line = capture do
         | 
| 673 | 
            +
                    mappable.each_with_index do |child_node, index|
         | 
| 674 | 
            +
                      visit child_node, current_node
         | 
| 675 | 
            +
                      write separator unless index == mappable.length - 1
         | 
| 676 | 
            +
                    end
         | 
| 677 | 
            +
                  end
         | 
| 678 | 
            +
             | 
| 679 | 
            +
                  if @current_line.length + one_line.length > MAX_LENGTH
         | 
| 680 | 
            +
                    mappable.each_with_index do |child_node, index|
         | 
| 681 | 
            +
                      newline
         | 
| 682 | 
            +
                      visit child_node, current_node
         | 
| 683 | 
            +
                      write separator.rstrip unless skip_last_multiline_separator && index == mappable.length - 1
         | 
| 684 | 
            +
                    end
         | 
| 685 | 
            +
                    MULTI_LINE
         | 
| 686 | 
            +
                  else
         | 
| 687 | 
            +
                    write ' ' if write_space_if_single_line
         | 
| 688 | 
            +
                    write one_line
         | 
| 689 | 
            +
                    SINGLE_LINE
         | 
| 690 | 
            +
                  end
         | 
| 410 691 | 
             
                end
         | 
| 411 692 | 
             
              end
         | 
| 412 693 | 
             
            end
         | 
    
        data/prettyrb.gemspec
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: prettyrb
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.3.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Blake Williams
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2020- | 
| 11 | 
            +
            date: 2020-04-06 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: parser
         | 
| @@ -94,6 +94,20 @@ dependencies: | |
| 94 94 | 
             
                - - "~>"
         | 
| 95 95 | 
             
                  - !ruby/object:Gem::Version
         | 
| 96 96 | 
             
                    version: '11.1'
         | 
| 97 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 98 | 
            +
              name: simplecov
         | 
| 99 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 100 | 
            +
                requirements:
         | 
| 101 | 
            +
                - - "~>"
         | 
| 102 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 103 | 
            +
                    version: '0.18'
         | 
| 104 | 
            +
              type: :development
         | 
| 105 | 
            +
              prerelease: false
         | 
| 106 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 107 | 
            +
                requirements:
         | 
| 108 | 
            +
                - - "~>"
         | 
| 109 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 110 | 
            +
                    version: '0.18'
         | 
| 97 111 | 
             
            description: Ruby source code formatter
         | 
| 98 112 | 
             
            email:
         | 
| 99 113 | 
             
            - blake@blakewilliams.me
         | 
| @@ -104,6 +118,7 @@ extra_rdoc_files: [] | |
| 104 118 | 
             
            files:
         | 
| 105 119 | 
             
            - ".github/workflows/ruby.yml"
         | 
| 106 120 | 
             
            - ".gitignore"
         | 
| 121 | 
            +
            - ".ruby-version"
         | 
| 107 122 | 
             
            - ".travis.yml"
         | 
| 108 123 | 
             
            - Gemfile
         | 
| 109 124 | 
             
            - Gemfile.lock
         | 
| @@ -139,7 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 139 154 | 
             
                - !ruby/object:Gem::Version
         | 
| 140 155 | 
             
                  version: '0'
         | 
| 141 156 | 
             
            requirements: []
         | 
| 142 | 
            -
            rubygems_version: 3. | 
| 157 | 
            +
            rubygems_version: 3.1.2
         | 
| 143 158 | 
             
            signing_key: 
         | 
| 144 159 | 
             
            specification_version: 4
         | 
| 145 160 | 
             
            summary: Ruby source code formatter
         |