brakeman 3.7.0 → 3.7.1
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/CHANGES +8 -0
- data/bin/brakeman +2 -96
- data/bundle/load.rb +6 -6
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.2/History.txt → ruby2ruby-2.4.0/History.rdoc} +15 -0
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.2 → ruby2ruby-2.4.0}/Manifest.txt +2 -2
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.2/README.txt → ruby2ruby-2.4.0/README.rdoc} +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.2 → ruby2ruby-2.4.0}/Rakefile +1 -0
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.2 → ruby2ruby-2.4.0}/bin/r2r_show +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.2 → ruby2ruby-2.4.0}/lib/ruby2ruby.rb +427 -364
- data/bundle/ruby/2.3.0/gems/{ruby2ruby-2.3.2 → ruby2ruby-2.4.0}/test/test_ruby2ruby.rb +1 -4
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/History.rdoc +24 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/Manifest.txt +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/README.rdoc +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/Rakefile +2 -2
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/bin/ruby_parse +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/bin/ruby_parse_extract_error +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/compare/normalize.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/rp_extensions.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/rp_stringscanner.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby18_parser.rb +1604 -1602
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby18_parser.y +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby19_parser.rb +1555 -1553
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby19_parser.y +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby20_parser.rb +1760 -1756
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby20_parser.y +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby21_parser.rb +1887 -1891
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby21_parser.y +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby22_parser.rb +1861 -1861
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby22_parser.y +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby23_parser.rb +1692 -1691
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby23_parser.y +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby24_parser.rb +1692 -1691
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby24_parser.y +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby_lexer.rb +6 -4
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby_lexer.rex +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby_lexer.rex.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby_parser.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby_parser.yy +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/lib/ruby_parser_extras.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/test/test_ruby_lexer.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/test/test_ruby_parser.rb +9 -0
- data/bundle/ruby/2.3.0/gems/{ruby_parser-3.9.0 → ruby_parser-3.10.1}/test/test_ruby_parser_extras.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/CODE_OF_CONDUCT.md +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/CONTRIBUTING.md +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/MIT-LICENSE +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/README.md +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/REVISION +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/Rakefile +39 -10
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/VERSION +1 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/VERSION_DATE +1 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/VERSION_NAME +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/bin/sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/bin/sass-convert +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/bin/scss +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/extra/sass-spec-ref.sh +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/extra/update_watch.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/init.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass.rb +3 -3
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/cache_stores.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/cache_stores/base.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/cache_stores/chain.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/cache_stores/filesystem.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/cache_stores/memory.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/cache_stores/null.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/callbacks.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/css.rb +1 -1
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/lib/sass/deprecation.rb +55 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/engine.rb +13 -5
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/environment.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/error.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/exec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/exec/base.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/exec/sass_convert.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/exec/sass_scss.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/features.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/importers.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/importers/base.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/importers/deprecated_path.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/importers/filesystem.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/logger.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/logger/base.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/logger/delayed.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/logger/log_level.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/media.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/plugin.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/plugin/compiler.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/plugin/configuration.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/plugin/generic.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/plugin/merb.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/plugin/rack.rb +2 -2
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/plugin/rails.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/plugin/staleness_checker.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/railtie.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/repl.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/root.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/css_lexer.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/css_parser.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/css_variable_warning.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/functions.rb +2 -2
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/lexer.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/parser.rb +4 -3
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/funcall.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/interpolation.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/list_literal.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/literal.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/map_literal.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/node.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/operation.rb +43 -16
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/selector.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/string_interpolation.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/unary_operation.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/tree/variable.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value/arg_list.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value/base.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value/bool.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value/color.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value/helpers.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value/list.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value/map.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value/null.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value/number.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/script/value/string.rb +5 -12
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/scss.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/scss/css_parser.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/scss/parser.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/scss/rx.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/scss/static_parser.rb +7 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/selector.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/selector/abstract_sequence.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/selector/comma_sequence.rb +13 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/selector/pseudo.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/selector/sequence.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/selector/simple.rb +1 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/selector/simple_sequence.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/shared.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/source/map.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/source/position.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/source/range.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/stack.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/supports.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/at_root_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/charset_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/comment_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/content_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/css_import_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/debug_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/directive_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/each_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/error_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/extend_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/for_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/function_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/if_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/import_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/keyframe_rule_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/media_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/mixin_def_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/mixin_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/node.rb +2 -2
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/prop_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/return_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/root_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/rule_node.rb +13 -4
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/supports_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/trace_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/variable_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/visitors/base.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/visitors/check_nesting.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/visitors/convert.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/visitors/cssize.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/visitors/deep_copy.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/visitors/extend.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/visitors/perform.rb +3 -2
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/visitors/set_options.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/visitors/to_css.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/warn_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/tree/while_node.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/util.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/util/cross_platform_random.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/util/multibyte_string_scanner.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/util/normalized_map.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/util/ordered_hash.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/util/subset_map.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/util/test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/lib/sass/version.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/rails/init.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass-spec.yml +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/cache_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/callbacks_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/compiler_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/conversion_test.rb +3 -3
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/css2sass_test.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/css_variable_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/data/hsl-rgb.txt +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/encoding_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/engine_test.rb +56 -50
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/exec_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/extend_test.rb +14 -8
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/fixtures/test_staleness_check_across_importers.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/fixtures/test_staleness_check_across_importers.scss +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/functions_test.rb +5 -2
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/importer_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/logger_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/mock_importer.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/more_results/more1.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/more_results/more1_with_line_comments.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/more_results/more_import.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/more_templates/_more_partial.sass +0 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/more_templates/more1.sass +23 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/more_templates/more_import.sass +2 -2
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/plugin_test.rb +3 -3
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/alt.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/basic.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/cached_import_option.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/compact.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/complex.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/compressed.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/expanded.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/filename_fn.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/if.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/import.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/import_charset.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/import_charset_1_8.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/import_charset_ibm866.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/import_content.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/line_numbers.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/mixins.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/multiline.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/nested.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/options.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/parent_ref.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/script.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/scss_import.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/scss_importee.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/subdir/nested_subdir/nested_subdir.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/subdir/subdir.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/units.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/warn.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/results/warn_imported.css +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/script_conversion_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/script_test.rb +38 -29
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/scss/css_test.rb +2 -2
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/scss/rx_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/scss/scss_test.rb +25 -10
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/scss/test_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/source_map_test.rb +13 -13
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/superselector_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/_cached_import_option_partial.scss +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/_double_import_loop2.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/_filename_fn_import.scss +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/_imported_charset_ibm866.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/_imported_charset_utf8.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/_imported_content.sass +0 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/_partial.sass +2 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/_same_name_different_partiality.scss +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/alt.sass +0 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/basic.sass +23 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/bork1.sass +2 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/bork2.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/bork3.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/bork4.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/bork5.sass +1 -1
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/cached_import_option.scss +0 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/compact.sass +17 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/complex.sass +305 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/compressed.sass +15 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/double_import_loop1.sass +0 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/expanded.sass +17 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/filename_fn.scss +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/if.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/import.sass +2 -2
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/import_charset.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/import_charset_1_8.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/import_charset_ibm866.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/import_content.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/importee.less +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/importee.sass +3 -3
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/line_numbers.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/mixin_bork.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/mixins.sass +22 -22
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/multiline.sass +4 -4
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/nested.sass +25 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/nested_bork1.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/nested_bork2.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/nested_bork3.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/nested_bork4.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/nested_import.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/nested_mixin_bork.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/options.sass +0 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/parent_ref.sass +25 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/same_name_different_ext.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/same_name_different_ext.scss +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/same_name_different_partiality.scss +0 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/script.sass +101 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/scss_import.scss +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/scss_importee.scss +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/single_import_loop.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/subdir/import_up1.scss +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/subdir/import_up2.scss +0 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +2 -0
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +3 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/subdir/subdir.sass +3 -3
- data/bundle/ruby/2.3.0/gems/sass-3.4.25/test/sass/templates/units.sass +11 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/warn.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/templates/warn_imported.sass +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/test_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/util/multibyte_string_scanner_test.rb +10 -2
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/util/normalized_map_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/util/subset_map_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/util_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/sass/value_helpers_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/test/test_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/CHANGELOG.md +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/CONTRIBUTING.md +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/Gemfile +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/Guardfile +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/LICENSE +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/README.md +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/Rakefile +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/Vagrantfile +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen/adapter.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen/adapters/bsd.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen/adapters/darwin.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen/adapters/linux.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen/adapters/polling.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen/adapters/windows.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen/directory_record.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen/listener.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen/turnstile.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/lib/listen/version.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/listen.gemspec +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/listen/adapter_spec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/listen/adapters/bsd_spec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/listen/adapters/darwin_spec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/listen/adapters/linux_spec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/listen/adapters/polling_spec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/listen/adapters/windows_spec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/listen/directory_record_spec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/listen/listener_spec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/listen/turnstile_spec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/listen_spec.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/spec_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/support/adapter_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/support/directory_record_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/support/fixtures_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/support/listeners_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sass-3.4.24 → sass-3.4.25}/vendor/listen/spec/support/platform_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/History.txt +49 -0
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/Manifest.txt +1 -0
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/README.txt +36 -7
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/Rakefile +4 -0
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/lib/composite_sexp_processor.rb +4 -4
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/lib/pt_testcase.rb +21 -25
- data/bundle/ruby/2.3.0/gems/sexp_processor-4.10.0/lib/sexp.rb +1414 -0
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/lib/sexp_processor.rb +127 -65
- data/bundle/ruby/2.3.0/gems/sexp_processor-4.10.0/lib/strict_sexp.rb +126 -0
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/lib/unique.rb +7 -1
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/test/test_composite_sexp_processor.rb +9 -12
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/test/test_environment.rb +2 -2
- data/bundle/ruby/2.3.0/gems/sexp_processor-4.10.0/test/test_sexp.rb +1630 -0
- data/bundle/ruby/2.3.0/gems/{sexp_processor-4.9.0 → sexp_processor-4.10.0}/test/test_sexp_processor.rb +65 -52
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/CHANGELOG.md +10 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/COPYING +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/Gemfile +3 -5
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/HACKING +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/README.md +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/Rakefile +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/bin/tilt +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/docs/TEMPLATES.md +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/docs/common.css +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt.rb +2 -2
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/asciidoc.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/babel.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/bluecloth.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/builder.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/coffee.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/commonmarker.rb +1 -1
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/creole.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/csv.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/dummy.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/erb.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/erubi.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/erubis.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/etanni.rb +0 -0
- data/bundle/ruby/2.3.0/gems/tilt-2.0.8/lib/tilt/haml.rb +86 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/kramdown.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/less.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/liquid.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/livescript.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/mapping.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/markaby.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/maruku.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/nokogiri.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/pandoc.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/plain.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/prawn.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/radius.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/rdiscount.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/rdoc.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/redcarpet.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/redcloth.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/rst-pandoc.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/sass.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/sigil.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/string.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/template.rb +1 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/typescript.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/wikicloth.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/lib/tilt/yajl.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/man/index.txt +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/man/tilt.1.ronn +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/markaby/locals.mab +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/markaby/markaby.mab +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/markaby/markaby_other_static.mab +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/markaby/render_twice.mab +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/markaby/scope.mab +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/markaby/yielding.mab +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/mytemplate.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/test_helper.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_asciidoctor_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_babeltemplate.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_blueclothtemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_buildertemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_cache_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_coffeescripttemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_commonmarkertemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_compilesite_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_creoletemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_csv_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_erbtemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_erubistemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_erubitemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_etannitemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_hamltemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_kramdown_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_lesstemplate_test.less +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_lesstemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_liquidtemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_livescripttemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_mapping_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_markaby_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_markdown_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_marukutemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_metadata_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_nokogiritemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_pandoctemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_prawntemplate.prawn +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_prawntemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_radiustemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_rdiscounttemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_rdoctemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_redcarpettemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_redclothtemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_rstpandoctemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_sasstemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_sigil_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_stringtemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_template_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_typescript_test.rb +4 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_wikiclothtemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/test/tilt_yajltemplate_test.rb +0 -0
- data/bundle/ruby/2.3.0/gems/{tilt-2.0.7 → tilt-2.0.8}/tilt.gemspec +2 -2
- data/lib/brakeman.rb +8 -0
- data/lib/brakeman/commandline.rb +179 -0
- data/lib/brakeman/options.rb +17 -13
- data/lib/brakeman/processors/alias_processor.rb +11 -1
- data/lib/brakeman/processors/output_processor.rb +15 -16
- data/lib/brakeman/processors/template_alias_processor.rb +3 -1
- data/lib/brakeman/version.rb +1 -1
- data/lib/ruby_parser/bm_sexp.rb +2 -2
- metadata +467 -464
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/VERSION +0 -1
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/VERSION_DATE +0 -1
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/more_templates/more1.sass +0 -23
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/_partial.sass +0 -2
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/basic.sass +0 -23
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/bork1.sass +0 -2
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/compact.sass +0 -17
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/complex.sass +0 -305
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/compressed.sass +0 -15
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/expanded.sass +0 -17
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/nested.sass +0 -25
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/parent_ref.sass +0 -25
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/script.sass +0 -101
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/subdir/nested_subdir/_nested_partial.sass +0 -2
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/subdir/nested_subdir/nested_subdir.sass +0 -3
- data/bundle/ruby/2.3.0/gems/sass-3.4.24/test/sass/templates/units.sass +0 -11
- data/bundle/ruby/2.3.0/gems/sexp_processor-4.9.0/lib/sexp.rb +0 -371
- data/bundle/ruby/2.3.0/gems/sexp_processor-4.9.0/test/test_sexp.rb +0 -432
- data/bundle/ruby/2.3.0/gems/tilt-2.0.7/lib/tilt/haml.rb +0 -58
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da5b5fcb02654cf54defd90afb082302be83276e
|
4
|
+
data.tar.gz: aa09210de4a6ae49569cfc95c8218e245f14752c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 853ae6a67ff0930d92bacab123b218e41e1a35d4c0cdf1be8507cc1a7d373bd400658d9f71d4cfa764f5c8806936970211fae9c0d191bfe9012bf9b003704f4e
|
7
|
+
data.tar.gz: c591a084ca445de3471a85147e56441a156e82ee639b4c7a4b236f5d4803091ec02cbcd3bca2ecfab7eb030d3be5c168b6258547338dd83344acda5ac7dc5c9d
|
data/CHANGES
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
# 3.7.1
|
2
|
+
|
3
|
+
* Handle simple guard with return at end of branch
|
4
|
+
* Modularize bin/brakeman
|
5
|
+
* Improve multi-value Sexp error message
|
6
|
+
* Add more collection methods for iteration detection
|
7
|
+
* Update ruby2ruby and ruby_parser
|
8
|
+
|
1
9
|
# 3.7.0
|
2
10
|
|
3
11
|
* Improve support for rails4/rails5 options in config file
|
data/bin/brakeman
CHANGED
@@ -3,100 +3,6 @@
|
|
3
3
|
$:.unshift "#{File.expand_path(File.dirname(__FILE__))}/../lib"
|
4
4
|
|
5
5
|
require 'brakeman'
|
6
|
-
require 'brakeman/
|
7
|
-
require 'brakeman/version'
|
6
|
+
require 'brakeman/commandline'
|
8
7
|
|
9
|
-
|
10
|
-
begin
|
11
|
-
options, parser = Brakeman::Options.parse! ARGV
|
12
|
-
rescue OptionParser::ParseError => e
|
13
|
-
$stderr.puts e.message
|
14
|
-
$stderr.puts "Please see `brakeman --help` for valid options"
|
15
|
-
exit(-1)
|
16
|
-
end
|
17
|
-
|
18
|
-
#Exit early for these options
|
19
|
-
if options[:list_checks] or options[:list_optional_checks]
|
20
|
-
Brakeman.list_checks options
|
21
|
-
exit
|
22
|
-
elsif options[:create_config]
|
23
|
-
Brakeman.dump_config options
|
24
|
-
exit
|
25
|
-
elsif options[:show_help]
|
26
|
-
puts parser
|
27
|
-
exit
|
28
|
-
elsif options[:show_version]
|
29
|
-
puts "brakeman #{Brakeman::Version}"
|
30
|
-
exit
|
31
|
-
end
|
32
|
-
|
33
|
-
#Set application path according to the commandline arguments
|
34
|
-
unless options[:app_path]
|
35
|
-
if ARGV[-1].nil?
|
36
|
-
options[:app_path] = "."
|
37
|
-
else
|
38
|
-
options[:app_path] = ARGV[-1]
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
trap("INT") do
|
43
|
-
$stderr.puts "\nInterrupted - exiting."
|
44
|
-
|
45
|
-
if options[:debug]
|
46
|
-
$stderr.puts caller
|
47
|
-
end
|
48
|
-
|
49
|
-
exit!
|
50
|
-
end
|
51
|
-
|
52
|
-
if options[:quiet].nil?
|
53
|
-
options[:quiet] = :command_line
|
54
|
-
end
|
55
|
-
|
56
|
-
begin
|
57
|
-
if options[:ensure_latest]
|
58
|
-
if error = Brakeman.ensure_latest
|
59
|
-
warn error
|
60
|
-
exit Brakeman::Not_Latest_Version_Exit_Code
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
if options[:previous_results_json]
|
65
|
-
require 'json'
|
66
|
-
vulns = Brakeman.compare options.merge(:quiet => options[:quiet])
|
67
|
-
|
68
|
-
if options[:comparison_output_file]
|
69
|
-
File.open options[:comparison_output_file], "w" do |f|
|
70
|
-
f.puts JSON.pretty_generate(vulns)
|
71
|
-
end
|
72
|
-
|
73
|
-
Brakeman.notify "Comparison saved in '#{options[:comparison_output_file]}'"
|
74
|
-
else
|
75
|
-
puts JSON.pretty_generate(vulns)
|
76
|
-
end
|
77
|
-
|
78
|
-
if options[:exit_on_warn] && vulns[:new].count > 0
|
79
|
-
exit Brakeman::Warnings_Found_Exit_Code
|
80
|
-
end
|
81
|
-
else
|
82
|
-
#Run scan and output a report
|
83
|
-
tracker = Brakeman.run options.merge(:print_report => true, :quiet => options[:quiet])
|
84
|
-
|
85
|
-
#Return error code if --exit-on-warn is used and warnings were found
|
86
|
-
if tracker.options[:exit_on_warn] and not tracker.filtered_warnings.empty?
|
87
|
-
exit Brakeman::Warnings_Found_Exit_Code
|
88
|
-
end
|
89
|
-
|
90
|
-
#Return error code if --exit-on-error is used and errors were found
|
91
|
-
if tracker.options[:exit_on_error] and tracker.errors.any?
|
92
|
-
exit Brakeman::Errors_Found_Exit_Code
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
rescue Brakeman::NoApplication => e
|
97
|
-
warn e.message
|
98
|
-
exit Brakeman::No_App_Found_Exit_Code
|
99
|
-
rescue Brakeman::MissingChecksError => e
|
100
|
-
warn e.message
|
101
|
-
exit Brakeman::Missing_Checks_Exit_Code
|
102
|
-
end
|
8
|
+
Brakeman::Commandline.start
|
data/bundle/load.rb
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
path = File.expand_path('../..', __FILE__)
|
2
|
-
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/sass-3.4.24/lib"
|
3
|
-
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/sass-3.4.24/vendor/listen/lib"
|
4
2
|
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/haml-4.0.7/lib"
|
5
3
|
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/highline-1.7.8/lib"
|
6
|
-
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/
|
4
|
+
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/ruby2ruby-2.4.0/lib"
|
5
|
+
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/sass-3.4.25/lib"
|
6
|
+
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/sass-3.4.25/vendor/listen/lib"
|
7
|
+
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/tilt-2.0.8/lib"
|
7
8
|
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/temple-0.7.7/lib"
|
8
9
|
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/unicode-display_width-1.3.0/lib"
|
9
|
-
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/sexp_processor-4.
|
10
|
-
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/
|
10
|
+
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/sexp_processor-4.10.0/lib"
|
11
|
+
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/ruby_parser-3.10.1/lib"
|
11
12
|
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/terminal-table-1.8.0/lib"
|
12
|
-
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/tilt-2.0.7/lib"
|
13
13
|
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/slim-3.0.7/lib"
|
14
14
|
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/erubis-2.7.0/lib"
|
15
15
|
$:.unshift "#{path}/bundle/ruby/2.3.0/gems/safe_yaml-1.0.4/lib"
|
@@ -1,3 +1,18 @@
|
|
1
|
+
=== 2.4.0 / 2017-07-17
|
2
|
+
|
3
|
+
* 1 major enhancement:
|
4
|
+
|
5
|
+
* Major overhaul. Process methods no longer mutate arguments.
|
6
|
+
|
7
|
+
* 1 minor enhancement:
|
8
|
+
|
9
|
+
* Now SEXP_STRICT=1 clean.
|
10
|
+
|
11
|
+
* 2 bug fixes:
|
12
|
+
|
13
|
+
* Fixed 2.4 Fixnum deprecation warning
|
14
|
+
* Fixed for new 24 parser.
|
15
|
+
|
1
16
|
=== 2.3.2 / 2016-11-30
|
2
17
|
|
3
18
|
* 5 bug fixes:
|
File without changes
|
File without changes
|
@@ -31,7 +31,7 @@ end
|
|
31
31
|
# Generate ruby code from a sexp.
|
32
32
|
|
33
33
|
class Ruby2Ruby < SexpProcessor
|
34
|
-
VERSION = "2.
|
34
|
+
VERSION = "2.4.0" # :nodoc:
|
35
35
|
|
36
36
|
# cutoff for one-liners
|
37
37
|
LINE_LENGTH = 78
|
@@ -82,7 +82,7 @@ class Ruby2Ruby < SexpProcessor
|
|
82
82
|
def initialize # :nodoc:
|
83
83
|
super
|
84
84
|
@indent = " "
|
85
|
-
self.
|
85
|
+
self.require_empty = false
|
86
86
|
self.strict = true
|
87
87
|
self.expected = String
|
88
88
|
|
@@ -94,71 +94,72 @@ class Ruby2Ruby < SexpProcessor
|
|
94
94
|
############################################################
|
95
95
|
# Processors
|
96
96
|
|
97
|
-
def process_alias
|
98
|
-
|
97
|
+
def process_alias exp # :nodoc:
|
98
|
+
_, lhs, rhs = exp
|
99
|
+
|
100
|
+
parenthesize "alias #{process lhs} #{process rhs}"
|
99
101
|
end
|
100
102
|
|
101
|
-
def process_and
|
102
|
-
|
103
|
+
def process_and exp # :nodoc:
|
104
|
+
_, lhs, rhs = exp
|
105
|
+
|
106
|
+
parenthesize "#{process lhs} and #{process rhs}"
|
103
107
|
end
|
104
108
|
|
105
|
-
def process_arglist
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
end
|
113
|
-
code.join ', '
|
109
|
+
def process_arglist exp # custom made node # :nodoc:
|
110
|
+
_, *args = exp
|
111
|
+
|
112
|
+
args.map { |arg|
|
113
|
+
code = process arg
|
114
|
+
arg.sexp_type == :rescue ? "(#{code})" : code
|
115
|
+
}.join ", "
|
114
116
|
end
|
115
117
|
|
116
|
-
def process_args
|
117
|
-
args =
|
118
|
+
def process_args exp # :nodoc:
|
119
|
+
_, *args = exp
|
118
120
|
|
119
|
-
|
120
|
-
arg = exp.shift
|
121
|
+
args = args.map { |arg|
|
121
122
|
case arg
|
122
123
|
when Symbol then
|
123
|
-
|
124
|
+
arg
|
124
125
|
when Sexp then
|
125
|
-
case arg.
|
126
|
+
case arg.sexp_type
|
126
127
|
when :lasgn then
|
127
|
-
|
128
|
+
process(arg)
|
128
129
|
when :masgn then
|
129
|
-
|
130
|
+
process(arg)
|
130
131
|
when :kwarg then
|
131
132
|
_, k, v = arg
|
132
|
-
|
133
|
+
"#{k}: #{process v}"
|
133
134
|
else
|
134
135
|
raise "unknown arg type #{arg.first.inspect}"
|
135
136
|
end
|
136
137
|
else
|
137
138
|
raise "unknown arg type #{arg.inspect}"
|
138
139
|
end
|
139
|
-
|
140
|
+
}
|
140
141
|
|
141
142
|
"(#{args.join ', '})"
|
142
143
|
end
|
143
144
|
|
144
|
-
def process_array
|
145
|
-
"[#{process_arglist
|
145
|
+
def process_array exp # :nodoc:
|
146
|
+
"[#{process_arglist exp}]"
|
146
147
|
end
|
147
148
|
|
148
|
-
def process_attrasgn
|
149
|
-
|
150
|
-
|
151
|
-
rhs
|
152
|
-
args = s(:array, *
|
153
|
-
|
149
|
+
def process_attrasgn exp # :nodoc:
|
150
|
+
_, recv, name, *args = exp
|
151
|
+
|
152
|
+
rhs = args.pop
|
153
|
+
args = s(:array, *args)
|
154
|
+
receiver = process recv
|
154
155
|
|
155
156
|
case name
|
156
157
|
when :[]= then
|
157
158
|
args = process args
|
158
159
|
"#{receiver}#{args} = #{process rhs}"
|
159
160
|
else
|
160
|
-
raise "dunno what to do: #{args.inspect}"
|
161
|
-
name = name.to_s.
|
161
|
+
raise "dunno what to do: #{args.inspect}" if args.size != 1 # s(:array)
|
162
|
+
name = name.to_s.chomp "="
|
162
163
|
if rhs && rhs != s(:arglist) then
|
163
164
|
"#{receiver}.#{name} = #{process(rhs)}"
|
164
165
|
else
|
@@ -167,51 +168,54 @@ class Ruby2Ruby < SexpProcessor
|
|
167
168
|
end
|
168
169
|
end
|
169
170
|
|
170
|
-
def process_back_ref
|
171
|
-
|
171
|
+
def process_back_ref exp # :nodoc:
|
172
|
+
_, n = exp
|
173
|
+
|
174
|
+
"$#{n}"
|
172
175
|
end
|
173
176
|
|
174
177
|
# TODO: figure out how to do rescue and ensure ENTIRELY w/o begin
|
175
|
-
def process_begin
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
src = process
|
180
|
-
src = indent
|
181
|
-
|
182
|
-
|
183
|
-
code
|
184
|
-
|
178
|
+
def process_begin exp # :nodoc:
|
179
|
+
_, *rest = exp
|
180
|
+
|
181
|
+
code = rest.map { |sexp|
|
182
|
+
src = process sexp
|
183
|
+
src = indent src unless src =~ /(^|\n)(rescue|ensure)/ # ensure no level 0 rescues
|
184
|
+
src
|
185
|
+
}
|
186
|
+
code.unshift "begin"
|
187
|
+
code.push "end"
|
188
|
+
|
189
|
+
code.join "\n"
|
185
190
|
end
|
186
191
|
|
187
|
-
def process_block
|
188
|
-
|
192
|
+
def process_block exp # :nodoc:
|
193
|
+
_, *body = exp
|
189
194
|
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
if code.nil? or code.first == :nil then
|
194
|
-
result << "# do nothing\n"
|
195
|
-
else
|
196
|
-
result << process(code)
|
197
|
-
end
|
198
|
-
end
|
195
|
+
result = body.map { |sexp|
|
196
|
+
process sexp
|
197
|
+
}
|
199
198
|
|
199
|
+
result << "# do nothing\n" if result.empty?
|
200
200
|
result = parenthesize result.join "\n"
|
201
201
|
result += "\n" unless result.start_with? "("
|
202
202
|
|
203
|
-
|
203
|
+
result
|
204
204
|
end
|
205
205
|
|
206
206
|
def process_block_pass exp # :nodoc:
|
207
|
-
raise "huh?: #{exp.inspect}" if exp.size >
|
207
|
+
raise "huh?: #{exp.inspect}" if exp.size > 2
|
208
|
+
|
209
|
+
_, sexp = exp
|
208
210
|
|
209
|
-
"&#{process
|
211
|
+
"&#{process sexp}"
|
210
212
|
end
|
211
213
|
|
212
|
-
def process_break
|
213
|
-
|
214
|
-
|
214
|
+
def process_break exp # :nodoc:
|
215
|
+
_, arg = exp
|
216
|
+
|
217
|
+
val = process arg
|
218
|
+
|
215
219
|
if val then
|
216
220
|
"break #{val}"
|
217
221
|
else
|
@@ -220,37 +224,39 @@ class Ruby2Ruby < SexpProcessor
|
|
220
224
|
end
|
221
225
|
|
222
226
|
def process_call(exp, safe_call = false) # :nodoc:
|
223
|
-
|
224
|
-
|
227
|
+
_, recv, name, *args = exp
|
228
|
+
|
229
|
+
receiver_node_type = recv && recv.sexp_type
|
230
|
+
receiver = process recv
|
225
231
|
receiver = "(#{receiver})" if ASSIGN_NODES.include? receiver_node_type
|
226
232
|
|
227
|
-
|
228
|
-
args = []
|
233
|
+
# args = []
|
229
234
|
|
230
235
|
# this allows us to do both old and new sexp forms:
|
231
|
-
exp.push(*exp.pop[1..-1]) if exp.size == 1 && exp.first.first == :arglist
|
236
|
+
# exp.push(*exp.pop[1..-1]) if exp.size == 1 && exp.first.first == :arglist
|
232
237
|
|
233
238
|
@calls.push name
|
234
239
|
|
235
240
|
in_context :arglist do
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
241
|
+
max = args.size-1
|
242
|
+
args = args.map.with_index { |arg, i|
|
243
|
+
arg_type = arg.sexp_type
|
244
|
+
is_empty_hash = arg == s(:hash)
|
245
|
+
arg = process arg
|
240
246
|
|
241
247
|
next if arg.empty?
|
242
248
|
|
243
249
|
strip_hash = (arg_type == :hash and
|
244
250
|
not BINARY.include? name and
|
245
251
|
not is_empty_hash and
|
246
|
-
(
|
252
|
+
(i == max or args[i+1].sexp_type == :splat))
|
247
253
|
wrap_arg = Ruby2Ruby::ASSIGN_NODES.include? arg_type
|
248
254
|
|
249
255
|
arg = arg[2..-3] if strip_hash
|
250
256
|
arg = "(#{arg})" if wrap_arg
|
251
257
|
|
252
|
-
|
253
|
-
|
258
|
+
arg
|
259
|
+
}.compact
|
254
260
|
end
|
255
261
|
|
256
262
|
case name
|
@@ -287,127 +293,121 @@ class Ruby2Ruby < SexpProcessor
|
|
287
293
|
@calls.pop
|
288
294
|
end
|
289
295
|
|
290
|
-
def process_safe_call
|
291
|
-
process_call
|
296
|
+
def process_safe_call exp # :nodoc:
|
297
|
+
process_call exp, :safe
|
292
298
|
end
|
293
299
|
|
294
|
-
def process_case
|
300
|
+
def process_case exp # :nodoc:
|
301
|
+
_, expr, *rest = exp
|
302
|
+
|
295
303
|
result = []
|
296
|
-
|
304
|
+
|
305
|
+
expr = process expr
|
306
|
+
|
297
307
|
if expr then
|
298
308
|
result << "case #{expr}"
|
299
309
|
else
|
300
310
|
result << "case"
|
301
311
|
end
|
302
|
-
|
303
|
-
|
304
|
-
if pt and pt.
|
305
|
-
|
312
|
+
|
313
|
+
result.concat rest.map { |pt|
|
314
|
+
if pt and pt.sexp_type == :when
|
315
|
+
"#{process pt}"
|
306
316
|
else
|
307
|
-
code = indent
|
317
|
+
code = indent process pt
|
308
318
|
code = indent("# do nothing") if code =~ /^\s*$/
|
309
|
-
|
319
|
+
"else\n#{code}"
|
310
320
|
end
|
311
|
-
|
321
|
+
}
|
322
|
+
|
312
323
|
result << "end"
|
313
|
-
|
324
|
+
|
325
|
+
result.join "\n"
|
314
326
|
end
|
315
327
|
|
316
|
-
def process_cdecl
|
317
|
-
lhs = exp
|
328
|
+
def process_cdecl exp # :nodoc:
|
329
|
+
_, lhs, rhs = exp
|
318
330
|
lhs = process lhs if Sexp === lhs
|
319
|
-
|
320
|
-
rhs = process
|
331
|
+
if rhs then
|
332
|
+
rhs = process rhs
|
321
333
|
"#{lhs} = #{rhs}"
|
322
334
|
else
|
323
335
|
lhs.to_s
|
324
336
|
end
|
325
337
|
end
|
326
338
|
|
327
|
-
def process_class
|
339
|
+
def process_class exp # :nodoc:
|
328
340
|
"#{exp.comments}class #{util_module_or_class(exp, true)}"
|
329
341
|
end
|
330
342
|
|
331
|
-
def process_colon2
|
332
|
-
|
343
|
+
def process_colon2 exp # :nodoc:
|
344
|
+
_, lhs, rhs = exp
|
345
|
+
|
346
|
+
"#{process lhs}::#{rhs}"
|
333
347
|
end
|
334
348
|
|
335
|
-
def process_colon3
|
336
|
-
|
349
|
+
def process_colon3 exp # :nodoc:
|
350
|
+
_, rhs = exp
|
351
|
+
|
352
|
+
"::#{rhs}"
|
337
353
|
end
|
338
354
|
|
339
|
-
def process_const
|
340
|
-
exp
|
355
|
+
def process_const exp # :nodoc:
|
356
|
+
_, name = exp
|
357
|
+
|
358
|
+
name.to_s
|
341
359
|
end
|
342
360
|
|
343
|
-
def process_cvar
|
344
|
-
|
361
|
+
def process_cvar exp # :nodoc:
|
362
|
+
_, name = exp
|
363
|
+
|
364
|
+
name.to_s
|
345
365
|
end
|
346
366
|
|
347
|
-
def process_cvasgn
|
348
|
-
|
367
|
+
def process_cvasgn exp # :nodoc:
|
368
|
+
_, lhs, rhs = exp
|
369
|
+
|
370
|
+
"#{lhs} = #{process rhs}"
|
349
371
|
end
|
350
372
|
|
351
|
-
def process_cvdecl
|
352
|
-
|
373
|
+
def process_cvdecl exp # :nodoc:
|
374
|
+
_, lhs, rhs = exp
|
375
|
+
|
376
|
+
"#{lhs} = #{process rhs}"
|
353
377
|
end
|
354
378
|
|
355
|
-
def process_defined
|
356
|
-
|
379
|
+
def process_defined exp # :nodoc:
|
380
|
+
_, rhs = exp
|
381
|
+
"defined? #{process rhs}"
|
357
382
|
end
|
358
383
|
|
359
384
|
def process_defn(exp) # :nodoc:
|
360
|
-
|
361
|
-
type2 = exp[2].first rescue nil
|
362
|
-
expect = [:ivar, :iasgn, :attrset]
|
363
|
-
|
364
|
-
# s(name, args, ivar|iasgn|attrset)
|
365
|
-
if exp.size == 3 and type1 == :args and expect.include? type2 then
|
366
|
-
name = exp.first # don't shift in case we pass through
|
367
|
-
case type2
|
368
|
-
when :ivar then
|
369
|
-
ivar_name = exp.ivar.last
|
370
|
-
|
371
|
-
meth_name = ivar_name.to_s[1..-1].to_sym
|
372
|
-
expected = s(meth_name, s(:args), s(:ivar, ivar_name))
|
373
|
-
|
374
|
-
if exp == expected then
|
375
|
-
exp.clear
|
376
|
-
return "attr_reader #{name.inspect}"
|
377
|
-
end
|
378
|
-
when :attrset then
|
379
|
-
# TODO: deprecate? this is a PT relic
|
380
|
-
exp.clear
|
381
|
-
return "attr_writer :#{name.to_s[0..-2]}"
|
382
|
-
when :iasgn then
|
383
|
-
ivar_name = exp.iasgn[1]
|
384
|
-
meth_name = "#{ivar_name.to_s[1..-1]}=".to_sym
|
385
|
-
arg_name = exp.args.last
|
386
|
-
expected = s(meth_name, s(:args, arg_name),
|
387
|
-
s(:iasgn, ivar_name, s(:lvar, arg_name)))
|
388
|
-
|
389
|
-
if exp == expected then
|
390
|
-
exp.clear
|
391
|
-
return "attr_writer :#{name.to_s[0..-2]}"
|
392
|
-
end
|
393
|
-
else
|
394
|
-
raise "Unknown defn type: #{exp.inspect}"
|
395
|
-
end
|
396
|
-
end
|
385
|
+
_, name, args, *body = exp
|
397
386
|
|
398
387
|
comm = exp.comments
|
399
|
-
|
400
|
-
args = process exp.shift
|
388
|
+
args = process args
|
401
389
|
args = "" if args == "()"
|
402
390
|
|
403
|
-
|
404
|
-
|
405
|
-
#
|
406
|
-
|
407
|
-
|
408
|
-
|
391
|
+
body = s() if body == s(s(:nil)) # empty it out of a default nil expression
|
392
|
+
|
393
|
+
# s(:defn, name, args, ivar|iasgn)
|
394
|
+
case exp
|
395
|
+
when s{ s(:defn, atom, t(:args), s(:ivar, atom)) } then # TODO: atom -> _
|
396
|
+
_, ivar = body.first
|
397
|
+
ivar = ivar.to_s[1..-1] # remove leading @
|
398
|
+
reader = name.to_s
|
399
|
+
return "attr_reader #{name.inspect}" if reader == ivar
|
400
|
+
when s{ s(:defn, atom, t(:args), s(:iasgn, atom, s(:lvar, atom))) } then
|
401
|
+
_, ivar, _val = body.first
|
402
|
+
ivar = ivar.to_s[1..-1] # remove leading @
|
403
|
+
reader = name.to_s.chomp "="
|
404
|
+
return "attr_writer :#{reader}" if reader == ivar
|
409
405
|
end
|
410
406
|
|
407
|
+
body = body.map { |ssexp|
|
408
|
+
process ssexp
|
409
|
+
}
|
410
|
+
|
411
411
|
simple = body.size <= 1
|
412
412
|
|
413
413
|
body << "# do nothing" if body.empty?
|
@@ -419,29 +419,36 @@ class Ruby2Ruby < SexpProcessor
|
|
419
419
|
return "#{comm}def #{name}#{args}\n#{body}\nend".gsub(/\n\s*\n+/, "\n")
|
420
420
|
end
|
421
421
|
|
422
|
-
def process_defs
|
423
|
-
lhs
|
424
|
-
var = [:self, :cvar, :dvar, :ivar, :gvar, :lvar].include? lhs.
|
425
|
-
name = exp.shift
|
422
|
+
def process_defs exp # :nodoc:
|
423
|
+
_, lhs, name, args, *body = exp
|
424
|
+
var = [:self, :cvar, :dvar, :ivar, :gvar, :lvar].include? lhs.sexp_type
|
426
425
|
|
427
|
-
lhs = process
|
426
|
+
lhs = process lhs
|
428
427
|
lhs = "(#{lhs})" unless var
|
429
428
|
|
430
|
-
|
431
|
-
|
429
|
+
name = "#{lhs}.#{name}"
|
430
|
+
|
431
|
+
process_defn s(:defn, name, args, *body)
|
432
432
|
end
|
433
433
|
|
434
434
|
def process_dot2(exp) # :nodoc:
|
435
|
-
|
435
|
+
_, lhs, rhs = exp
|
436
|
+
|
437
|
+
"(#{process lhs}..#{process rhs})"
|
436
438
|
end
|
437
439
|
|
438
440
|
def process_dot3(exp) # :nodoc:
|
439
|
-
|
441
|
+
_, lhs, rhs = exp
|
442
|
+
|
443
|
+
"(#{process lhs}...#{process rhs})"
|
440
444
|
end
|
441
445
|
|
442
|
-
def process_dregx
|
443
|
-
|
444
|
-
|
446
|
+
def process_dregx exp # :nodoc:
|
447
|
+
_, str, *rest = exp
|
448
|
+
|
449
|
+
options = re_opt rest.pop if Integer === rest.last
|
450
|
+
|
451
|
+
"/" << util_dthing(:dregx, s(:dregx, str, *rest)) << "/#{options}"
|
445
452
|
end
|
446
453
|
|
447
454
|
def process_dregx_once(exp) # :nodoc:
|
@@ -461,8 +468,9 @@ class Ruby2Ruby < SexpProcessor
|
|
461
468
|
end
|
462
469
|
|
463
470
|
def process_ensure(exp) # :nodoc:
|
464
|
-
body =
|
465
|
-
|
471
|
+
_, body, ens = exp
|
472
|
+
|
473
|
+
body = process body
|
466
474
|
ens = nil if ens == s(:nil)
|
467
475
|
ens = process(ens) || "# do nothing"
|
468
476
|
ens = "begin\n#{ens}\nend\n" if ens =~ /(^|\n)rescue/
|
@@ -473,80 +481,91 @@ class Ruby2Ruby < SexpProcessor
|
|
473
481
|
return "#{body}\nensure\n#{indent ens}"
|
474
482
|
end
|
475
483
|
|
476
|
-
def process_evstr
|
477
|
-
|
484
|
+
def process_evstr exp # :nodoc:
|
485
|
+
_, x = exp
|
486
|
+
|
487
|
+
x ? process(x) : ""
|
478
488
|
end
|
479
489
|
|
480
|
-
def process_false
|
490
|
+
def process_false exp # :nodoc:
|
481
491
|
"false"
|
482
492
|
end
|
483
493
|
|
484
|
-
def process_flip2
|
485
|
-
|
494
|
+
def process_flip2 exp # :nodoc:
|
495
|
+
_, lhs, rhs = exp
|
496
|
+
|
497
|
+
"#{process lhs}..#{process rhs}"
|
486
498
|
end
|
487
499
|
|
488
|
-
def process_flip3
|
489
|
-
|
500
|
+
def process_flip3 exp # :nodoc:
|
501
|
+
_, lhs, rhs = exp
|
502
|
+
|
503
|
+
"#{process lhs}...#{process rhs}"
|
490
504
|
end
|
491
505
|
|
492
|
-
def process_for
|
493
|
-
recv =
|
494
|
-
|
495
|
-
|
506
|
+
def process_for exp # :nodoc:
|
507
|
+
_, recv, iter, body = exp
|
508
|
+
|
509
|
+
recv = process recv
|
510
|
+
iter = process iter
|
511
|
+
body = process(body) || "# do nothing"
|
496
512
|
|
497
513
|
result = ["for #{iter} in #{recv} do"]
|
498
|
-
result << indent(body
|
514
|
+
result << indent(body)
|
499
515
|
result << "end"
|
500
516
|
|
501
|
-
result.join
|
517
|
+
result.join "\n"
|
502
518
|
end
|
503
519
|
|
504
|
-
def process_gasgn
|
505
|
-
process_iasgn
|
520
|
+
def process_gasgn exp # :nodoc:
|
521
|
+
process_iasgn exp
|
506
522
|
end
|
507
523
|
|
508
|
-
def process_gvar
|
509
|
-
|
524
|
+
def process_gvar exp # :nodoc:
|
525
|
+
_, name = exp
|
526
|
+
|
527
|
+
name.to_s
|
510
528
|
end
|
511
529
|
|
512
530
|
def process_hash(exp) # :nodoc:
|
513
|
-
|
531
|
+
_, *pairs = exp
|
514
532
|
|
515
|
-
|
516
|
-
s = exp.shift
|
517
|
-
t = s.sexp_type
|
518
|
-
lhs = process s
|
533
|
+
result = []
|
519
534
|
|
520
|
-
|
521
|
-
|
522
|
-
|
535
|
+
result = pairs.each_slice(2).map { |k, v|
|
536
|
+
if k.sexp_type == :kwsplat then
|
537
|
+
"%s" % process(k)
|
523
538
|
else
|
524
|
-
|
525
|
-
|
526
|
-
|
539
|
+
t = v.sexp_type
|
540
|
+
|
541
|
+
lhs = process k
|
542
|
+
rhs = process v
|
527
543
|
rhs = "(#{rhs})" unless HASH_VAL_NO_PAREN.include? t
|
528
544
|
|
529
|
-
|
545
|
+
"%s => %s" % [lhs, rhs]
|
530
546
|
end
|
531
|
-
|
547
|
+
}
|
532
548
|
|
533
549
|
return result.empty? ? "{}" : "{ #{result.join(', ')} }"
|
534
550
|
end
|
535
551
|
|
536
552
|
def process_iasgn(exp) # :nodoc:
|
537
|
-
lhs = exp
|
538
|
-
|
553
|
+
_, lhs, rhs = exp
|
554
|
+
|
555
|
+
if rhs then
|
556
|
+
"#{lhs} = #{process rhs}"
|
557
|
+
else # part of an masgn
|
539
558
|
lhs.to_s
|
540
|
-
else
|
541
|
-
"#{lhs} = #{process exp.shift}"
|
542
559
|
end
|
543
560
|
end
|
544
561
|
|
545
562
|
def process_if(exp) # :nodoc:
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
563
|
+
_, c, t, f = exp
|
564
|
+
|
565
|
+
expand = Ruby2Ruby::ASSIGN_NODES.include? c.sexp_type
|
566
|
+
c = process c
|
567
|
+
t = process t
|
568
|
+
f = process f
|
550
569
|
|
551
570
|
c = "(#{c.chomp})" if c =~ /\n/
|
552
571
|
|
@@ -579,9 +598,10 @@ class Ruby2Ruby < SexpProcessor
|
|
579
598
|
end
|
580
599
|
|
581
600
|
def process_iter(exp) # :nodoc:
|
582
|
-
iter =
|
583
|
-
|
584
|
-
|
601
|
+
_, iter, args, body = exp
|
602
|
+
|
603
|
+
iter = process iter
|
604
|
+
body = process body if body
|
585
605
|
|
586
606
|
args = case args
|
587
607
|
when 0 then
|
@@ -624,21 +644,25 @@ class Ruby2Ruby < SexpProcessor
|
|
624
644
|
end
|
625
645
|
|
626
646
|
def process_ivar(exp) # :nodoc:
|
627
|
-
exp
|
647
|
+
_, name = exp
|
648
|
+
name.to_s
|
628
649
|
end
|
629
650
|
|
630
651
|
def process_kwsplat(exp)
|
631
|
-
|
652
|
+
_, kw = exp
|
653
|
+
"**#{process kw}"
|
632
654
|
end
|
633
655
|
|
634
656
|
def process_lasgn(exp) # :nodoc:
|
635
|
-
|
636
|
-
|
657
|
+
_, name, value = exp
|
658
|
+
|
659
|
+
s = "#{name}"
|
660
|
+
s += " = #{process value}" if value
|
637
661
|
s
|
638
662
|
end
|
639
663
|
|
640
|
-
def process_lit
|
641
|
-
obj = exp
|
664
|
+
def process_lit exp # :nodoc:
|
665
|
+
_, obj = exp
|
642
666
|
case obj
|
643
667
|
when Range then
|
644
668
|
"(#{obj.inspect})"
|
@@ -648,23 +672,25 @@ class Ruby2Ruby < SexpProcessor
|
|
648
672
|
end
|
649
673
|
|
650
674
|
def process_lvar(exp) # :nodoc:
|
651
|
-
exp
|
675
|
+
_, name = exp
|
676
|
+
name.to_s
|
652
677
|
end
|
653
678
|
|
654
679
|
def process_masgn(exp) # :nodoc:
|
655
680
|
# s(:masgn, s(:array, s(:lasgn, :var), ...), s(:to_ary, <val>, ...))
|
656
681
|
# s(:iter, <call>, s(:args, s(:masgn, :a, :b)), <body>)
|
657
682
|
|
683
|
+
_, *exp = exp # HACK
|
684
|
+
|
658
685
|
case exp.first
|
659
686
|
when Sexp then
|
660
|
-
lhs = exp
|
661
|
-
rhs = exp.empty? ? nil : exp.shift
|
687
|
+
lhs, rhs = exp
|
662
688
|
|
663
|
-
case lhs.
|
689
|
+
case lhs.sexp_type
|
664
690
|
when :array then
|
665
|
-
lhs
|
691
|
+
_, *lhs = lhs # HACK
|
666
692
|
lhs = lhs.map do |l|
|
667
|
-
case l.
|
693
|
+
case l.sexp_type
|
668
694
|
when :masgn then
|
669
695
|
"(#{process(l)})"
|
670
696
|
else
|
@@ -675,8 +701,8 @@ class Ruby2Ruby < SexpProcessor
|
|
675
701
|
raise "no clue: #{lhs.inspect}"
|
676
702
|
end
|
677
703
|
|
678
|
-
|
679
|
-
t = rhs.
|
704
|
+
if rhs then
|
705
|
+
t = rhs.sexp_type
|
680
706
|
rhs = process rhs
|
681
707
|
rhs = rhs[1..-2] if t == :array # FIX: bad? I dunno
|
682
708
|
return "#{lhs.join(", ")} = #{rhs}"
|
@@ -692,20 +718,28 @@ class Ruby2Ruby < SexpProcessor
|
|
692
718
|
end
|
693
719
|
end
|
694
720
|
|
695
|
-
def process_match
|
696
|
-
|
721
|
+
def process_match exp # :nodoc:
|
722
|
+
_, rhs = exp
|
723
|
+
|
724
|
+
"#{process rhs}"
|
697
725
|
end
|
698
726
|
|
699
|
-
def process_match2
|
700
|
-
|
701
|
-
rhs =
|
727
|
+
def process_match2 exp # :nodoc:
|
728
|
+
# s(:match2, s(:lit, /x/), s(:str, "blah"))
|
729
|
+
_, lhs, rhs = exp
|
730
|
+
|
731
|
+
lhs = process lhs
|
732
|
+
rhs = process rhs
|
733
|
+
|
702
734
|
"#{lhs} =~ #{rhs}"
|
703
735
|
end
|
704
736
|
|
705
|
-
def process_match3
|
706
|
-
rhs =
|
707
|
-
|
708
|
-
|
737
|
+
def process_match3 exp # :nodoc:
|
738
|
+
_, rhs, lhs = exp # yes, backwards
|
739
|
+
|
740
|
+
left_type = lhs.sexp_type
|
741
|
+
lhs = process lhs
|
742
|
+
rhs = process rhs
|
709
743
|
|
710
744
|
if ASSIGN_NODES.include? left_type then
|
711
745
|
"(#{lhs}) =~ #{rhs}"
|
@@ -719,7 +753,9 @@ class Ruby2Ruby < SexpProcessor
|
|
719
753
|
end
|
720
754
|
|
721
755
|
def process_next(exp) # :nodoc:
|
722
|
-
|
756
|
+
_, rhs = exp
|
757
|
+
|
758
|
+
val = rhs && process(rhs) # maybe push down into if and test rhs?
|
723
759
|
if val then
|
724
760
|
"next #{val}"
|
725
761
|
else
|
@@ -732,40 +768,43 @@ class Ruby2Ruby < SexpProcessor
|
|
732
768
|
end
|
733
769
|
|
734
770
|
def process_not(exp) # :nodoc:
|
735
|
-
|
771
|
+
_, sexp = exp
|
772
|
+
"(not #{process sexp})"
|
736
773
|
end
|
737
774
|
|
738
775
|
def process_nth_ref(exp) # :nodoc:
|
739
|
-
|
776
|
+
_, n = exp
|
777
|
+
"$#{n}"
|
740
778
|
end
|
741
779
|
|
742
|
-
def process_op_asgn
|
780
|
+
def process_op_asgn exp # :nodoc:
|
743
781
|
# [[:lvar, :x], [:call, nil, :z, [:lit, 1]], :y, :"||"]
|
744
|
-
lhs =
|
745
|
-
|
746
|
-
|
747
|
-
|
782
|
+
_, lhs, rhs, index, op = exp
|
783
|
+
|
784
|
+
lhs = process lhs
|
785
|
+
rhs = process rhs
|
748
786
|
|
749
787
|
"#{lhs}.#{index} #{op}= #{rhs}"
|
750
788
|
end
|
751
789
|
|
752
790
|
def process_op_asgn1(exp) # :nodoc:
|
753
791
|
# [[:lvar, :b], [:arglist, [:lit, 1]], :"||", [:lit, 10]]
|
754
|
-
lhs =
|
755
|
-
|
756
|
-
|
757
|
-
|
792
|
+
_, lhs, index, msg, rhs = exp
|
793
|
+
|
794
|
+
lhs = process lhs
|
795
|
+
index = process index
|
796
|
+
rhs = process rhs
|
758
797
|
|
759
798
|
"#{lhs}[#{index}] #{msg}= #{rhs}"
|
760
799
|
end
|
761
800
|
|
762
|
-
def process_op_asgn2
|
801
|
+
def process_op_asgn2 exp # :nodoc:
|
763
802
|
# [[:lvar, :c], :var=, :"||", [:lit, 20]]
|
764
|
-
lhs =
|
765
|
-
index = exp.shift.to_s[0..-2]
|
766
|
-
msg = exp.shift
|
803
|
+
_, lhs, index, msg, rhs = exp
|
767
804
|
|
768
|
-
|
805
|
+
lhs = process lhs
|
806
|
+
index = index.to_s[0..-2]
|
807
|
+
rhs = process rhs
|
769
808
|
|
770
809
|
"#{lhs}.#{index} #{msg}= #{rhs}"
|
771
810
|
end
|
@@ -773,19 +812,21 @@ class Ruby2Ruby < SexpProcessor
|
|
773
812
|
def process_op_asgn_and(exp) # :nodoc:
|
774
813
|
# a &&= 1
|
775
814
|
# [[:lvar, :a], [:lasgn, :a, [:lit, 1]]]
|
776
|
-
exp
|
777
|
-
process(
|
815
|
+
_, _lhs, rhs = exp
|
816
|
+
process(rhs).sub(/\=/, '&&=')
|
778
817
|
end
|
779
818
|
|
780
819
|
def process_op_asgn_or(exp) # :nodoc:
|
781
820
|
# a ||= 1
|
782
821
|
# [[:lvar, :a], [:lasgn, :a, [:lit, 1]]]
|
783
|
-
exp
|
784
|
-
process(
|
822
|
+
_, _lhs, rhs = exp
|
823
|
+
process(rhs).sub(/\=/, '||=')
|
785
824
|
end
|
786
825
|
|
787
826
|
def process_or(exp) # :nodoc:
|
788
|
-
|
827
|
+
_, lhs, rhs = exp
|
828
|
+
|
829
|
+
"(#{process lhs} or #{process rhs})"
|
789
830
|
end
|
790
831
|
|
791
832
|
def process_postexe(exp) # :nodoc:
|
@@ -797,8 +838,13 @@ class Ruby2Ruby < SexpProcessor
|
|
797
838
|
end
|
798
839
|
|
799
840
|
def process_resbody exp # :nodoc:
|
800
|
-
|
801
|
-
body =
|
841
|
+
# s(:resbody, s(:array), s(:return, s(:str, "a")))
|
842
|
+
_, args, *body = exp
|
843
|
+
|
844
|
+
body = body.compact.map { |sexp|
|
845
|
+
process sexp
|
846
|
+
}
|
847
|
+
|
802
848
|
body << "# do nothing" if body.empty?
|
803
849
|
|
804
850
|
name = args.lasgn true
|
@@ -811,21 +857,25 @@ class Ruby2Ruby < SexpProcessor
|
|
811
857
|
end
|
812
858
|
|
813
859
|
def process_rescue exp # :nodoc:
|
814
|
-
|
815
|
-
|
860
|
+
_, *rest = exp
|
861
|
+
exp = nil
|
862
|
+
|
863
|
+
body = process rest.shift unless rest.first.sexp_type == :resbody
|
864
|
+
els = process rest.pop unless rest.last && rest.last.sexp_type == :resbody
|
816
865
|
|
817
866
|
body ||= "# do nothing"
|
818
|
-
|
819
|
-
|
820
|
-
|
821
|
-
|
822
|
-
|
823
|
-
|
824
|
-
|
825
|
-
|
826
|
-
simple &&=
|
827
|
-
|
828
|
-
|
867
|
+
|
868
|
+
# TODO: I don't like this using method_missing, but I need to ensure tests
|
869
|
+
simple = rest.size == 1 && rest.first.size <= 3 &&
|
870
|
+
!rest.first.block &&
|
871
|
+
!rest.first.return
|
872
|
+
|
873
|
+
resbodies = rest.map { |resbody|
|
874
|
+
_, rb_args, rb_body, *rb_rest = resbody
|
875
|
+
simple &&= rb_args == s(:array)
|
876
|
+
simple &&= rb_rest.empty? && rb_body && rb_body.node_type != :block
|
877
|
+
process resbody
|
878
|
+
}
|
829
879
|
|
830
880
|
if els then
|
831
881
|
"#{indent body}\n#{resbodies.join("\n")}\nelse\n#{indent els}"
|
@@ -841,11 +891,12 @@ class Ruby2Ruby < SexpProcessor
|
|
841
891
|
"retry"
|
842
892
|
end
|
843
893
|
|
844
|
-
def process_return
|
845
|
-
|
894
|
+
def process_return exp # :nodoc:
|
895
|
+
_, rhs = exp
|
896
|
+
|
897
|
+
unless rhs then
|
846
898
|
"return"
|
847
899
|
else
|
848
|
-
rhs = exp.shift
|
849
900
|
rhs_type = rhs.sexp_type
|
850
901
|
rhs = process rhs
|
851
902
|
rhs = "(#{rhs})" if ASSIGN_NODES.include? rhs_type
|
@@ -853,47 +904,53 @@ class Ruby2Ruby < SexpProcessor
|
|
853
904
|
end
|
854
905
|
end
|
855
906
|
|
856
|
-
def process_safe_attrasgn
|
857
|
-
receiver =
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
|
907
|
+
def process_safe_attrasgn exp # :nodoc:
|
908
|
+
_, receiver, name, *rest = exp
|
909
|
+
|
910
|
+
receiver = process receiver
|
911
|
+
rhs = rest.pop
|
912
|
+
args = rest.pop # should be nil
|
862
913
|
|
863
914
|
raise "dunno what to do: #{args.inspect}" if args
|
864
915
|
|
865
916
|
name = name.to_s.sub(/=$/, '')
|
866
917
|
|
867
918
|
if rhs && rhs != s(:arglist) then
|
868
|
-
"#{receiver}&.#{name} = #{process
|
919
|
+
"#{receiver}&.#{name} = #{process rhs}"
|
869
920
|
else
|
870
921
|
raise "dunno what to do: #{rhs.inspect}"
|
871
922
|
end
|
872
923
|
end
|
873
924
|
|
874
|
-
def process_safe_op_asgn
|
925
|
+
def process_safe_op_asgn exp # :nodoc:
|
875
926
|
# [[:lvar, :x], [:call, nil, :z, [:lit, 1]], :y, :"||"]
|
876
|
-
lhs =
|
877
|
-
|
878
|
-
|
879
|
-
|
927
|
+
_, lhs, rhs, index, op = exp
|
928
|
+
|
929
|
+
lhs = process lhs
|
930
|
+
rhs = process rhs
|
880
931
|
|
881
932
|
"#{lhs}&.#{index} #{op}= #{rhs}"
|
882
933
|
end
|
883
934
|
|
884
935
|
def process_safe_op_asgn2(exp) # :nodoc:
|
885
936
|
# [[:lvar, :c], :var=, :"||", [:lit, 20]]
|
886
|
-
lhs = process(exp.shift)
|
887
|
-
index = exp.shift.to_s[0..-2]
|
888
|
-
msg = exp.shift
|
889
937
|
|
890
|
-
rhs =
|
938
|
+
_, lhs, index, msg, rhs = exp
|
939
|
+
|
940
|
+
lhs = process lhs
|
941
|
+
index = index.to_s[0..-2]
|
942
|
+
rhs = process rhs
|
891
943
|
|
892
944
|
"#{lhs}&.#{index} #{msg}= #{rhs}"
|
893
945
|
end
|
894
946
|
|
895
947
|
def process_sclass(exp) # :nodoc:
|
896
|
-
|
948
|
+
_, recv, *block = exp
|
949
|
+
|
950
|
+
recv = process recv
|
951
|
+
block = indent process_block s(:block, *block)
|
952
|
+
|
953
|
+
"class << #{recv}\n#{block}\nend"
|
897
954
|
end
|
898
955
|
|
899
956
|
def process_self(exp) # :nodoc:
|
@@ -901,33 +958,41 @@ class Ruby2Ruby < SexpProcessor
|
|
901
958
|
end
|
902
959
|
|
903
960
|
def process_splat(exp) # :nodoc:
|
904
|
-
|
961
|
+
_, arg = exp
|
962
|
+
if arg.nil? then
|
905
963
|
"*"
|
906
964
|
else
|
907
|
-
"*#{process
|
965
|
+
"*#{process arg}"
|
908
966
|
end
|
909
967
|
end
|
910
968
|
|
911
969
|
def process_str(exp) # :nodoc:
|
912
|
-
|
970
|
+
_, s = exp
|
971
|
+
s.dump
|
913
972
|
end
|
914
973
|
|
915
974
|
def process_super(exp) # :nodoc:
|
916
|
-
args =
|
975
|
+
_, *args = exp
|
917
976
|
|
918
|
-
|
977
|
+
args = args.map { |arg|
|
978
|
+
process arg
|
979
|
+
}
|
980
|
+
|
981
|
+
"super(#{args.join ", "})"
|
919
982
|
end
|
920
983
|
|
921
984
|
def process_svalue(exp) # :nodoc:
|
922
|
-
|
923
|
-
|
924
|
-
|
925
|
-
|
926
|
-
|
985
|
+
_, *args = exp
|
986
|
+
|
987
|
+
args.map { |arg|
|
988
|
+
process arg
|
989
|
+
}.join ", "
|
927
990
|
end
|
928
991
|
|
929
|
-
def process_to_ary
|
930
|
-
|
992
|
+
def process_to_ary exp # :nodoc:
|
993
|
+
_, sexp = exp
|
994
|
+
|
995
|
+
process sexp
|
931
996
|
end
|
932
997
|
|
933
998
|
def process_true(exp) # :nodoc:
|
@@ -935,38 +1000,42 @@ class Ruby2Ruby < SexpProcessor
|
|
935
1000
|
end
|
936
1001
|
|
937
1002
|
def process_undef(exp) # :nodoc:
|
938
|
-
|
1003
|
+
_, name = exp
|
1004
|
+
|
1005
|
+
"undef #{process name}"
|
939
1006
|
end
|
940
1007
|
|
941
1008
|
def process_until(exp) # :nodoc:
|
942
1009
|
cond_loop(exp, 'until')
|
943
1010
|
end
|
944
1011
|
|
945
|
-
def process_valias
|
946
|
-
|
1012
|
+
def process_valias exp # :nodoc:
|
1013
|
+
_, lhs, rhs = exp
|
1014
|
+
|
1015
|
+
"alias #{lhs} #{rhs}"
|
947
1016
|
end
|
948
1017
|
|
949
|
-
def process_when
|
950
|
-
|
1018
|
+
def process_when exp # :nodoc:
|
1019
|
+
s(:when, s(:array, s(:lit, 1)),
|
1020
|
+
s(:call, nil, :puts, s(:str, "something")),
|
1021
|
+
s(:lasgn, :result, s(:str, "red")))
|
951
1022
|
|
952
|
-
|
953
|
-
val = process(exp.shift)
|
954
|
-
exp.shift # empty body
|
955
|
-
return "*#{val}"
|
956
|
-
end
|
1023
|
+
_, lhs, *rhs = exp
|
957
1024
|
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
962
|
-
|
963
|
-
end
|
1025
|
+
cond = process(lhs)[1..-2]
|
1026
|
+
|
1027
|
+
rhs = rhs.compact.map { |sexp|
|
1028
|
+
indent process sexp
|
1029
|
+
}
|
964
1030
|
|
965
|
-
|
1031
|
+
rhs << indent("# do nothing") if rhs.empty?
|
1032
|
+
rhs = rhs.join "\n"
|
1033
|
+
|
1034
|
+
"when #{cond} then\n#{rhs.chomp}"
|
966
1035
|
end
|
967
1036
|
|
968
1037
|
def process_while(exp) # :nodoc:
|
969
|
-
cond_loop
|
1038
|
+
cond_loop exp, "while"
|
970
1039
|
end
|
971
1040
|
|
972
1041
|
def process_xstr(exp) # :nodoc:
|
@@ -974,10 +1043,11 @@ class Ruby2Ruby < SexpProcessor
|
|
974
1043
|
end
|
975
1044
|
|
976
1045
|
def process_yield(exp) # :nodoc:
|
977
|
-
args =
|
978
|
-
|
979
|
-
|
980
|
-
|
1046
|
+
_, *args = exp
|
1047
|
+
|
1048
|
+
args = args.map { |arg|
|
1049
|
+
process arg
|
1050
|
+
}
|
981
1051
|
|
982
1052
|
unless args.empty? then
|
983
1053
|
"yield(#{args.join(', ')})"
|
@@ -995,8 +1065,9 @@ class Ruby2Ruby < SexpProcessor
|
|
995
1065
|
|
996
1066
|
def rewrite_attrasgn exp # :nodoc:
|
997
1067
|
if context.first(2) == [:array, :masgn] then
|
998
|
-
|
999
|
-
|
1068
|
+
_, recv, msg, *args = exp
|
1069
|
+
|
1070
|
+
exp = s(:call, recv, msg.to_s.chomp("=").to_sym, *args)
|
1000
1071
|
end
|
1001
1072
|
|
1002
1073
|
exp
|
@@ -1008,8 +1079,9 @@ class Ruby2Ruby < SexpProcessor
|
|
1008
1079
|
end
|
1009
1080
|
|
1010
1081
|
def rewrite_resbody exp # :nodoc:
|
1011
|
-
|
1012
|
-
raise exp
|
1082
|
+
_, args, *_rest = exp
|
1083
|
+
raise "no exception list in #{exp.inspect}" unless exp.size > 2 && args
|
1084
|
+
raise args.inspect if args.sexp_type != :array
|
1013
1085
|
# for now, do nothing, just check and freak if we see an errant structure
|
1014
1086
|
exp
|
1015
1087
|
end
|
@@ -1019,9 +1091,10 @@ class Ruby2Ruby < SexpProcessor
|
|
1019
1091
|
complex ||= exp.size > 3
|
1020
1092
|
complex ||= exp.resbody.block
|
1021
1093
|
complex ||= exp.resbody.size > 3
|
1022
|
-
|
1023
|
-
complex ||=
|
1024
|
-
complex ||=
|
1094
|
+
resbodies = exp.find_nodes(:resbody)
|
1095
|
+
complex ||= resbodies.any? { |n| n[1] != s(:array) }
|
1096
|
+
complex ||= resbodies.any? { |n| n.last.nil? }
|
1097
|
+
complex ||= resbodies.any? { |(_, _, body)| body and body.node_type == :block }
|
1025
1098
|
|
1026
1099
|
handled = context.first == :ensure
|
1027
1100
|
|
@@ -1031,9 +1104,9 @@ class Ruby2Ruby < SexpProcessor
|
|
1031
1104
|
end
|
1032
1105
|
|
1033
1106
|
def rewrite_svalue(exp) # :nodoc:
|
1034
|
-
case exp.last.
|
1107
|
+
case exp.last.sexp_type
|
1035
1108
|
when :array
|
1036
|
-
s(:svalue, *exp[1]
|
1109
|
+
s(:svalue, *exp[1].sexp_body)
|
1037
1110
|
when :splat
|
1038
1111
|
exp
|
1039
1112
|
else
|
@@ -1048,9 +1121,10 @@ class Ruby2Ruby < SexpProcessor
|
|
1048
1121
|
# Generate a post-or-pre conditional loop.
|
1049
1122
|
|
1050
1123
|
def cond_loop(exp, name)
|
1051
|
-
cond =
|
1052
|
-
|
1053
|
-
|
1124
|
+
_, cond, body, head_controlled = exp
|
1125
|
+
|
1126
|
+
cond = process cond
|
1127
|
+
body = process body
|
1054
1128
|
|
1055
1129
|
body = indent(body).chomp if body
|
1056
1130
|
|
@@ -1064,6 +1138,7 @@ class Ruby2Ruby < SexpProcessor
|
|
1064
1138
|
code << body if body
|
1065
1139
|
code << "end #{name} #{cond}"
|
1066
1140
|
end
|
1141
|
+
|
1067
1142
|
code.join("\n")
|
1068
1143
|
end
|
1069
1144
|
|
@@ -1084,22 +1159,10 @@ class Ruby2Ruby < SexpProcessor
|
|
1084
1159
|
end
|
1085
1160
|
end
|
1086
1161
|
|
1087
|
-
##
|
1088
|
-
# Process all the remaining stuff in +exp+ and return the results
|
1089
|
-
# sans-nils.
|
1090
|
-
|
1091
|
-
def finish exp # REFACTOR: work this out of the rest of the processors
|
1092
|
-
body = []
|
1093
|
-
until exp.empty? do
|
1094
|
-
body << process(exp.shift)
|
1095
|
-
end
|
1096
|
-
body.compact
|
1097
|
-
end
|
1098
|
-
|
1099
1162
|
##
|
1100
1163
|
# Indent all lines of +s+ to the current indent level.
|
1101
1164
|
|
1102
|
-
def indent
|
1165
|
+
def indent s
|
1103
1166
|
s.to_s.split(/\n/).map{|line| @indent + line}.join("\n")
|
1104
1167
|
end
|
1105
1168
|
|
@@ -1135,29 +1198,28 @@ class Ruby2Ruby < SexpProcessor
|
|
1135
1198
|
# Utility method to generate something interpolated.
|
1136
1199
|
|
1137
1200
|
def util_dthing(type, exp)
|
1138
|
-
|
1201
|
+
_, str, *rest = exp
|
1139
1202
|
|
1140
1203
|
# first item in sexp is a string literal
|
1141
|
-
|
1204
|
+
str = dthing_escape(type, str)
|
1142
1205
|
|
1143
|
-
|
1144
|
-
pt = exp.shift
|
1206
|
+
rest = rest.map { |pt|
|
1145
1207
|
case pt
|
1146
|
-
when Sexp then
|
1147
|
-
case pt.
|
1208
|
+
when Sexp then # TODO: what the fuck? why??
|
1209
|
+
case pt.sexp_type
|
1148
1210
|
when :str then
|
1149
|
-
|
1211
|
+
dthing_escape(type, pt.last)
|
1150
1212
|
when :evstr then
|
1151
|
-
|
1213
|
+
'#{%s}' % [process(pt)]
|
1152
1214
|
else
|
1153
1215
|
raise "unknown type: #{pt.inspect}"
|
1154
1216
|
end
|
1155
1217
|
else
|
1156
1218
|
raise "unhandled value in d-thing: #{pt.inspect}"
|
1157
1219
|
end
|
1158
|
-
|
1220
|
+
}
|
1159
1221
|
|
1160
|
-
|
1222
|
+
[str, rest].join
|
1161
1223
|
end
|
1162
1224
|
|
1163
1225
|
##
|
@@ -1166,29 +1228,30 @@ class Ruby2Ruby < SexpProcessor
|
|
1166
1228
|
def util_module_or_class(exp, is_class=false)
|
1167
1229
|
result = []
|
1168
1230
|
|
1169
|
-
name = exp
|
1231
|
+
_, name, *body = exp
|
1232
|
+
superk = body.shift if is_class
|
1233
|
+
|
1170
1234
|
name = process name if Sexp === name
|
1171
1235
|
|
1172
1236
|
result << name
|
1173
1237
|
|
1174
|
-
if
|
1175
|
-
superk = process
|
1238
|
+
if superk then
|
1239
|
+
superk = process superk
|
1176
1240
|
result << " < #{superk}" if superk
|
1177
1241
|
end
|
1178
1242
|
|
1179
1243
|
result << "\n"
|
1180
1244
|
|
1181
|
-
body =
|
1182
|
-
|
1183
|
-
|
1184
|
-
body << code.chomp unless code.nil? or code.chomp.empty?
|
1185
|
-
end until exp.empty?
|
1245
|
+
body = body.map { |sexp|
|
1246
|
+
process(sexp).chomp
|
1247
|
+
}
|
1186
1248
|
|
1187
1249
|
unless body.empty? then
|
1188
1250
|
body = indent(body.join("\n\n")) + "\n"
|
1189
1251
|
else
|
1190
1252
|
body = ""
|
1191
1253
|
end
|
1254
|
+
|
1192
1255
|
result << body
|
1193
1256
|
result << "end"
|
1194
1257
|
|