zuora_connect_ui 0.8.2 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/zuora_connect_ui.js +1 -0
- data/app/assets/javascripts/zuora_connect_ui/util.js +51 -0
- data/app/assets/stylesheets/_zuora_connect_ui.scss +4 -6
- data/app/assets/stylesheets/zuora_connect_ui/datatables.scss +3 -3
- data/app/helpers/zuora_connect_ui/application_helper.rb +28 -4
- data/app/views/partials/_table.html.erb +16 -7
- data/lib/zuora_connect_ui/version.rb +1 -1
- data/vendor/ruby/2.6.0/cache/autoprefixer-rails-9.6.1.1.gem +0 -0
- data/vendor/ruby/2.6.0/cache/parser-2.6.4.1.gem +0 -0
- data/vendor/ruby/2.6.0/cache/sassc-2.2.0.gem +0 -0
- data/vendor/ruby/2.6.0/cache/zeitwerk-2.1.10.gem +0 -0
- data/vendor/ruby/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.2.0/gem.build_complete +0 -0
- data/vendor/ruby/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.2.0/gem_make.out +75 -0
- data/vendor/ruby/2.6.0/extensions/x86_64-linux/2.6.0/sassc-2.2.0/sassc/libsass.so +0 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/CHANGELOG.md +1085 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/Gemfile +10 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/LICENSE +20 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/README.md +237 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/Rakefile +53 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/autoprefixer-rails.gemspec +32 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails.rb +41 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/processor.rb +194 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/railtie.rb +50 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/result.rb +24 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/sprockets.rb +62 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/autoprefixer-rails/version.rb +3 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/lib/rake/autoprefixer_tasks.rb +28 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/Rakefile +2 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/config/manifest.js +0 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/evaluate.css.erb +1 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/loaded.sass +2 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/sass.sass +1 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/test.css +3 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/assets/stylesheets/wrong.css +2 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/controllers/application_controller.rb +2 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/app/controllers/css_controller.rb +6 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config.ru +2 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/application.rb +16 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/autoprefixer.yml +2 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/boot.rb +2 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/environment.rb +3 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/environments/test.rb +9 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/initializers/secret_token.rb +1 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/app/config/routes.rb +3 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/autoprefixer_spec.rb +121 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/processor_spec.rb +25 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/rails_spec.rb +40 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/railtie_spec.rb +29 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/spec/spec_helper.rb +16 -0
- data/vendor/ruby/2.6.0/gems/autoprefixer-rails-9.6.1.1/vendor/autoprefixer.js +67195 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/CHANGELOG.md +909 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/CONTRIBUTING.md +17 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/Gemfile +10 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/LICENSE.txt +25 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/README.md +301 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/Rakefile +166 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/bin/ruby-parse +7 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/bin/ruby-rewrite +7 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/ci/run_rubocop_specs +14 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/AST_FORMAT.md +1816 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/CUSTOMIZATION.md +37 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/INTERNALS.md +21 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/doc/css/common.css +68 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/gauntlet_parser.rb +123 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser.rb +82 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/all.rb +12 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ast/node.rb +40 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ast/processor.rb +264 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/base.rb +270 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/builders/default.rb +1741 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/clobbering_error.rb +13 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/color.rb +32 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/context.rb +59 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/current.rb +92 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/deprecation.rb +13 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/diagnostic.rb +163 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/diagnostic/engine.rb +105 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer.rb +23546 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer.rl +2503 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/dedenter.rb +79 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/explanation.rb +55 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/literal.rb +269 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/max_numparam_stack.rb +42 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/lexer/stack_state.rb +49 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/macruby.rb +6124 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/macruby.y +2198 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/messages.rb +90 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/meta.rb +33 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/rewriter.rb +105 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby18.rb +5661 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby18.y +1934 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby19.rb +6084 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby19.y +2175 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby20.rb +6511 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby20.y +2353 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby21.rb +6570 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby21.y +2357 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby22.rb +6605 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby22.y +2364 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby23.rb +6624 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby23.y +2370 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby24.rb +6689 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby24.y +2408 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby25.rb +6656 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby25.y +2405 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby26.rb +6670 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby26.y +2413 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby27.rb +6893 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/ruby27.y +2470 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/rubymotion.rb +6078 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/rubymotion.y +2182 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/runner.rb +253 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/runner/ruby_parse.rb +157 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/runner/ruby_rewrite.rb +101 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/buffer.rb +330 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/comment.rb +121 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/comment/associator.rb +210 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map.rb +186 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/collection.rb +18 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/condition.rb +21 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/constant.rb +32 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/definition.rb +23 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/for.rb +19 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/heredoc.rb +19 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/index.rb +33 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/keyword.rb +20 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/objc_kwarg.rb +19 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/operator.rb +17 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/rescue_body.rb +21 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/send.rb +36 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/ternary.rb +18 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/map/variable.rb +31 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/range.rb +310 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/rewriter.rb +513 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/rewriter/action.rb +44 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/tree_rewriter.rb +301 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/source/tree_rewriter/action.rb +133 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/static_environment.rb +46 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/syntax_error.rb +21 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/tree_rewriter.rb +134 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/lib/parser/version.rb +5 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/parser.gemspec +51 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/bug_163/fixtures/input.rb +5 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/bug_163/fixtures/output.rb +5 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/bug_163/rewriter.rb +20 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/helper.rb +59 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/parse_helper.rb +316 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/racc_coverage_helper.rb +133 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_base.rb +31 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_current.rb +29 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_diagnostic.rb +96 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_diagnostic_engine.rb +62 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_encoding.rb +99 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_lexer.rb +3659 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_lexer_stack_state.rb +78 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_parse_helper.rb +80 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_parser.rb +7579 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_runner_parse.rb +35 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_runner_rewrite.rb +47 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_buffer.rb +162 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_comment.rb +36 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_comment_associator.rb +367 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_map.rb +15 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_range.rb +172 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_rewriter.rb +541 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_rewriter_action.rb +46 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_source_tree_rewriter.rb +173 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/test_static_environment.rb +45 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/using_tree_rewriter/fixtures/input.rb +3 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/using_tree_rewriter/fixtures/output.rb +3 -0
- data/vendor/ruby/2.6.0/gems/parser-2.6.4.1/test/using_tree_rewriter/using_tree_rewriter.rb +9 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/CHANGELOG.md +77 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/CODE_OF_CONDUCT.md +10 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/Gemfile +2 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/LICENSE.txt +22 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/README.md +68 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/Rakefile +53 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/Makefile +271 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/SharedPtr.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast2c.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_fwd_decl.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_sel_cmp.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_sel_unify.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_selectors.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_supports.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/ast_values.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/backtrace.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/base64vlq.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/bind.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/c2ast.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/c99func.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/cencode.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/check_nesting.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/color_maps.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/constants.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/context.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/cssize.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/depend +4 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/emitter.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/environment.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/error_handling.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/eval.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/expand.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/extconf.rb +84 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/extend.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/file.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_colors.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_lists.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_maps.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_miscs.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_numbers.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_selectors.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_strings.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/fn_utils.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/inspect.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/json.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/lexer.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass.so +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/VERSION +1 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/contrib/plugin.cpp +60 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass.h +15 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/base.h +96 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/context.h +170 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/functions.h +139 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/values.h +145 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass/version.h +12 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/include/sass2scss.h +120 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast.cpp +963 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast.hpp +905 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast2c.cpp +80 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast2c.hpp +39 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_def_macros.hpp +132 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_fwd_decl.cpp +30 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_fwd_decl.hpp +341 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_sel_cmp.cpp +909 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_sel_unify.cpp +280 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_selectors.cpp +1475 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_selectors.hpp +568 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_supports.cpp +130 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_supports.hpp +121 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_values.cpp +967 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/ast_values.hpp +489 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/b64/cencode.h +32 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/b64/encode.h +79 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/backtrace.cpp +50 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/backtrace.hpp +29 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/base64vlq.cpp +47 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/base64vlq.hpp +30 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/bind.cpp +312 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/bind.hpp +15 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/c2ast.cpp +64 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/c2ast.hpp +14 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/c99func.c +54 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/cencode.c +108 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/check_nesting.cpp +394 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/check_nesting.hpp +66 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/color_maps.cpp +651 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/color_maps.hpp +331 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/constants.cpp +194 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/constants.hpp +194 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/context.cpp +890 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/context.hpp +152 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/cssize.cpp +604 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/cssize.hpp +77 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/debug.hpp +43 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/debugger.hpp +807 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/emitter.cpp +298 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/emitter.hpp +103 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/environment.cpp +260 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/environment.hpp +119 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/error_handling.cpp +212 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/error_handling.hpp +229 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/eval.cpp +1657 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/eval.hpp +112 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/expand.cpp +822 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/expand.hpp +78 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/extend.cpp +2132 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/extend.hpp +86 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/file.cpp +522 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/file.hpp +133 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_colors.cpp +594 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_colors.hpp +85 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_lists.cpp +284 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_lists.hpp +34 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_maps.cpp +94 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_maps.hpp +30 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_miscs.cpp +256 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_miscs.hpp +40 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_numbers.cpp +220 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_numbers.hpp +45 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_selectors.cpp +235 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_selectors.hpp +35 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_strings.cpp +254 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_strings.hpp +34 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_utils.cpp +156 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/fn_utils.hpp +56 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/inspect.cpp +1087 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/inspect.hpp +99 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/json.cpp +1436 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/json.hpp +117 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/kwd_arg_macros.hpp +28 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/lexer.cpp +184 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/lexer.hpp +315 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/listize.cpp +84 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/listize.hpp +38 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/mapping.hpp +18 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/memory/SharedPtr.cpp +33 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/memory/SharedPtr.hpp +286 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/node.cpp +322 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/node.hpp +118 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/operation.hpp +213 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/operators.cpp +266 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/operators.hpp +30 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/output.cpp +339 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/output.hpp +47 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/parser.cpp +3153 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/parser.hpp +402 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/paths.hpp +71 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/plugins.cpp +188 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/plugins.hpp +57 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/position.cpp +184 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/position.hpp +124 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/prelexer.cpp +1780 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/prelexer.hpp +484 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/remove_placeholders.cpp +87 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/remove_placeholders.hpp +34 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass.cpp +155 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass.hpp +142 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass2scss.cpp +895 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_context.cpp +772 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_context.hpp +129 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_functions.cpp +210 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_functions.hpp +50 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_util.cpp +152 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_util.hpp +256 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_values.cpp +365 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/sass_values.hpp +82 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/source_map.cpp +198 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/source_map.hpp +62 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/subset_map.cpp +58 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/subset_map.hpp +76 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/to_value.cpp +114 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/to_value.hpp +46 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/units.cpp +505 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/units.hpp +110 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8.h +34 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8/checked.h +336 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8/core.h +332 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8/unchecked.h +235 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8_string.cpp +105 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/utf8_string.hpp +37 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util.cpp +725 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util.hpp +106 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util_string.cpp +75 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/util_string.hpp +19 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/values.cpp +140 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/libsass/src/values.hpp +12 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/listize.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/node.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/operators.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/output.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/parser.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/plugins.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/position.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/prelexer.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/remove_placeholders.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass2scss.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_context.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_functions.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_util.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/sass_values.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/source_map.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/subset_map.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/to_value.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/units.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/utf8_string.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/util.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/util_string.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/ext/values.o +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc.rb +57 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/dependency.rb +17 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/engine.rb +139 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/error.rb +37 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/functions_handler.rb +73 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/import_handler.rb +50 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/importer.rb +31 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/libsass.so +0 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native.rb +62 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/lib_c.rb +21 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/native_context_api.rb +147 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/native_functions_api.rb +159 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass2scss_api.rb +10 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass_input_style.rb +13 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass_output_style.rb +12 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/sass_value.rb +97 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/native/string_list.rb +10 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/sass_2_scss.rb +9 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script.rb +17 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/functions.rb +8 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value.rb +137 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/bool.rb +32 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/color.rb +95 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/list.rb +136 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/map.rb +69 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/number.rb +389 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value/string.rb +96 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion.rb +69 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/base.rb +13 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/bool.rb +13 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/color.rb +18 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/list.rb +25 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/map.rb +21 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/number.rb +13 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/script/value_conversion/string.rb +17 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/util.rb +231 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/util/normalized_map.rb +117 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/lib/sassc/version.rb +5 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/sassc.gemspec +69 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/custom_importer_test.rb +127 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/engine_test.rb +314 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/error_test.rb +29 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/fixtures/paths.scss +10 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/functions_test.rb +323 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/native_test.rb +213 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/output_style_test.rb +107 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/sass_2_scss_test.rb +14 -0
- data/vendor/ruby/2.6.0/gems/sassc-2.2.0/test/test_helper.rb +45 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/README.md +533 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk.rb +12 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/error.rb +10 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/explicit_namespace.rb +80 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/gem_inflector.rb +19 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/inflector.rb +19 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/kernel.rb +33 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/loader.rb +759 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/loader/callbacks.rb +71 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/real_mod_name.rb +15 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/registry.rb +147 -0
- data/vendor/ruby/2.6.0/gems/zeitwerk-2.1.10/lib/zeitwerk/version.rb +5 -0
- data/vendor/ruby/2.6.0/specifications/autoprefixer-rails-9.6.1.1.gemspec +47 -0
- data/vendor/ruby/2.6.0/specifications/parser-2.6.4.1.gemspec +62 -0
- data/vendor/ruby/2.6.0/specifications/sassc-2.2.0.gemspec +60 -0
- data/vendor/ruby/2.6.0/specifications/zeitwerk-2.1.10.gemspec +21 -0
- metadata +441 -4
- data/vendor/assets/anjuna/css/anjuna-application.css +0 -2
- data/vendor/assets/anjuna/css/anjuna-theme.css +0 -2
@@ -0,0 +1,322 @@
|
|
1
|
+
// sass.hpp must go before all system headers to get the
|
2
|
+
// __EXTENSIONS__ fix on Solaris.
|
3
|
+
#include "sass.hpp"
|
4
|
+
|
5
|
+
#include <vector>
|
6
|
+
|
7
|
+
#include "node.hpp"
|
8
|
+
#include "context.hpp"
|
9
|
+
#include "parser.hpp"
|
10
|
+
|
11
|
+
namespace Sass {
|
12
|
+
|
13
|
+
|
14
|
+
Node Node::createCombinator(const Complex_Selector::Combinator& combinator) {
|
15
|
+
NodeDequePtr null;
|
16
|
+
return Node(COMBINATOR, combinator, NULL /*pSelector*/, null /*pCollection*/);
|
17
|
+
}
|
18
|
+
|
19
|
+
|
20
|
+
Node Node::createSelector(const Complex_Selector& pSelector) {
|
21
|
+
NodeDequePtr null;
|
22
|
+
|
23
|
+
Complex_Selector* pStripped = SASS_MEMORY_COPY(&pSelector);
|
24
|
+
pStripped->tail({});
|
25
|
+
pStripped->combinator(Complex_Selector::ANCESTOR_OF);
|
26
|
+
|
27
|
+
Node n(SELECTOR, Complex_Selector::ANCESTOR_OF, pStripped, null /*pCollection*/);
|
28
|
+
n.got_line_feed = pSelector.has_line_feed();
|
29
|
+
return n;
|
30
|
+
}
|
31
|
+
|
32
|
+
|
33
|
+
Node Node::createCollection() {
|
34
|
+
NodeDequePtr pEmptyCollection = std::make_shared<NodeDeque>();
|
35
|
+
return Node(COLLECTION, Complex_Selector::ANCESTOR_OF, NULL /*pSelector*/, pEmptyCollection);
|
36
|
+
}
|
37
|
+
|
38
|
+
|
39
|
+
Node Node::createCollection(const NodeDeque& values) {
|
40
|
+
NodeDequePtr pShallowCopiedCollection = std::make_shared<NodeDeque>(values);
|
41
|
+
return Node(COLLECTION, Complex_Selector::ANCESTOR_OF, NULL /*pSelector*/, pShallowCopiedCollection);
|
42
|
+
}
|
43
|
+
|
44
|
+
|
45
|
+
Node Node::createNil() {
|
46
|
+
NodeDequePtr null;
|
47
|
+
return Node(NIL, Complex_Selector::ANCESTOR_OF, NULL /*pSelector*/, null /*pCollection*/);
|
48
|
+
}
|
49
|
+
|
50
|
+
|
51
|
+
Node::Node(const TYPE& type, Complex_Selector::Combinator combinator, Complex_Selector* pSelector, NodeDequePtr& pCollection)
|
52
|
+
: got_line_feed(false), mType(type), mCombinator(combinator), mpSelector(pSelector), mpCollection(pCollection)
|
53
|
+
{ if (pSelector) got_line_feed = pSelector->has_line_feed(); }
|
54
|
+
|
55
|
+
|
56
|
+
Node Node::klone() const {
|
57
|
+
NodeDequePtr pNewCollection = std::make_shared<NodeDeque>();
|
58
|
+
if (mpCollection) {
|
59
|
+
for (NodeDeque::iterator iter = mpCollection->begin(), iterEnd = mpCollection->end(); iter != iterEnd; iter++) {
|
60
|
+
Node& toClone = *iter;
|
61
|
+
pNewCollection->push_back(toClone.klone());
|
62
|
+
}
|
63
|
+
}
|
64
|
+
|
65
|
+
Node n(mType, mCombinator, mpSelector ? SASS_MEMORY_COPY(mpSelector) : NULL, pNewCollection);
|
66
|
+
n.got_line_feed = got_line_feed;
|
67
|
+
return n;
|
68
|
+
}
|
69
|
+
|
70
|
+
|
71
|
+
bool Node::contains(const Node& potentialChild) const {
|
72
|
+
bool found = false;
|
73
|
+
|
74
|
+
for (NodeDeque::iterator iter = mpCollection->begin(), iterEnd = mpCollection->end(); iter != iterEnd; iter++) {
|
75
|
+
Node& toTest = *iter;
|
76
|
+
|
77
|
+
if (toTest == potentialChild) {
|
78
|
+
found = true;
|
79
|
+
break;
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
return found;
|
84
|
+
}
|
85
|
+
|
86
|
+
|
87
|
+
bool Node::operator==(const Node& rhs) const {
|
88
|
+
if (this->type() != rhs.type()) {
|
89
|
+
return false;
|
90
|
+
}
|
91
|
+
|
92
|
+
if (this->isCombinator()) {
|
93
|
+
|
94
|
+
return this->combinator() == rhs.combinator();
|
95
|
+
|
96
|
+
} else if (this->isNil()) {
|
97
|
+
|
98
|
+
return true; // no state to check
|
99
|
+
|
100
|
+
} else if (this->isSelector()){
|
101
|
+
|
102
|
+
return *this->selector() == *rhs.selector();
|
103
|
+
|
104
|
+
} else if (this->isCollection()) {
|
105
|
+
|
106
|
+
if (this->collection()->size() != rhs.collection()->size()) {
|
107
|
+
return false;
|
108
|
+
}
|
109
|
+
|
110
|
+
for (NodeDeque::iterator lhsIter = this->collection()->begin(), lhsIterEnd = this->collection()->end(),
|
111
|
+
rhsIter = rhs.collection()->begin(); lhsIter != lhsIterEnd; lhsIter++, rhsIter++) {
|
112
|
+
|
113
|
+
if (*lhsIter != *rhsIter) {
|
114
|
+
return false;
|
115
|
+
}
|
116
|
+
|
117
|
+
}
|
118
|
+
|
119
|
+
return true;
|
120
|
+
|
121
|
+
}
|
122
|
+
|
123
|
+
// We shouldn't get here.
|
124
|
+
throw "Comparing unknown node types. A new type was probably added and this method wasn't implemented for it.";
|
125
|
+
}
|
126
|
+
|
127
|
+
|
128
|
+
void Node::plus(Node& rhs) {
|
129
|
+
if (!this->isCollection() || !rhs.isCollection()) {
|
130
|
+
throw "Both the current node and rhs must be collections.";
|
131
|
+
}
|
132
|
+
this->collection()->insert(this->collection()->end(), rhs.collection()->begin(), rhs.collection()->end());
|
133
|
+
}
|
134
|
+
|
135
|
+
#ifdef DEBUG
|
136
|
+
std::ostream& operator<<(std::ostream& os, const Node& node) {
|
137
|
+
|
138
|
+
if (node.isCombinator()) {
|
139
|
+
|
140
|
+
switch (node.combinator()) {
|
141
|
+
case Complex_Selector::ANCESTOR_OF: os << "\" \""; break;
|
142
|
+
case Complex_Selector::PARENT_OF: os << "\">\""; break;
|
143
|
+
case Complex_Selector::PRECEDES: os << "\"~\""; break;
|
144
|
+
case Complex_Selector::ADJACENT_TO: os << "\"+\""; break;
|
145
|
+
case Complex_Selector::REFERENCE: os << "\"/\""; break;
|
146
|
+
}
|
147
|
+
|
148
|
+
} else if (node.isNil()) {
|
149
|
+
|
150
|
+
os << "nil";
|
151
|
+
|
152
|
+
} else if (node.isSelector()){
|
153
|
+
|
154
|
+
os << node.selector()->head()->to_string();
|
155
|
+
|
156
|
+
} else if (node.isCollection()) {
|
157
|
+
|
158
|
+
os << "[";
|
159
|
+
|
160
|
+
for (NodeDeque::iterator iter = node.collection()->begin(), iterBegin = node.collection()->begin(), iterEnd = node.collection()->end(); iter != iterEnd; iter++) {
|
161
|
+
if (iter != iterBegin) {
|
162
|
+
os << ", ";
|
163
|
+
}
|
164
|
+
|
165
|
+
os << (*iter);
|
166
|
+
}
|
167
|
+
|
168
|
+
os << "]";
|
169
|
+
|
170
|
+
}
|
171
|
+
|
172
|
+
return os;
|
173
|
+
|
174
|
+
}
|
175
|
+
#endif
|
176
|
+
|
177
|
+
|
178
|
+
Node complexSelectorToNode(Complex_Selector* pToConvert) {
|
179
|
+
if (pToConvert == NULL) {
|
180
|
+
return Node::createNil();
|
181
|
+
}
|
182
|
+
Node node = Node::createCollection();
|
183
|
+
node.got_line_feed = pToConvert->has_line_feed();
|
184
|
+
bool has_lf = pToConvert->has_line_feed();
|
185
|
+
|
186
|
+
// unwrap the selector from parent ref
|
187
|
+
if (pToConvert->head() && pToConvert->head()->has_parent_ref()) {
|
188
|
+
Complex_Selector_Obj tail = pToConvert->tail();
|
189
|
+
if (tail) tail->has_line_feed(pToConvert->has_line_feed());
|
190
|
+
pToConvert = tail;
|
191
|
+
}
|
192
|
+
|
193
|
+
while (pToConvert) {
|
194
|
+
|
195
|
+
bool empty_parent_ref = pToConvert->head() && pToConvert->head()->is_empty_reference();
|
196
|
+
|
197
|
+
// the first Complex_Selector may contain a dummy head pointer, skip it.
|
198
|
+
if (pToConvert->head() && !empty_parent_ref) {
|
199
|
+
node.collection()->push_back(Node::createSelector(*pToConvert));
|
200
|
+
if (has_lf) node.collection()->back().got_line_feed = has_lf;
|
201
|
+
if (pToConvert->head() || empty_parent_ref) {
|
202
|
+
if (pToConvert->tail()) {
|
203
|
+
pToConvert->tail()->has_line_feed(pToConvert->has_line_feed());
|
204
|
+
}
|
205
|
+
}
|
206
|
+
has_lf = false;
|
207
|
+
}
|
208
|
+
|
209
|
+
if (pToConvert->combinator() != Complex_Selector::ANCESTOR_OF) {
|
210
|
+
node.collection()->push_back(Node::createCombinator(pToConvert->combinator()));
|
211
|
+
if (has_lf) node.collection()->back().got_line_feed = has_lf;
|
212
|
+
has_lf = false;
|
213
|
+
}
|
214
|
+
|
215
|
+
if (pToConvert && empty_parent_ref && pToConvert->tail()) {
|
216
|
+
// pToConvert->tail()->has_line_feed(pToConvert->has_line_feed());
|
217
|
+
}
|
218
|
+
|
219
|
+
pToConvert = pToConvert->tail();
|
220
|
+
}
|
221
|
+
|
222
|
+
return node;
|
223
|
+
}
|
224
|
+
|
225
|
+
|
226
|
+
Complex_Selector* nodeToComplexSelector(const Node& toConvert) {
|
227
|
+
if (toConvert.isNil()) {
|
228
|
+
return NULL;
|
229
|
+
}
|
230
|
+
|
231
|
+
|
232
|
+
if (!toConvert.isCollection()) {
|
233
|
+
throw "The node to convert to a Complex_Selector* must be a collection type or nil.";
|
234
|
+
}
|
235
|
+
|
236
|
+
|
237
|
+
NodeDeque& childNodes = *toConvert.collection();
|
238
|
+
|
239
|
+
std::string noPath("");
|
240
|
+
Complex_Selector_Obj pFirst = SASS_MEMORY_NEW(Complex_Selector, ParserState("[NODE]"), Complex_Selector::ANCESTOR_OF, {}, {});
|
241
|
+
|
242
|
+
Complex_Selector_Obj pCurrent = pFirst;
|
243
|
+
|
244
|
+
if (toConvert.isSelector()) pFirst->has_line_feed(toConvert.got_line_feed);
|
245
|
+
if (toConvert.isCombinator()) pFirst->has_line_feed(toConvert.got_line_feed);
|
246
|
+
|
247
|
+
for (NodeDeque::iterator childIter = childNodes.begin(), childIterEnd = childNodes.end(); childIter != childIterEnd; childIter++) {
|
248
|
+
|
249
|
+
Node& child = *childIter;
|
250
|
+
|
251
|
+
if (child.isSelector()) {
|
252
|
+
// JMA - need to clone the selector, because they can end up getting shared across Node
|
253
|
+
// collections, and can result in an infinite loop during the call to parentSuperselector()
|
254
|
+
pCurrent->tail(SASS_MEMORY_COPY(child.selector()));
|
255
|
+
// if (child.got_line_feed) pCurrent->has_line_feed(child.got_line_feed);
|
256
|
+
pCurrent = pCurrent->tail();
|
257
|
+
} else if (child.isCombinator()) {
|
258
|
+
pCurrent->combinator(child.combinator());
|
259
|
+
if (child.got_line_feed) pCurrent->has_line_feed(child.got_line_feed);
|
260
|
+
|
261
|
+
// if the next node is also a combinator, create another Complex_Selector to hold it so it doesn't replace the current combinator
|
262
|
+
if (childIter+1 != childIterEnd) {
|
263
|
+
Node& nextNode = *(childIter+1);
|
264
|
+
if (nextNode.isCombinator()) {
|
265
|
+
pCurrent->tail(SASS_MEMORY_NEW(Complex_Selector, ParserState("[NODE]"), Complex_Selector::ANCESTOR_OF, {}, {}));
|
266
|
+
if (nextNode.got_line_feed) pCurrent->tail()->has_line_feed(nextNode.got_line_feed);
|
267
|
+
pCurrent = pCurrent->tail();
|
268
|
+
}
|
269
|
+
}
|
270
|
+
} else {
|
271
|
+
throw "The node to convert's children must be only combinators or selectors.";
|
272
|
+
}
|
273
|
+
}
|
274
|
+
|
275
|
+
// Put the dummy Compound_Selector in the first position, for consistency with the rest of libsass
|
276
|
+
Compound_Selector* fakeHead = SASS_MEMORY_NEW(Compound_Selector, ParserState("[NODE]"), 1);
|
277
|
+
Parent_Selector* selectorRef = SASS_MEMORY_NEW(Parent_Selector, ParserState("[NODE]"));
|
278
|
+
fakeHead->elements().push_back(selectorRef);
|
279
|
+
if (toConvert.got_line_feed) pFirst->has_line_feed(toConvert.got_line_feed);
|
280
|
+
// pFirst->has_line_feed(pFirst->has_line_feed() || pFirst->tail()->has_line_feed() || toConvert.got_line_feed);
|
281
|
+
pFirst->head(fakeHead);
|
282
|
+
return SASS_MEMORY_COPY(pFirst);
|
283
|
+
}
|
284
|
+
|
285
|
+
// A very naive trim function, which removes duplicates in a node
|
286
|
+
// This is only used in Complex_Selector::unify_with for now, may need modifications to fit other needs
|
287
|
+
Node Node::naiveTrim(Node& seqses) {
|
288
|
+
|
289
|
+
std::vector<Node*> res;
|
290
|
+
std::vector<Complex_Selector_Obj> known;
|
291
|
+
|
292
|
+
NodeDeque::reverse_iterator seqsesIter = seqses.collection()->rbegin(),
|
293
|
+
seqsesIterEnd = seqses.collection()->rend();
|
294
|
+
|
295
|
+
for (; seqsesIter != seqsesIterEnd; ++seqsesIter)
|
296
|
+
{
|
297
|
+
Node& seqs1 = *seqsesIter;
|
298
|
+
if( seqs1.isSelector() ) {
|
299
|
+
Complex_Selector_Obj sel = seqs1.selector();
|
300
|
+
std::vector<Complex_Selector_Obj>::iterator it;
|
301
|
+
bool found = false;
|
302
|
+
for (it = known.begin(); it != known.end(); ++it) {
|
303
|
+
if (**it == *sel) { found = true; break; }
|
304
|
+
}
|
305
|
+
if( !found ) {
|
306
|
+
known.push_back(seqs1.selector());
|
307
|
+
res.push_back(&seqs1);
|
308
|
+
}
|
309
|
+
} else {
|
310
|
+
res.push_back(&seqs1);
|
311
|
+
}
|
312
|
+
}
|
313
|
+
|
314
|
+
Node result = Node::createCollection();
|
315
|
+
|
316
|
+
for (size_t i = res.size() - 1; i != std::string::npos; --i) {
|
317
|
+
result.collection()->push_back(*res[i]);
|
318
|
+
}
|
319
|
+
|
320
|
+
return result;
|
321
|
+
}
|
322
|
+
}
|
@@ -0,0 +1,118 @@
|
|
1
|
+
#ifndef SASS_NODE_H
|
2
|
+
#define SASS_NODE_H
|
3
|
+
|
4
|
+
#include <deque>
|
5
|
+
#include <memory>
|
6
|
+
|
7
|
+
#include "ast.hpp"
|
8
|
+
|
9
|
+
|
10
|
+
namespace Sass {
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
class Context;
|
16
|
+
|
17
|
+
/*
|
18
|
+
There are a lot of stumbling blocks when trying to port the ruby extend code to C++. The biggest is the choice of
|
19
|
+
data type. The ruby code will pretty seamlessly switch types between an Array<SimpleSequence or Op> (libsass'
|
20
|
+
equivalent is the Complex_Selector) to a Sequence, which contains more metadata about the sequence than just the
|
21
|
+
selector info. They also have the ability to have arbitrary nestings of arrays like [1, [2]], which is hard to
|
22
|
+
implement using Array equivalents in C++ (like the deque or vector). They also have the ability to include nil
|
23
|
+
in the arrays, like [1, nil, 3], which has potential semantic differences than an empty array [1, [], 3]. To be
|
24
|
+
able to represent all of these as unique cases, we need to create a tree of variant objects. The tree nature allows
|
25
|
+
the inconsistent nesting levels. The variant nature (while making some of the C++ code uglier) allows the code to
|
26
|
+
more closely match the ruby code, which is a huge benefit when attempting to implement an complex algorithm like
|
27
|
+
the Extend operator.
|
28
|
+
|
29
|
+
Note that the current libsass data model also pairs the combinator with the Complex_Selector that follows it, but
|
30
|
+
ruby sass has no such restriction, so we attempt to create a data structure that can handle them split apart.
|
31
|
+
*/
|
32
|
+
|
33
|
+
class Node;
|
34
|
+
typedef std::deque<Node> NodeDeque;
|
35
|
+
typedef std::shared_ptr<NodeDeque> NodeDequePtr;
|
36
|
+
|
37
|
+
class Node {
|
38
|
+
public:
|
39
|
+
enum TYPE {
|
40
|
+
SELECTOR,
|
41
|
+
COMBINATOR,
|
42
|
+
COLLECTION,
|
43
|
+
NIL
|
44
|
+
};
|
45
|
+
|
46
|
+
TYPE type() const { return mType; }
|
47
|
+
bool isCombinator() const { return mType == COMBINATOR; }
|
48
|
+
bool isSelector() const { return mType == SELECTOR; }
|
49
|
+
bool isCollection() const { return mType == COLLECTION; }
|
50
|
+
bool isNil() const { return mType == NIL; }
|
51
|
+
bool got_line_feed;
|
52
|
+
|
53
|
+
Complex_Selector::Combinator combinator() const { return mCombinator; }
|
54
|
+
|
55
|
+
Complex_Selector_Obj selector() { return mpSelector; }
|
56
|
+
Complex_Selector_Obj selector() const { return mpSelector; }
|
57
|
+
|
58
|
+
NodeDequePtr collection() { return mpCollection; }
|
59
|
+
const NodeDequePtr collection() const { return mpCollection; }
|
60
|
+
|
61
|
+
static Node createCombinator(const Complex_Selector::Combinator& combinator);
|
62
|
+
|
63
|
+
// This method will klone the selector, stripping off the tail and combinator
|
64
|
+
static Node createSelector(const Complex_Selector& pSelector);
|
65
|
+
|
66
|
+
static Node createCollection();
|
67
|
+
static Node createCollection(const NodeDeque& values);
|
68
|
+
|
69
|
+
static Node createNil();
|
70
|
+
static Node naiveTrim(Node& seqses);
|
71
|
+
|
72
|
+
Node klone() const;
|
73
|
+
|
74
|
+
bool operator==(const Node& rhs) const;
|
75
|
+
inline bool operator!=(const Node& rhs) const { return !(*this == rhs); }
|
76
|
+
|
77
|
+
|
78
|
+
/*
|
79
|
+
COLLECTION FUNCTIONS
|
80
|
+
|
81
|
+
Most types don't need any helper methods (nil and combinator due to their simplicity and
|
82
|
+
selector due to the fact that we leverage the non-node selector code on the Complex_Selector
|
83
|
+
whereever possible). The following methods are intended to be called on Node objects whose
|
84
|
+
type is COLLECTION only.
|
85
|
+
*/
|
86
|
+
|
87
|
+
// rhs and this must be node collections. Shallow copy the nodes from rhs to the end of this.
|
88
|
+
// This function DOES NOT remove the nodes from rhs.
|
89
|
+
void plus(Node& rhs);
|
90
|
+
|
91
|
+
// potentialChild must be a node collection of selectors/combinators. this must be a collection
|
92
|
+
// of collections of nodes/combinators. This method checks if potentialChild is a child of this
|
93
|
+
// Node.
|
94
|
+
bool contains(const Node& potentialChild) const;
|
95
|
+
|
96
|
+
private:
|
97
|
+
// Private constructor; Use the static methods (like createCombinator and createSelector)
|
98
|
+
// to instantiate this object. This is more expressive, and it allows us to break apart each
|
99
|
+
// case into separate functions.
|
100
|
+
Node(const TYPE& type, Complex_Selector::Combinator combinator, Complex_Selector* pSelector, NodeDequePtr& pCollection);
|
101
|
+
|
102
|
+
TYPE mType;
|
103
|
+
|
104
|
+
// TODO: can we union these to save on memory?
|
105
|
+
Complex_Selector::Combinator mCombinator;
|
106
|
+
Complex_Selector_Obj mpSelector;
|
107
|
+
NodeDequePtr mpCollection;
|
108
|
+
};
|
109
|
+
|
110
|
+
#ifdef DEBUG
|
111
|
+
std::ostream& operator<<(std::ostream& os, const Node& node);
|
112
|
+
#endif
|
113
|
+
Node complexSelectorToNode(Complex_Selector* pToConvert);
|
114
|
+
Complex_Selector* nodeToComplexSelector(const Node& toConvert);
|
115
|
+
|
116
|
+
}
|
117
|
+
|
118
|
+
#endif
|
@@ -0,0 +1,213 @@
|
|
1
|
+
#ifndef SASS_OPERATION_H
|
2
|
+
#define SASS_OPERATION_H
|
3
|
+
|
4
|
+
// base classes to implement curiously recurring template pattern (CRTP)
|
5
|
+
// https://en.wikipedia.org/wiki/Curiously_recurring_template_pattern
|
6
|
+
|
7
|
+
#include <stdexcept>
|
8
|
+
|
9
|
+
#include "ast_fwd_decl.hpp"
|
10
|
+
#include "ast_def_macros.hpp"
|
11
|
+
|
12
|
+
namespace Sass {
|
13
|
+
|
14
|
+
#define ATTACH_ABSTRACT_CRTP_PERFORM_METHODS()\
|
15
|
+
virtual void perform(Operation<void>* op) = 0; \
|
16
|
+
virtual Value* perform(Operation<Value*>* op) = 0; \
|
17
|
+
virtual std::string perform(Operation<std::string>* op) = 0; \
|
18
|
+
virtual AST_Node* perform(Operation<AST_Node*>* op) = 0; \
|
19
|
+
virtual Selector* perform(Operation<Selector*>* op) = 0; \
|
20
|
+
virtual Statement* perform(Operation<Statement*>* op) = 0; \
|
21
|
+
virtual Expression* perform(Operation<Expression*>* op) = 0; \
|
22
|
+
virtual union Sass_Value* perform(Operation<union Sass_Value*>* op) = 0; \
|
23
|
+
virtual Supports_Condition* perform(Operation<Supports_Condition*>* op) = 0; \
|
24
|
+
|
25
|
+
// you must add operators to every class
|
26
|
+
// ensures `this` of actual instance type
|
27
|
+
// we therefore call the specific operator
|
28
|
+
// they are virtual so most specific is used
|
29
|
+
#define ATTACH_CRTP_PERFORM_METHODS()\
|
30
|
+
virtual void perform(Operation<void>* op) override { return (*op)(this); } \
|
31
|
+
virtual Value* perform(Operation<Value*>* op) override { return (*op)(this); } \
|
32
|
+
virtual std::string perform(Operation<std::string>* op) override { return (*op)(this); } \
|
33
|
+
virtual AST_Node* perform(Operation<AST_Node*>* op) override { return (*op)(this); } \
|
34
|
+
virtual Selector* perform(Operation<Selector*>* op) override { return (*op)(this); } \
|
35
|
+
virtual Statement* perform(Operation<Statement*>* op) override { return (*op)(this); } \
|
36
|
+
virtual Expression* perform(Operation<Expression*>* op) override { return (*op)(this); } \
|
37
|
+
virtual union Sass_Value* perform(Operation<union Sass_Value*>* op) override { return (*op)(this); } \
|
38
|
+
virtual Supports_Condition* perform(Operation<Supports_Condition*>* op) override { return (*op)(this); } \
|
39
|
+
|
40
|
+
template<typename T>
|
41
|
+
class Operation {
|
42
|
+
public:
|
43
|
+
virtual T operator()(AST_Node* x) = 0;
|
44
|
+
// statements
|
45
|
+
virtual T operator()(Block* x) = 0;
|
46
|
+
virtual T operator()(Ruleset* x) = 0;
|
47
|
+
virtual T operator()(Bubble* x) = 0;
|
48
|
+
virtual T operator()(Trace* x) = 0;
|
49
|
+
virtual T operator()(Supports_Block* x) = 0;
|
50
|
+
virtual T operator()(Media_Block* x) = 0;
|
51
|
+
virtual T operator()(At_Root_Block* x) = 0;
|
52
|
+
virtual T operator()(Directive* x) = 0;
|
53
|
+
virtual T operator()(Keyframe_Rule* x) = 0;
|
54
|
+
virtual T operator()(Declaration* x) = 0;
|
55
|
+
virtual T operator()(Assignment* x) = 0;
|
56
|
+
virtual T operator()(Import* x) = 0;
|
57
|
+
virtual T operator()(Import_Stub* x) = 0;
|
58
|
+
virtual T operator()(Warning* x) = 0;
|
59
|
+
virtual T operator()(Error* x) = 0;
|
60
|
+
virtual T operator()(Debug* x) = 0;
|
61
|
+
virtual T operator()(Comment* x) = 0;
|
62
|
+
virtual T operator()(If* x) = 0;
|
63
|
+
virtual T operator()(For* x) = 0;
|
64
|
+
virtual T operator()(Each* x) = 0;
|
65
|
+
virtual T operator()(While* x) = 0;
|
66
|
+
virtual T operator()(Return* x) = 0;
|
67
|
+
virtual T operator()(Content* x) = 0;
|
68
|
+
virtual T operator()(Extension* x) = 0;
|
69
|
+
virtual T operator()(Definition* x) = 0;
|
70
|
+
virtual T operator()(Mixin_Call* x) = 0;
|
71
|
+
// expressions
|
72
|
+
virtual T operator()(Null* x) = 0;
|
73
|
+
virtual T operator()(List* x) = 0;
|
74
|
+
virtual T operator()(Map* x) = 0;
|
75
|
+
virtual T operator()(Function* x) = 0;
|
76
|
+
virtual T operator()(Binary_Expression* x) = 0;
|
77
|
+
virtual T operator()(Unary_Expression* x) = 0;
|
78
|
+
virtual T operator()(Function_Call* x) = 0;
|
79
|
+
virtual T operator()(Custom_Warning* x) = 0;
|
80
|
+
virtual T operator()(Custom_Error* x) = 0;
|
81
|
+
virtual T operator()(Variable* x) = 0;
|
82
|
+
virtual T operator()(Number* x) = 0;
|
83
|
+
virtual T operator()(Color* x) = 0;
|
84
|
+
virtual T operator()(Color_RGBA* x) = 0;
|
85
|
+
virtual T operator()(Color_HSLA* x) = 0;
|
86
|
+
virtual T operator()(Boolean* x) = 0;
|
87
|
+
virtual T operator()(String_Schema* x) = 0;
|
88
|
+
virtual T operator()(String_Quoted* x) = 0;
|
89
|
+
virtual T operator()(String_Constant* x) = 0;
|
90
|
+
virtual T operator()(Supports_Condition* x) = 0;
|
91
|
+
virtual T operator()(Supports_Operator* x) = 0;
|
92
|
+
virtual T operator()(Supports_Negation* x) = 0;
|
93
|
+
virtual T operator()(Supports_Declaration* x) = 0;
|
94
|
+
virtual T operator()(Supports_Interpolation* x) = 0;
|
95
|
+
virtual T operator()(Media_Query* x) = 0;
|
96
|
+
virtual T operator()(Media_Query_Expression* x) = 0;
|
97
|
+
virtual T operator()(At_Root_Query* x) = 0;
|
98
|
+
virtual T operator()(Parent_Selector* x) = 0;
|
99
|
+
virtual T operator()(Parent_Reference* x) = 0;
|
100
|
+
// parameters and arguments
|
101
|
+
virtual T operator()(Parameter* x) = 0;
|
102
|
+
virtual T operator()(Parameters* x) = 0;
|
103
|
+
virtual T operator()(Argument* x) = 0;
|
104
|
+
virtual T operator()(Arguments* x) = 0;
|
105
|
+
// selectors
|
106
|
+
virtual T operator()(Selector_Schema* x) = 0;
|
107
|
+
virtual T operator()(Placeholder_Selector* x) = 0;
|
108
|
+
virtual T operator()(Type_Selector* x) = 0;
|
109
|
+
virtual T operator()(Class_Selector* x) = 0;
|
110
|
+
virtual T operator()(Id_Selector* x) = 0;
|
111
|
+
virtual T operator()(Attribute_Selector* x) = 0;
|
112
|
+
virtual T operator()(Pseudo_Selector* x) = 0;
|
113
|
+
virtual T operator()(Wrapped_Selector* x) = 0;
|
114
|
+
virtual T operator()(Compound_Selector* x)= 0;
|
115
|
+
virtual T operator()(Complex_Selector* x) = 0;
|
116
|
+
virtual T operator()(Selector_List* x) = 0;
|
117
|
+
};
|
118
|
+
|
119
|
+
// example: Operation_CRTP<Expression*, Eval>
|
120
|
+
// T is the base return type of all visitors
|
121
|
+
// D is the class derived visitor class
|
122
|
+
// normaly you want to implement all operators
|
123
|
+
template <typename T, typename D>
|
124
|
+
class Operation_CRTP : public Operation<T> {
|
125
|
+
public:
|
126
|
+
T operator()(AST_Node* x) { return static_cast<D*>(this)->fallback(x); }
|
127
|
+
// statements
|
128
|
+
T operator()(Block* x) { return static_cast<D*>(this)->fallback(x); }
|
129
|
+
T operator()(Ruleset* x) { return static_cast<D*>(this)->fallback(x); }
|
130
|
+
T operator()(Bubble* x) { return static_cast<D*>(this)->fallback(x); }
|
131
|
+
T operator()(Trace* x) { return static_cast<D*>(this)->fallback(x); }
|
132
|
+
T operator()(Supports_Block* x) { return static_cast<D*>(this)->fallback(x); }
|
133
|
+
T operator()(Media_Block* x) { return static_cast<D*>(this)->fallback(x); }
|
134
|
+
T operator()(At_Root_Block* x) { return static_cast<D*>(this)->fallback(x); }
|
135
|
+
T operator()(Directive* x) { return static_cast<D*>(this)->fallback(x); }
|
136
|
+
T operator()(Keyframe_Rule* x) { return static_cast<D*>(this)->fallback(x); }
|
137
|
+
T operator()(Declaration* x) { return static_cast<D*>(this)->fallback(x); }
|
138
|
+
T operator()(Assignment* x) { return static_cast<D*>(this)->fallback(x); }
|
139
|
+
T operator()(Import* x) { return static_cast<D*>(this)->fallback(x); }
|
140
|
+
T operator()(Import_Stub* x) { return static_cast<D*>(this)->fallback(x); }
|
141
|
+
T operator()(Warning* x) { return static_cast<D*>(this)->fallback(x); }
|
142
|
+
T operator()(Error* x) { return static_cast<D*>(this)->fallback(x); }
|
143
|
+
T operator()(Debug* x) { return static_cast<D*>(this)->fallback(x); }
|
144
|
+
T operator()(Comment* x) { return static_cast<D*>(this)->fallback(x); }
|
145
|
+
T operator()(If* x) { return static_cast<D*>(this)->fallback(x); }
|
146
|
+
T operator()(For* x) { return static_cast<D*>(this)->fallback(x); }
|
147
|
+
T operator()(Each* x) { return static_cast<D*>(this)->fallback(x); }
|
148
|
+
T operator()(While* x) { return static_cast<D*>(this)->fallback(x); }
|
149
|
+
T operator()(Return* x) { return static_cast<D*>(this)->fallback(x); }
|
150
|
+
T operator()(Content* x) { return static_cast<D*>(this)->fallback(x); }
|
151
|
+
T operator()(Extension* x) { return static_cast<D*>(this)->fallback(x); }
|
152
|
+
T operator()(Definition* x) { return static_cast<D*>(this)->fallback(x); }
|
153
|
+
T operator()(Mixin_Call* x) { return static_cast<D*>(this)->fallback(x); }
|
154
|
+
// expressions
|
155
|
+
T operator()(Null* x) { return static_cast<D*>(this)->fallback(x); }
|
156
|
+
T operator()(List* x) { return static_cast<D*>(this)->fallback(x); }
|
157
|
+
T operator()(Map* x) { return static_cast<D*>(this)->fallback(x); }
|
158
|
+
T operator()(Function* x) { return static_cast<D*>(this)->fallback(x); }
|
159
|
+
T operator()(Binary_Expression* x) { return static_cast<D*>(this)->fallback(x); }
|
160
|
+
T operator()(Unary_Expression* x) { return static_cast<D*>(this)->fallback(x); }
|
161
|
+
T operator()(Function_Call* x) { return static_cast<D*>(this)->fallback(x); }
|
162
|
+
T operator()(Custom_Warning* x) { return static_cast<D*>(this)->fallback(x); }
|
163
|
+
T operator()(Custom_Error* x) { return static_cast<D*>(this)->fallback(x); }
|
164
|
+
T operator()(Variable* x) { return static_cast<D*>(this)->fallback(x); }
|
165
|
+
T operator()(Number* x) { return static_cast<D*>(this)->fallback(x); }
|
166
|
+
T operator()(Color* x) { return static_cast<D*>(this)->fallback(x); }
|
167
|
+
T operator()(Color_RGBA* x) { return static_cast<D*>(this)->fallback(x); }
|
168
|
+
T operator()(Color_HSLA* x) { return static_cast<D*>(this)->fallback(x); }
|
169
|
+
T operator()(Boolean* x) { return static_cast<D*>(this)->fallback(x); }
|
170
|
+
T operator()(String_Schema* x) { return static_cast<D*>(this)->fallback(x); }
|
171
|
+
T operator()(String_Constant* x) { return static_cast<D*>(this)->fallback(x); }
|
172
|
+
T operator()(String_Quoted* x) { return static_cast<D*>(this)->fallback(x); }
|
173
|
+
T operator()(Supports_Condition* x) { return static_cast<D*>(this)->fallback(x); }
|
174
|
+
T operator()(Supports_Operator* x) { return static_cast<D*>(this)->fallback(x); }
|
175
|
+
T operator()(Supports_Negation* x) { return static_cast<D*>(this)->fallback(x); }
|
176
|
+
T operator()(Supports_Declaration* x) { return static_cast<D*>(this)->fallback(x); }
|
177
|
+
T operator()(Supports_Interpolation* x) { return static_cast<D*>(this)->fallback(x); }
|
178
|
+
T operator()(Media_Query* x) { return static_cast<D*>(this)->fallback(x); }
|
179
|
+
T operator()(Media_Query_Expression* x) { return static_cast<D*>(this)->fallback(x); }
|
180
|
+
T operator()(At_Root_Query* x) { return static_cast<D*>(this)->fallback(x); }
|
181
|
+
T operator()(Parent_Selector* x) { return static_cast<D*>(this)->fallback(x); }
|
182
|
+
T operator()(Parent_Reference* x) { return static_cast<D*>(this)->fallback(x); }
|
183
|
+
// parameters and arguments
|
184
|
+
T operator()(Parameter* x) { return static_cast<D*>(this)->fallback(x); }
|
185
|
+
T operator()(Parameters* x) { return static_cast<D*>(this)->fallback(x); }
|
186
|
+
T operator()(Argument* x) { return static_cast<D*>(this)->fallback(x); }
|
187
|
+
T operator()(Arguments* x) { return static_cast<D*>(this)->fallback(x); }
|
188
|
+
// selectors
|
189
|
+
T operator()(Selector_Schema* x) { return static_cast<D*>(this)->fallback(x); }
|
190
|
+
T operator()(Placeholder_Selector* x) { return static_cast<D*>(this)->fallback(x); }
|
191
|
+
T operator()(Type_Selector* x) { return static_cast<D*>(this)->fallback(x); }
|
192
|
+
T operator()(Class_Selector* x) { return static_cast<D*>(this)->fallback(x); }
|
193
|
+
T operator()(Id_Selector* x) { return static_cast<D*>(this)->fallback(x); }
|
194
|
+
T operator()(Attribute_Selector* x) { return static_cast<D*>(this)->fallback(x); }
|
195
|
+
T operator()(Pseudo_Selector* x) { return static_cast<D*>(this)->fallback(x); }
|
196
|
+
T operator()(Wrapped_Selector* x) { return static_cast<D*>(this)->fallback(x); }
|
197
|
+
T operator()(Compound_Selector* x){ return static_cast<D*>(this)->fallback(x); }
|
198
|
+
T operator()(Complex_Selector* x) { return static_cast<D*>(this)->fallback(x); }
|
199
|
+
T operator()(Selector_List* x) { return static_cast<D*>(this)->fallback(x); }
|
200
|
+
|
201
|
+
// fallback with specific type U
|
202
|
+
// will be called if not overloaded
|
203
|
+
template <typename U> T fallback(U x)
|
204
|
+
{
|
205
|
+
throw std::runtime_error(
|
206
|
+
std::string(typeid(*this).name()) + ": CRTP not implemented for " + typeid(x).name());
|
207
|
+
}
|
208
|
+
|
209
|
+
};
|
210
|
+
|
211
|
+
}
|
212
|
+
|
213
|
+
#endif
|