brakeman 6.2.2 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (202) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +17 -0
  3. data/bundle/load.rb +7 -6
  4. data/bundle/ruby/3.1.0/gems/csv-3.3.2/LICENSE.txt +33 -0
  5. data/bundle/ruby/3.1.0/gems/csv-3.3.2/NEWS.md +965 -0
  6. data/bundle/ruby/3.1.0/gems/csv-3.3.2/README.md +55 -0
  7. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/core_ext/array.rb +9 -0
  8. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/core_ext/string.rb +9 -0
  9. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/fields_converter.rb +96 -0
  10. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/input_record_separator.rb +18 -0
  11. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/parser.rb +1292 -0
  12. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/row.rb +757 -0
  13. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/table.rb +1055 -0
  14. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/version.rb +6 -0
  15. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv/writer.rb +209 -0
  16. data/bundle/ruby/3.1.0/gems/csv-3.3.2/lib/csv.rb +3017 -0
  17. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/config.rb +22 -26
  18. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/history.rb +3 -3
  19. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/io/ansi.rb +64 -111
  20. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/io/dumb.rb +16 -2
  21. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/io/windows.rb +77 -60
  22. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/io.rb +14 -0
  23. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/key_actor/base.rb +10 -4
  24. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/key_actor/emacs.rb +96 -96
  25. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/key_actor/vi_command.rb +182 -182
  26. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/key_actor/vi_insert.rb +137 -137
  27. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/key_stroke.rb +26 -16
  28. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/line_editor.rb +238 -404
  29. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/unicode.rb +415 -0
  30. data/bundle/ruby/3.1.0/gems/reline-0.6.0/lib/reline/version.rb +3 -0
  31. data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline.rb +18 -18
  32. data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/NEWS.md +50 -0
  33. data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/parsers/baseparser.rb +54 -45
  34. data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/parsers/pullparser.rb +4 -0
  35. data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/rexml.rb +1 -1
  36. data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/source.rb +45 -4
  37. data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/text.rb +15 -40
  38. data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.2 → sexp_processor-4.17.3}/History.rdoc +6 -0
  39. data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.2 → sexp_processor-4.17.3}/lib/sexp.rb +1 -1
  40. data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.2 → sexp_processor-4.17.3}/lib/sexp_processor.rb +1 -1
  41. data/bundle/ruby/3.1.0/gems/terminal-table-3.0.2/History.rdoc +142 -0
  42. data/bundle/ruby/3.1.0/gems/terminal-table-3.0.2/README.md +417 -0
  43. data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/lib/terminal-table/cell.rb +8 -8
  44. data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/lib/terminal-table/row.rb +18 -4
  45. data/bundle/ruby/3.1.0/gems/terminal-table-3.0.2/lib/terminal-table/separator.rb +66 -0
  46. data/bundle/ruby/3.1.0/gems/terminal-table-3.0.2/lib/terminal-table/style.rb +284 -0
  47. data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/lib/terminal-table/table.rb +47 -18
  48. data/bundle/ruby/3.1.0/gems/terminal-table-3.0.2/lib/terminal-table/util.rb +13 -0
  49. data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/lib/terminal-table/version.rb +1 -1
  50. data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/lib/terminal-table.rb +2 -2
  51. data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/terminal-table.gemspec +3 -3
  52. data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/creole.rb +2 -0
  53. data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/liquid.rb +0 -3
  54. data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/mapping.rb +3 -3
  55. data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/rdoc.rb +0 -8
  56. data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/template.rb +27 -3
  57. data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt.rb +1 -4
  58. data/bundle/ruby/3.1.0/gems/{unicode-display_width-1.8.0 → unicode-display_width-2.6.0}/CHANGELOG.md +65 -2
  59. data/bundle/ruby/3.1.0/gems/{unicode-display_width-1.8.0 → unicode-display_width-2.6.0}/MIT-LICENSE.txt +1 -1
  60. data/bundle/ruby/3.1.0/gems/{unicode-display_width-1.8.0 → unicode-display_width-2.6.0}/README.md +67 -20
  61. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/data/display_width.marshal.gz +0 -0
  62. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width/constants.rb +10 -0
  63. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width/index.rb +34 -0
  64. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width/no_string_ext.rb +8 -0
  65. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width/string_ext.rb +9 -0
  66. data/bundle/ruby/3.1.0/gems/unicode-display_width-2.6.0/lib/unicode/display_width.rb +123 -0
  67. data/lib/brakeman/app_tree.rb +23 -18
  68. data/lib/brakeman/checks/check_deserialize.rb +4 -1
  69. data/lib/brakeman/checks/check_evaluation.rb +20 -2
  70. data/lib/brakeman/checks/check_model_attr_accessible.rb +1 -0
  71. data/lib/brakeman/file_parser.rb +2 -1
  72. data/lib/brakeman/options.rb +8 -5
  73. data/lib/brakeman/processors/alias_processor.rb +6 -2
  74. data/lib/brakeman/processors/lib/file_type_detector.rb +9 -7
  75. data/lib/brakeman/report/ignore/config.rb +0 -1
  76. data/lib/brakeman/report/report_sarif.rb +122 -2
  77. data/lib/brakeman/rescanner.rb +40 -390
  78. data/lib/brakeman/scanner.rb +62 -38
  79. data/lib/brakeman/tracker/file_cache.rb +83 -0
  80. data/lib/brakeman/tracker.rb +19 -2
  81. data/lib/brakeman/version.rb +1 -1
  82. data/lib/brakeman.rb +12 -2
  83. metadata +170 -160
  84. data/bundle/ruby/3.1.0/gems/reline-0.5.10/lib/reline/terminfo.rb +0 -158
  85. data/bundle/ruby/3.1.0/gems/reline-0.5.10/lib/reline/unicode.rb +0 -671
  86. data/bundle/ruby/3.1.0/gems/reline-0.5.10/lib/reline/version.rb +0 -3
  87. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/History.rdoc +0 -85
  88. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/README.rdoc +0 -247
  89. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/separator.rb +0 -14
  90. data/bundle/ruby/3.1.0/gems/terminal-table-1.8.0/lib/terminal-table/style.rb +0 -79
  91. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/erubis.rb +0 -51
  92. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/maruku.rb +0 -10
  93. data/bundle/ruby/3.1.0/gems/tilt-2.4.0/lib/tilt/wikicloth.rb +0 -12
  94. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/data/display_width.marshal.gz +0 -0
  95. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/constants.rb +0 -8
  96. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/index.rb +0 -12
  97. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/no_string_ext.rb +0 -7
  98. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width/string_ext.rb +0 -17
  99. data/bundle/ruby/3.1.0/gems/unicode-display_width-1.8.0/lib/unicode/display_width.rb +0 -51
  100. /data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/BSDL +0 -0
  101. /data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/COPYING +0 -0
  102. /data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/README.md +0 -0
  103. /data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/face.rb +0 -0
  104. /data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/key_actor/composite.rb +0 -0
  105. /data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/key_actor.rb +0 -0
  106. /data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/kill_ring.rb +0 -0
  107. /data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/lib/reline/unicode/east_asian_width.rb +0 -0
  108. /data/bundle/ruby/3.1.0/gems/{reline-0.5.10 → reline-0.6.0}/license_of_rb-readline +0 -0
  109. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/LICENSE.txt +0 -0
  110. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/README.md +0 -0
  111. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/attlistdecl.rb +0 -0
  112. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/attribute.rb +0 -0
  113. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/cdata.rb +0 -0
  114. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/child.rb +0 -0
  115. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/comment.rb +0 -0
  116. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/doctype.rb +0 -0
  117. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/document.rb +0 -0
  118. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/dtd/attlistdecl.rb +0 -0
  119. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/dtd/dtd.rb +0 -0
  120. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/dtd/elementdecl.rb +0 -0
  121. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/dtd/entitydecl.rb +0 -0
  122. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/dtd/notationdecl.rb +0 -0
  123. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/element.rb +0 -0
  124. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/encoding.rb +0 -0
  125. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/entity.rb +0 -0
  126. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/formatters/default.rb +0 -0
  127. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/formatters/pretty.rb +0 -0
  128. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/formatters/transitive.rb +0 -0
  129. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/functions.rb +0 -0
  130. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/instruction.rb +0 -0
  131. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/light/node.rb +0 -0
  132. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/namespace.rb +0 -0
  133. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/node.rb +0 -0
  134. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/output.rb +0 -0
  135. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/parent.rb +0 -0
  136. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/parseexception.rb +0 -0
  137. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/parsers/lightparser.rb +0 -0
  138. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/parsers/sax2parser.rb +0 -0
  139. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/parsers/streamparser.rb +0 -0
  140. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/parsers/treeparser.rb +0 -0
  141. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/parsers/ultralightparser.rb +0 -0
  142. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/parsers/xpathparser.rb +0 -0
  143. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/quickpath.rb +0 -0
  144. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/sax2listener.rb +0 -0
  145. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/security.rb +0 -0
  146. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/streamlistener.rb +0 -0
  147. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/undefinednamespaceexception.rb +0 -0
  148. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/validation/relaxng.rb +0 -0
  149. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/validation/validation.rb +0 -0
  150. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/validation/validationexception.rb +0 -0
  151. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/xmldecl.rb +0 -0
  152. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/xmltokens.rb +0 -0
  153. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/xpath.rb +0 -0
  154. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml/xpath_parser.rb +0 -0
  155. /data/bundle/ruby/3.1.0/gems/{rexml-3.3.8 → rexml-3.4.0}/lib/rexml.rb +0 -0
  156. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.2 → sexp_processor-4.17.3}/Manifest.txt +0 -0
  157. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.2 → sexp_processor-4.17.3}/README.rdoc +0 -0
  158. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.2 → sexp_processor-4.17.3}/lib/composite_sexp_processor.rb +0 -0
  159. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.2 → sexp_processor-4.17.3}/lib/pt_testcase.rb +0 -0
  160. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.2 → sexp_processor-4.17.3}/lib/sexp_matcher.rb +0 -0
  161. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.2 → sexp_processor-4.17.3}/lib/strict_sexp.rb +0 -0
  162. /data/bundle/ruby/3.1.0/gems/{sexp_processor-4.17.2 → sexp_processor-4.17.3}/lib/unique.rb +0 -0
  163. /data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/Gemfile +0 -0
  164. /data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/LICENSE.txt +0 -0
  165. /data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/Manifest +0 -0
  166. /data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/Todo.rdoc +0 -0
  167. /data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/lib/terminal-table/import.rb +0 -0
  168. /data/bundle/ruby/3.1.0/gems/{terminal-table-1.8.0 → terminal-table-3.0.2}/lib/terminal-table/table_helper.rb +0 -0
  169. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/COPYING +0 -0
  170. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/_emacs_org.rb +0 -0
  171. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/_handlebars.rb +0 -0
  172. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/_jbuilder.rb +0 -0
  173. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/_org.rb +0 -0
  174. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/asciidoc.rb +0 -0
  175. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/babel.rb +0 -0
  176. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/builder.rb +0 -0
  177. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/cli.rb +0 -0
  178. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/coffee.rb +0 -0
  179. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/commonmarker.rb +0 -0
  180. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/csv.rb +0 -0
  181. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/erb.rb +0 -0
  182. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/erubi.rb +0 -0
  183. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/etanni.rb +0 -0
  184. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/haml.rb +0 -0
  185. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/kramdown.rb +0 -0
  186. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/livescript.rb +0 -0
  187. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/markaby.rb +0 -0
  188. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/nokogiri.rb +0 -0
  189. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/pandoc.rb +0 -0
  190. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/pipeline.rb +0 -0
  191. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/plain.rb +0 -0
  192. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/prawn.rb +0 -0
  193. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/radius.rb +0 -0
  194. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/rdiscount.rb +0 -0
  195. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/redcarpet.rb +0 -0
  196. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/redcloth.rb +0 -0
  197. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/rst-pandoc.rb +0 -0
  198. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/sass.rb +0 -0
  199. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/slim.rb +0 -0
  200. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/string.rb +0 -0
  201. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/typescript.rb +0 -0
  202. /data/bundle/ruby/3.1.0/gems/{tilt-2.4.0 → tilt-2.5.0}/lib/tilt/yajl.rb +0 -0
@@ -0,0 +1,965 @@
1
+ # News
2
+
3
+ ## 3.3.2 - 2024-12-21
4
+
5
+ ### Fixes
6
+
7
+ * Fixed a parse bug with a quoted line with `col_sep` and an empty
8
+ line. This was introduced in 3.3.1.
9
+ * GH-324
10
+ * Reported by stoodfarback
11
+
12
+ ### Thanks
13
+
14
+ * stoodfarback
15
+
16
+ ## 3.3.1 - 2024-12-15
17
+
18
+ ### Improvements
19
+
20
+ * `CSV.open`: Changed to detect BOM by default. Note that this isn't
21
+ enabled on Windows because Ruby may have a bug. See also:
22
+ https://bugs.ruby-lang.org/issues/20526
23
+ * GH-301
24
+ * Reported by Junichi Ito
25
+
26
+ * Improved performance.
27
+ * GH-311
28
+ * GH-312
29
+ * Patch by Vladimir Kochnev
30
+
31
+ * `CSV.open`: Added support for `StringIO` as an input.
32
+ * GH-300
33
+ * GH-302
34
+ * Patch by Marcelo
35
+
36
+ * Added a built-in time converter. You can use it by `converters:
37
+ :time`.
38
+ * GH-313
39
+ * Patch by Bart de Water
40
+
41
+ * Added `CSV::TSV` for tab-separated values.
42
+ * GH-272
43
+ * GH-319
44
+ * Reported by kojix2
45
+ * Patch by Jas
46
+
47
+ ### Thanks
48
+
49
+ * Junichi Ito
50
+
51
+ * Vladimir Kochnev
52
+
53
+ * Marcelo
54
+
55
+ * Bart de Water
56
+
57
+ * kojix2
58
+
59
+ * Jas
60
+
61
+ ## 3.3.0 - 2024-03-22
62
+
63
+ ### Fixes
64
+
65
+ * Fixed a regression parse bug in 3.2.9 that parsing with
66
+ `:skip_lines` may cause wrong result.
67
+
68
+ ## 3.2.9 - 2024-03-22
69
+
70
+ ### Fixes
71
+
72
+ * Fixed a parse bug that wrong result may be happen when:
73
+
74
+ * `:skip_lines` is used
75
+ * `:row_separator` is `"\r\n"`
76
+ * There is a line that includes `\n` as a column value
77
+
78
+ Reported by Ryo Tsukamoto.
79
+
80
+ GH-296
81
+
82
+ ### Thanks
83
+
84
+ * Ryo Tsukamoto
85
+
86
+ ## 3.2.8 - 2023-11-08
87
+
88
+ ### Improvements
89
+
90
+ * Added `CSV::InvalidEncodingError`.
91
+
92
+ Patch by Kosuke Shibata.
93
+
94
+ GH-287
95
+
96
+ ### Thanks
97
+
98
+ * Kosuke Shibata
99
+
100
+ ## 3.2.7 - 2023-06-26
101
+
102
+ ### Improvements
103
+
104
+ * Removed an unused internal variable.
105
+ [GH-273](https://github.com/ruby/csv/issues/273)
106
+ [Patch by Mau Magnaguagno]
107
+
108
+ * Changed to use `https://` instead of `http://` in documents.
109
+ [GH-274](https://github.com/ruby/csv/issues/274)
110
+ [Patch by Vivek Bharath Akupatni]
111
+
112
+ * Added prefix to a helper module in test.
113
+ [GH-278](https://github.com/ruby/csv/issues/278)
114
+ [Patch by Luke Gruber]
115
+
116
+ * Added a documentation for `liberal_parsing: {backslash_quotes: true}`.
117
+ [GH-280](https://github.com/ruby/csv/issues/280)
118
+ [Patch by Mark Schneider]
119
+
120
+ ### Fixes
121
+
122
+ * Fixed a wrong execution result in documents.
123
+ [GH-276](https://github.com/ruby/csv/issues/276)
124
+ [Patch by Yuki Tsujimoto]
125
+
126
+ * Fixed a bug that the same line is used multiple times.
127
+ [GH-279](https://github.com/ruby/csv/issues/279)
128
+ [Reported by Gabriel Nagy]
129
+
130
+ ### Thanks
131
+
132
+ * Mau Magnaguagno
133
+
134
+ * Vivek Bharath Akupatni
135
+
136
+ * Yuki Tsujimoto
137
+
138
+ * Luke Gruber
139
+
140
+ * Mark Schneider
141
+
142
+ * Gabriel Nagy
143
+
144
+ ## 3.2.6 - 2022-12-08
145
+
146
+ ### Improvements
147
+
148
+ * `CSV#read` consumes the same lines with other methods like
149
+ `CSV#shift`.
150
+ [[GitHub#258](https://github.com/ruby/csv/issues/258)]
151
+ [Reported by Lhoussaine Ghallou]
152
+
153
+ * All `Enumerable` based methods consume the same lines with other
154
+ methods. This may have a performance penalty.
155
+ [[GitHub#260](https://github.com/ruby/csv/issues/260)]
156
+ [Reported by Lhoussaine Ghallou]
157
+
158
+ * Simplify some implementations.
159
+ [[GitHub#262](https://github.com/ruby/csv/pull/262)]
160
+ [[GitHub#263](https://github.com/ruby/csv/pull/263)]
161
+ [Patch by Mau Magnaguagno]
162
+
163
+ ### Fixes
164
+
165
+ * Fixed `CSV.generate_lines` document.
166
+ [[GitHub#257](https://github.com/ruby/csv/pull/257)]
167
+ [Patch by Sampat Badhe]
168
+
169
+ ### Thanks
170
+
171
+ * Sampat Badhe
172
+
173
+ * Lhoussaine Ghallou
174
+
175
+ * Mau Magnaguagno
176
+
177
+ ## 3.2.5 - 2022-08-26
178
+
179
+ ### Improvements
180
+
181
+ * Added `CSV.generate_lines`.
182
+ [[GitHub#255](https://github.com/ruby/csv/issues/255)]
183
+ [Reported by OKURA Masafumi]
184
+ [[GitHub#256](https://github.com/ruby/csv/pull/256)]
185
+ [Patch by Eriko Sugiyama]
186
+
187
+ ### Thanks
188
+
189
+ * OKURA Masafumi
190
+
191
+ * Eriko Sugiyama
192
+
193
+ ## 3.2.4 - 2022-08-22
194
+
195
+ ### Improvements
196
+
197
+ * Cleaned up internal implementations.
198
+ [[GitHub#249](https://github.com/ruby/csv/pull/249)]
199
+ [[GitHub#250](https://github.com/ruby/csv/pull/250)]
200
+ [[GitHub#251](https://github.com/ruby/csv/pull/251)]
201
+ [Patch by Mau Magnaguagno]
202
+
203
+ * Added support for RFC 3339 style time.
204
+ [[GitHub#248](https://github.com/ruby/csv/pull/248)]
205
+ [Patch by Thierry Lambert]
206
+
207
+ * Added support for transcoding String CSV. Syntax is
208
+ `from-encoding:to-encoding`.
209
+ [[GitHub#254](https://github.com/ruby/csv/issues/254)]
210
+ [Reported by Richard Stueven]
211
+
212
+ * Added quoted information to `CSV::FieldInfo`.
213
+ [[GitHub#254](https://github.com/ruby/csv/pull/253)]
214
+ [Reported by Hirokazu SUZUKI]
215
+
216
+ ### Fixes
217
+
218
+ * Fixed a link in documents.
219
+ [[GitHub#244](https://github.com/ruby/csv/pull/244)]
220
+ [Patch by Peter Zhu]
221
+
222
+ ### Thanks
223
+
224
+ * Peter Zhu
225
+
226
+ * Mau Magnaguagno
227
+
228
+ * Thierry Lambert
229
+
230
+ * Richard Stueven
231
+
232
+ * Hirokazu SUZUKI
233
+
234
+ ## 3.2.3 - 2022-04-09
235
+
236
+ ### Improvements
237
+
238
+ * Added contents summary to `CSV::Table#inspect`.
239
+ [GitHub#229][Patch by Eriko Sugiyama]
240
+ [GitHub#235][Patch by Sampat Badhe]
241
+
242
+ * Suppressed `$INPUT_RECORD_SEPARATOR` deprecation warning by
243
+ `Warning.warn`.
244
+ [GitHub#233][Reported by Jean byroot Boussier]
245
+
246
+ * Improved error message for liberal parsing with quoted values.
247
+ [GitHub#231][Patch by Nikolay Rys]
248
+
249
+ * Fixed typos in documentation.
250
+ [GitHub#236][Patch by Sampat Badhe]
251
+
252
+ * Added `:max_field_size` option and deprecated `:field_size_limit` option.
253
+ [GitHub#238][Reported by Dan Buettner]
254
+
255
+ * Added `:symbol_raw` to built-in header converters.
256
+ [GitHub#237][Reported by taki]
257
+ [GitHub#239][Patch by Eriko Sugiyama]
258
+
259
+ ### Fixes
260
+
261
+ * Fixed a bug that some texts may be dropped unexpectedly.
262
+ [Bug #18245][ruby-core:105587][Reported by Hassan Abdul Rehman]
263
+
264
+ * Fixed a bug that `:field_size_limit` doesn't work with not complex row.
265
+ [GitHub#238][Reported by Dan Buettner]
266
+
267
+ ### Thanks
268
+
269
+ * Hassan Abdul Rehman
270
+
271
+ * Eriko Sugiyama
272
+
273
+ * Jean byroot Boussier
274
+
275
+ * Nikolay Rys
276
+
277
+ * Sampat Badhe
278
+
279
+ * Dan Buettner
280
+
281
+ * taki
282
+
283
+ ## 3.2.2 - 2021-12-24
284
+
285
+ ### Improvements
286
+
287
+ * Added a validation for invalid option combination.
288
+ [GitHub#225][Patch by adamroyjones]
289
+
290
+ * Improved documentation for developers.
291
+ [GitHub#227][Patch by Eriko Sugiyama]
292
+
293
+ ### Fixes
294
+
295
+ * Fixed a bug that all of `ARGF` contents may not be consumed.
296
+ [GitHub#228][Reported by Rafael Navaza]
297
+
298
+ ### Thanks
299
+
300
+ * adamroyjones
301
+
302
+ * Eriko Sugiyama
303
+
304
+ * Rafael Navaza
305
+
306
+ ## 3.2.1 - 2021-10-23
307
+
308
+ ### Improvements
309
+
310
+ * doc: Fixed wrong class name.
311
+ [GitHub#217][Patch by Vince]
312
+
313
+ * Changed to always use `"\n"` for the default row separator on Ruby
314
+ 3.0 or later because `$INPUT_RECORD_SEPARATOR` was deprecated
315
+ since Ruby 3.0.
316
+
317
+ * Added support for Ractor.
318
+ [GitHub#218][Patch by rm155]
319
+
320
+ * Users who want to use the built-in converters in non-main
321
+ Ractors need to call `Ractor.make_shareable(CSV::Converters)`
322
+ and/or `Ractor.make_shareable(CSV::HeaderConverters)` before
323
+ creating non-main Ractors.
324
+
325
+ ### Thanks
326
+
327
+ * Vince
328
+
329
+ * Joakim Antman
330
+
331
+ * rm155
332
+
333
+ ## 3.2.0 - 2021-06-06
334
+
335
+ ### Improvements
336
+
337
+ * `CSV.open`: Added support for `:newline` option.
338
+ [GitHub#198][Patch by Nobuyoshi Nakada]
339
+
340
+ * `CSV::Table#each`: Added support for column mode with duplicated
341
+ headers.
342
+ [GitHub#206][Reported by Yaroslav Berezovskiy]
343
+
344
+ * `Object#CSV`: Added support for Ruby 3.0.
345
+
346
+ * `CSV::Row`: Added support for pattern matching.
347
+ [GitHub#207][Patch by Kevin Newton]
348
+
349
+ ### Fixes
350
+
351
+ * Fixed typos in documentation.
352
+ [GitHub#196][GitHub#205][Patch by Sampat Badhe]
353
+
354
+ ### Thanks
355
+
356
+ * Sampat Badhe
357
+
358
+ * Nobuyoshi Nakada
359
+
360
+ * Yaroslav Berezovskiy
361
+
362
+ * Kevin Newton
363
+
364
+ ## 3.1.9 - 2020-11-23
365
+
366
+ ### Fixes
367
+
368
+ * Fixed a compatibility bug that the line to be processed by
369
+ `skip_lines:` has a row separator.
370
+ [GitHub#194][Reported by Josef Šimánek]
371
+
372
+ ### Thanks
373
+
374
+ * Josef Šimánek
375
+
376
+ ## 3.1.8 - 2020-11-18
377
+
378
+ ### Improvements
379
+
380
+ * Improved documentation.
381
+ [Patch by Burdette Lamar]
382
+
383
+ ### Thanks
384
+
385
+ * Burdette Lamar
386
+
387
+ ## 3.1.7 - 2020-08-04
388
+
389
+ ### Improvements
390
+
391
+ * Improved document.
392
+ [GitHub#158][GitHub#160][GitHub#161]
393
+ [Patch by Burdette Lamar]
394
+
395
+ * Updated required Ruby version to 2.5.0 or later.
396
+ [GitHub#159]
397
+ [Patch by Gabriel Nagy]
398
+
399
+ * Removed stringio 0.1.3 or later dependency.
400
+
401
+ ### Thanks
402
+
403
+ * Burdette Lamar
404
+
405
+ * Gabriel Nagy
406
+
407
+ ## 3.1.6 - 2020-07-20
408
+
409
+ ### Improvements
410
+
411
+ * Improved document.
412
+ [GitHub#127][GitHub#135][GitHub#136][GitHub#137][GitHub#139][GitHub#140]
413
+ [GitHub#141][GitHub#142][GitHub#143][GitHub#145][GitHub#146][GitHub#148]
414
+ [GitHub#148][GitHub#151][GitHub#152][GitHub#154][GitHub#155][GitHub#157]
415
+ [Patch by Burdette Lamar]
416
+
417
+ * `CSV.open`: Added support for `undef: :replace`.
418
+ [GitHub#129][Patch by Koichi ITO]
419
+
420
+ * `CSV.open`: Added support for `invalid: :replace`.
421
+ [GitHub#129][Patch by Koichi ITO]
422
+
423
+ * Don't run quotable check for invalid encoding field values.
424
+ [GitHub#131][Patch by Koichi ITO]
425
+
426
+ * Added support for specifying the target indexes and names to
427
+ `force_quotes:`.
428
+ [GitHub#153][Reported by Aleksandr]
429
+
430
+ * `CSV.generate`: Changed to use the encoding of the first non-ASCII
431
+ field rather than the encoding of ASCII only field.
432
+
433
+ * Changed to require the stringio gem 0.1.3 or later.
434
+
435
+ ### Thanks
436
+
437
+ * Burdette Lamar
438
+
439
+ * Koichi ITO
440
+
441
+ * Aleksandr
442
+
443
+ ## 3.1.5 - 2020-05-18
444
+
445
+ ### Improvements
446
+
447
+ * Improved document.
448
+ [GitHub#124][Patch by Burdette Lamar]
449
+
450
+ ### Fixes
451
+
452
+ * Added missing document files.
453
+ [GitHub#125][Reported by joast]
454
+
455
+ ### Thanks
456
+
457
+ * Burdette Lamar
458
+
459
+ * joast
460
+
461
+ ## 3.1.4 - 2020-05-17
462
+
463
+ ### Improvements
464
+
465
+ * Improved document.
466
+ [GitHub#122][Patch by Burdette Lamar]
467
+
468
+ * Stopped to dropping stack trace for exception caused by
469
+ `CSV.parse_line`.
470
+ [GitHub#120][Reported by Kyle d'Oliveira]
471
+
472
+ ### Fixes
473
+
474
+ * Fixed a bug that `:write_nil_value` or `:write_empty_value` don't
475
+ work with non `String` objects.
476
+ [GitHub#123][Reported by asm256]
477
+
478
+ ### Thanks
479
+
480
+ * Burdette Lamar
481
+
482
+ * asm256
483
+
484
+ * Kyle d'Oliveira
485
+
486
+ ## 3.1.3 - 2020-05-09
487
+
488
+ ### Improvements
489
+
490
+ * `CSV::Row#dup`: Copied deeply.
491
+ [GitHub#108][Patch by Jim Kane]
492
+
493
+ ### Fixes
494
+
495
+ * Fixed a infinite loop bug for zero length match `skip_lines`.
496
+ [GitHub#110][Patch by Mike MacDonald]
497
+
498
+ * `CSV.generate`: Fixed a bug that encoding isn't set correctly.
499
+ [GitHub#110][Patch by Seiei Miyagi]
500
+
501
+ * Fixed document for the `:strip` option.
502
+ [GitHub#114][Patch by TOMITA Masahiro]
503
+
504
+ * Fixed a parse bug when split charcter exists in middle of column
505
+ value.
506
+ [GitHub#115][Reported by TOMITA Masahiro]
507
+
508
+ ### Thanks
509
+
510
+ * Jim Kane
511
+
512
+ * Mike MacDonald
513
+
514
+ * Seiei Miyagi
515
+
516
+ * TOMITA Masahiro
517
+
518
+ ## 3.1.2 - 2019-10-12
519
+
520
+ ### Improvements
521
+
522
+ * Added `:col_sep` check.
523
+ [GitHub#94][Reported by Florent Beaurain]
524
+
525
+ * Suppressed warnings.
526
+ [GitHub#96][Patch by Nobuyoshi Nakada]
527
+
528
+ * Improved documentation.
529
+ [GitHub#101][GitHub#102][Patch by Vitor Oliveira]
530
+
531
+ ### Fixes
532
+
533
+ * Fixed a typo in documentation.
534
+ [GitHub#95][Patch by Yuji Yaginuma]
535
+
536
+ * Fixed a multibyte character handling bug.
537
+ [GitHub#97][Patch by koshigoe]
538
+
539
+ * Fixed typos in documentation.
540
+ [GitHub#100][Patch by Vitor Oliveira]
541
+
542
+ * Fixed a bug that seeked `StringIO` isn't accepted.
543
+ [GitHub#98][Patch by MATSUMOTO Katsuyoshi]
544
+
545
+ * Fixed a bug that `CSV.generate_line` doesn't work with
546
+ `Encoding.default_internal`.
547
+ [GitHub#105][Reported by David Rodríguez]
548
+
549
+ ### Thanks
550
+
551
+ * Florent Beaurain
552
+
553
+ * Yuji Yaginuma
554
+
555
+ * Nobuyoshi Nakada
556
+
557
+ * koshigoe
558
+
559
+ * Vitor Oliveira
560
+
561
+ * MATSUMOTO Katsuyoshi
562
+
563
+ * David Rodríguez
564
+
565
+ ## 3.1.1 - 2019-04-26
566
+
567
+ ### Improvements
568
+
569
+ * Added documentation for `strip` option.
570
+ [GitHub#88][Patch by hayashiyoshino]
571
+
572
+ * Added documentation for `write_converters`, `write_nil_value` and
573
+ `write_empty_value` options.
574
+ [GitHub#87][Patch by Masafumi Koba]
575
+
576
+ * Added documentation for `quote_empty` option.
577
+ [GitHub#89][Patch by kawa\_tech]
578
+
579
+ ### Fixes
580
+
581
+ * Fixed a bug that `strip; true` removes a newline.
582
+
583
+ ### Thanks
584
+
585
+ * hayashiyoshino
586
+
587
+ * Masafumi Koba
588
+
589
+ * kawa\_tech
590
+
591
+ ## 3.1.0 - 2019-04-17
592
+
593
+ ### Fixes
594
+
595
+ * Fixed a backward incompatibility bug that `CSV#eof?` may raises an
596
+ error.
597
+ [GitHub#86][Reported by krororo]
598
+
599
+ ### Thanks
600
+
601
+ * krororo
602
+
603
+ ## 3.0.9 - 2019-04-15
604
+
605
+ ### Fixes
606
+
607
+ * Fixed a test for Windows.
608
+
609
+ ## 3.0.8 - 2019-04-11
610
+
611
+ ### Fixes
612
+
613
+ * Fixed a bug that `strip: String` doesn't work.
614
+
615
+ ## 3.0.7 - 2019-04-08
616
+
617
+ ### Improvements
618
+
619
+ * Improve parse performance 1.5x by introducing loose parser.
620
+
621
+ ### Fixes
622
+
623
+ * Fix performance regression in 3.0.5.
624
+
625
+ * Fix a bug that `CSV#line` returns wrong value when you
626
+ use `quote_char: nil`.
627
+
628
+ ## 3.0.6 - 2019-03-30
629
+
630
+ ### Improvements
631
+
632
+ * `CSV.foreach`: Added support for `mode`.
633
+
634
+ ## 3.0.5 - 2019-03-24
635
+
636
+ ### Improvements
637
+
638
+ * Added `:liberal_parsing => {backslash_quote: true}` option.
639
+ [GitHub#74][Patch by 284km]
640
+
641
+ * Added `:write_converters` option.
642
+ [GitHub#73][Patch by Danillo Souza]
643
+
644
+ * Added `:write_nil_value` option.
645
+
646
+ * Added `:write_empty_value` option.
647
+
648
+ * Improved invalid byte line number detection.
649
+ [GitHub#78][Patch by Alyssa Ross]
650
+
651
+ * Added `quote_char: nil` optimization.
652
+ [GitHub#79][Patch by 284km]
653
+
654
+ * Improved error message.
655
+ [GitHub#81][Patch by Andrés Torres]
656
+
657
+ * Improved IO-like implementation for `StringIO` data.
658
+ [GitHub#80][Patch by Genadi Samokovarov]
659
+
660
+ * Added `:strip` option.
661
+ [GitHub#58]
662
+
663
+ ### Fixes
664
+
665
+ * Fixed a compatibility bug that `CSV#each` doesn't care `CSV#shift`.
666
+ [GitHub#76][Patch by Alyssa Ross]
667
+
668
+ * Fixed a compatibility bug that `CSV#eof?` doesn't care `CSV#each`
669
+ and `CSV#shift`.
670
+ [GitHub#77][Reported by Chi Leung]
671
+
672
+ * Fixed a compatibility bug that invalid line isn't ignored.
673
+ [GitHub#82][Reported by krororo]
674
+
675
+ * Fixed a bug that `:skip_lines` doesn't work with multibyte characters data.
676
+ [GitHub#83][Reported by ff2248]
677
+
678
+ ### Thanks
679
+
680
+ * Alyssa Ross
681
+
682
+ * 284km
683
+
684
+ * Chi Leung
685
+
686
+ * Danillo Souza
687
+
688
+ * Andrés Torres
689
+
690
+ * Genadi Samokovarov
691
+
692
+ * krororo
693
+
694
+ * ff2248
695
+
696
+ ## 3.0.4 - 2019-01-25
697
+
698
+ ### Improvements
699
+
700
+ * Removed duplicated `CSV::Row#include?` implementations.
701
+ [GitHub#69][Patch by Max Schwenk]
702
+
703
+ * Removed duplicated `CSV::Row#header?` implementations.
704
+ [GitHub#70][Patch by Max Schwenk]
705
+
706
+ ### Fixes
707
+
708
+ * Fixed a typo in document.
709
+ [GitHub#72][Patch by Artur Beljajev]
710
+
711
+ * Fixed a compatibility bug when row headers are changed.
712
+ [GitHub#71][Reported by tomoyuki kosaka]
713
+
714
+ ### Thanks
715
+
716
+ * Max Schwenk
717
+
718
+ * Artur Beljajev
719
+
720
+ * tomoyuki kosaka
721
+
722
+ ## 3.0.3 - 2019-01-12
723
+
724
+ ### Improvements
725
+
726
+ * Migrated benchmark tool to benchmark-driver from benchmark-ips.
727
+ [GitHub#57][Patch by 284km]
728
+
729
+ * Added `liberal_parsing: {double_quote_outside_quote: true}` parse
730
+ option.
731
+ [GitHub#66][Reported by Watson]
732
+
733
+ * Added `quote_empty:` write option.
734
+ [GitHub#35][Reported by Dave Myron]
735
+
736
+ ### Fixes
737
+
738
+ * Fixed a compatibility bug that `CSV.generate` always return
739
+ `ASCII-8BIT` encoding string.
740
+ [GitHub#63][Patch by Watson]
741
+
742
+ * Fixed a compatibility bug that `CSV.parse("", headers: true)`
743
+ doesn't return `CSV::Table`.
744
+ [GitHub#64][Reported by Watson][Patch by 284km]
745
+
746
+ * Fixed a compatibility bug that multiple-characters column
747
+ separator doesn't work.
748
+ [GitHub#67][Reported by Jesse Reiss]
749
+
750
+ * Fixed a compatibility bug that double `#each` parse twice.
751
+ [GitHub#68][Reported by Max Schwenk]
752
+
753
+ ### Thanks
754
+
755
+ * Watson
756
+
757
+ * 284km
758
+
759
+ * Jesse Reiss
760
+
761
+ * Dave Myron
762
+
763
+ * Max Schwenk
764
+
765
+ ## 3.0.2 - 2018-12-23
766
+
767
+ ### Improvements
768
+
769
+ * Changed to use strscan in parser.
770
+ [GitHub#52][Patch by 284km]
771
+
772
+ * Improves CSV write performance.
773
+ 3.0.2 will be about 2 times faster than 3.0.1.
774
+
775
+ * Improves CSV parse performance for complex case.
776
+ 3.0.2 will be about 2 times faster than 3.0.1.
777
+
778
+ ### Fixes
779
+
780
+ * Fixed a parse error bug for new line only input with `headers` option.
781
+ [GitHub#53][Reported by Chris Beer]
782
+
783
+ * Fixed some typos in document.
784
+ [GitHub#54][Patch by Victor Shepelev]
785
+
786
+ ### Thanks
787
+
788
+ * 284km
789
+
790
+ * Chris Beer
791
+
792
+ * Victor Shepelev
793
+
794
+ ## 3.0.1 - 2018-12-07
795
+
796
+ ### Improvements
797
+
798
+ * Added a test.
799
+ [GitHub#38][Patch by 284km]
800
+
801
+ * `CSV::Row#dup`: Changed to duplicate internal data.
802
+ [GitHub#39][Reported by André Guimarães Sakata]
803
+
804
+ * Documented `:nil_value` and `:empty_value` options.
805
+ [GitHub#41][Patch by OwlWorks]
806
+
807
+ * Added support for separator detection for non-seekable inputs.
808
+ [GitHub#45][Patch by Ilmari Karonen]
809
+
810
+ * Removed needless code.
811
+ [GitHub#48][Patch by Espartaco Palma]
812
+
813
+ * Added support for parsing header only CSV with `headers: true`.
814
+ [GitHub#47][Patch by Kazuma Shibasaka]
815
+
816
+ * Added support for coverage report in CI.
817
+ [GitHub#48][Patch by Espartaco Palma]
818
+
819
+ * Improved auto CR row separator detection.
820
+ [GitHub#51][Reported by Yuki Kurihara]
821
+
822
+ ### Fixes
823
+
824
+ * Fixed a typo in document.
825
+ [GitHub#40][Patch by Marcus Stollsteimer]
826
+
827
+ ### Thanks
828
+
829
+ * 284km
830
+
831
+ * André Guimarães Sakata
832
+
833
+ * Marcus Stollsteimer
834
+
835
+ * OwlWorks
836
+
837
+ * Ilmari Karonen
838
+
839
+ * Espartaco Palma
840
+
841
+ * Kazuma Shibasaka
842
+
843
+ * Yuki Kurihara
844
+
845
+ ## 3.0.0 - 2018-06-06
846
+
847
+ ### Fixes
848
+
849
+ * Fixed a bug that header isn't returned for empty row.
850
+ [GitHub#37][Patch by Grace Lee]
851
+
852
+ ### Thanks
853
+
854
+ * Grace Lee
855
+
856
+ ## 1.0.2 - 2018-05-03
857
+
858
+ ### Improvements
859
+
860
+ * Split file for CSV::VERSION
861
+
862
+ * Code cleanup: Split csv.rb into a more manageable structure
863
+ [GitHub#19][Patch by Espartaco Palma]
864
+ [GitHub#20][Patch by Steven Daniels]
865
+
866
+ * Use CSV::MalformedCSVError for invalid encoding line
867
+ [GitHub#26][Reported by deepj]
868
+
869
+ * Support implicit Row <-> Array conversion
870
+ [Bug #10013][ruby-core:63582][Reported by Dawid Janczak]
871
+
872
+ * Update class docs
873
+ [GitHub#32][Patch by zverok]
874
+
875
+ * Add `Row#each_pair`
876
+ [GitHub#33][Patch by zverok]
877
+
878
+ * Improve CSV performance
879
+ [GitHub#30][Patch by Watson]
880
+
881
+ * Add :nil_value and :empty_value option
882
+
883
+ ### Fixes
884
+
885
+ * Fix a bug that "bom|utf-8" doesn't work
886
+ [GitHub#23][Reported by Pavel Lobashov]
887
+
888
+ * `CSV::Row#to_h`, `#to_hash`: uses the same value as `Row#[]`
889
+ [Bug #14482][Reported by tomoya ishida]
890
+
891
+ * Make row separator detection more robust
892
+ [GitHub#25][Reported by deepj]
893
+
894
+ * Fix a bug that too much separator when col_sep is `" "`
895
+ [Bug #8784][ruby-core:63582][Reported by Sylvain Laperche]
896
+
897
+ ### Thanks
898
+
899
+ * Espartaco Palma
900
+
901
+ * Steven Daniels
902
+
903
+ * deepj
904
+
905
+ * Dawid Janczak
906
+
907
+ * zverok
908
+
909
+ * Watson
910
+
911
+ * Pavel Lobashov
912
+
913
+ * tomoya ishida
914
+
915
+ * Sylvain Laperche
916
+
917
+ * Ryunosuke Sato
918
+
919
+ ## 1.0.1 - 2018-02-09
920
+
921
+ ### Improvements
922
+
923
+ * `CSV::Table#delete`: Added bulk delete support. You can delete
924
+ multiple rows and columns at once.
925
+ [GitHub#4][Patch by Vladislav]
926
+
927
+ * Updated Gem description.
928
+ [GitHub#11][Patch by Marcus Stollsteimer]
929
+
930
+ * Code cleanup.
931
+ [GitHub#12][Patch by Marcus Stollsteimer]
932
+ [GitHub#14][Patch by Steven Daniels]
933
+ [GitHub#18][Patch by takkanm]
934
+
935
+ * `CSV::Table#dig`: Added.
936
+ [GitHub#15][Patch by Tomohiro Ogoke]
937
+
938
+ * `CSV::Row#dig`: Added.
939
+ [GitHub#15][Patch by Tomohiro Ogoke]
940
+
941
+ * Added ISO 8601 support to date time converter.
942
+ [GitHub#16]
943
+
944
+ ### Fixes
945
+
946
+ * Fixed wrong `CSV::VERSION`.
947
+ [GitHub#10][Reported by Marcus Stollsteimer]
948
+
949
+ * `CSV.generate`: Fixed a regression bug that `String` argument is
950
+ ignored.
951
+ [GitHub#13][Patch by pavel]
952
+
953
+ ### Thanks
954
+
955
+ * Vladislav
956
+
957
+ * Marcus Stollsteimer
958
+
959
+ * Steven Daniels
960
+
961
+ * takkanm
962
+
963
+ * Tomohiro Ogoke
964
+
965
+ * pavel