better_html 1.0.14 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/MIT-LICENSE +1 -0
- data/Rakefile +19 -14
- data/ext/better_html_ext/better_html.h +1 -0
- data/ext/better_html_ext/extconf.rb +16 -0
- data/ext/better_html_ext/html_tokenizer.c +12 -0
- data/ext/better_html_ext/html_tokenizer.h +7 -0
- data/ext/better_html_ext/parser.c +793 -0
- data/ext/better_html_ext/parser.h +93 -0
- data/ext/better_html_ext/tokenizer.c +717 -0
- data/ext/better_html_ext/tokenizer.h +80 -0
- data/lib/better_html/ast/iterator.rb +14 -9
- data/lib/better_html/ast/node.rb +4 -2
- data/lib/better_html/better_erb/erubi_implementation.rb +43 -39
- data/lib/better_html/better_erb/runtime_checks.rb +140 -133
- data/lib/better_html/better_erb/validated_output_buffer.rb +30 -22
- data/lib/better_html/better_erb.rb +58 -54
- data/lib/better_html/config.rb +7 -4
- data/lib/better_html/errors.rb +4 -2
- data/lib/better_html/helpers.rb +7 -3
- data/lib/better_html/html_attributes.rb +6 -2
- data/lib/better_html/parser.rb +21 -14
- data/lib/better_html/railtie.rb +8 -4
- data/lib/better_html/test_helper/ruby_node.rb +15 -9
- data/lib/better_html/test_helper/safe_erb/allowed_script_type.rb +8 -4
- data/lib/better_html/test_helper/safe_erb/base.rb +12 -9
- data/lib/better_html/test_helper/safe_erb/no_javascript_tag_helper.rb +7 -3
- data/lib/better_html/test_helper/safe_erb/no_statements.rb +7 -3
- data/lib/better_html/test_helper/safe_erb/script_interpolation.rb +9 -4
- data/lib/better_html/test_helper/safe_erb/tag_interpolation.rb +23 -20
- data/lib/better_html/test_helper/safe_erb_tester.rb +35 -33
- data/lib/better_html/test_helper/safe_lodash_tester.rb +36 -34
- data/lib/better_html/test_helper/safety_error.rb +2 -0
- data/lib/better_html/tokenizer/base_erb.rb +19 -15
- data/lib/better_html/tokenizer/html_erb.rb +3 -2
- data/lib/better_html/tokenizer/html_lodash.rb +22 -13
- data/lib/better_html/tokenizer/javascript_erb.rb +3 -1
- data/lib/better_html/tokenizer/location.rb +17 -6
- data/lib/better_html/tokenizer/token.rb +2 -0
- data/lib/better_html/tokenizer/token_array.rb +8 -8
- data/lib/better_html/tree/attribute.rb +10 -6
- data/lib/better_html/tree/attributes_list.rb +9 -5
- data/lib/better_html/tree/tag.rb +10 -6
- data/lib/better_html/version.rb +3 -1
- data/lib/better_html.rb +19 -17
- data/lib/tasks/better_html_tasks.rake +1 -0
- metadata +43 -148
- data/lib/better_html/better_erb/erubis_implementation.rb +0 -44
- data/test/better_html/better_erb/implementation_test.rb +0 -406
- data/test/better_html/errors_test.rb +0 -13
- data/test/better_html/helpers_test.rb +0 -49
- data/test/better_html/parser_test.rb +0 -314
- data/test/better_html/test_helper/ruby_node_test.rb +0 -288
- data/test/better_html/test_helper/safe_erb/allowed_script_type_test.rb +0 -45
- data/test/better_html/test_helper/safe_erb/no_javascript_tag_helper_test.rb +0 -37
- data/test/better_html/test_helper/safe_erb/no_statements_test.rb +0 -128
- data/test/better_html/test_helper/safe_erb/script_interpolation_test.rb +0 -149
- data/test/better_html/test_helper/safe_erb/tag_interpolation_test.rb +0 -303
- data/test/better_html/test_helper/safe_lodash_tester_test.rb +0 -90
- data/test/better_html/tokenizer/html_erb_test.rb +0 -180
- data/test/better_html/tokenizer/html_lodash_test.rb +0 -98
- data/test/better_html/tokenizer/location_test.rb +0 -75
- data/test/better_html/tokenizer/token_array_test.rb +0 -145
- data/test/better_html/tokenizer/token_test.rb +0 -15
- data/test/dummy/README.rdoc +0 -28
- data/test/dummy/Rakefile +0 -6
- data/test/dummy/app/assets/javascripts/application.js +0 -13
- data/test/dummy/app/assets/stylesheets/application.css +0 -15
- data/test/dummy/app/controllers/application_controller.rb +0 -5
- data/test/dummy/app/helpers/application_helper.rb +0 -2
- data/test/dummy/app/views/layouts/application.html.erb +0 -14
- data/test/dummy/bin/bundle +0 -3
- data/test/dummy/bin/rails +0 -4
- data/test/dummy/bin/rake +0 -4
- data/test/dummy/bin/setup +0 -29
- data/test/dummy/config/application.rb +0 -26
- data/test/dummy/config/boot.rb +0 -5
- data/test/dummy/config/database.yml +0 -25
- data/test/dummy/config/environment.rb +0 -5
- data/test/dummy/config/environments/development.rb +0 -41
- data/test/dummy/config/environments/production.rb +0 -79
- data/test/dummy/config/environments/test.rb +0 -42
- data/test/dummy/config/initializers/assets.rb +0 -11
- data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
- data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
- data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
- data/test/dummy/config/initializers/inflections.rb +0 -16
- data/test/dummy/config/initializers/mime_types.rb +0 -4
- data/test/dummy/config/initializers/session_store.rb +0 -3
- data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
- data/test/dummy/config/locales/en.yml +0 -23
- data/test/dummy/config/routes.rb +0 -56
- data/test/dummy/config/secrets.yml +0 -22
- data/test/dummy/config.ru +0 -4
- data/test/dummy/public/404.html +0 -67
- data/test/dummy/public/422.html +0 -67
- data/test/dummy/public/500.html +0 -66
- data/test/dummy/public/favicon.ico +0 -0
- data/test/test_helper.rb +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d6b9f2275b7aaaf6375f643a430e8bf16612078e9c28f24d3148d1606bb599a0
|
4
|
+
data.tar.gz: 6a239818ba87d563497936f0c0dd5aa5fbe9ede118ac7f2171211f1a257a87cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 223d459a69405ae02d1de61a403fa92d19ed5dd468b509a68f1687c6aa7f8fc47165231965a2ce2c326f20addab0de356cc63c8d49d678aab9d3abb3c6888c97
|
7
|
+
data.tar.gz: 2ede27f18ee91fd2381b8be5b90253895a797164ebc6304e2031cdd59769111a1d5f53efb000d3a09cee82bb6bb2917d63525910d70be9a4fcf838f6b7fa4539
|
data/MIT-LICENSE
CHANGED
data/Rakefile
CHANGED
@@ -1,28 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
begin
|
2
|
-
require
|
4
|
+
require "bundler/setup"
|
3
5
|
require "bundler/gem_tasks"
|
4
6
|
rescue LoadError
|
5
|
-
puts
|
7
|
+
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
6
8
|
end
|
7
9
|
|
8
|
-
require
|
10
|
+
require "rake/extensiontask"
|
11
|
+
|
12
|
+
Rake::ExtensionTask.new("better_html_ext")
|
13
|
+
|
14
|
+
require "rdoc/task"
|
9
15
|
|
10
16
|
RDoc::Task.new(:rdoc) do |rdoc|
|
11
|
-
rdoc.rdoc_dir =
|
12
|
-
rdoc.title =
|
13
|
-
rdoc.options <<
|
14
|
-
rdoc.rdoc_files.include(
|
15
|
-
rdoc.rdoc_files.include(
|
17
|
+
rdoc.rdoc_dir = "rdoc"
|
18
|
+
rdoc.title = "BetterHtml"
|
19
|
+
rdoc.options << "--line-numbers"
|
20
|
+
rdoc.rdoc_files.include("README.rdoc")
|
21
|
+
rdoc.rdoc_files.include("lib/**/*.rb")
|
16
22
|
end
|
17
23
|
|
18
|
-
require
|
24
|
+
require "rake/testtask"
|
19
25
|
|
20
26
|
Rake::TestTask.new(:test) do |t|
|
21
|
-
t.libs <<
|
22
|
-
t.libs <<
|
23
|
-
t.pattern =
|
27
|
+
t.libs << "lib"
|
28
|
+
t.libs << "test"
|
29
|
+
t.pattern = "test/**/*_test.rb"
|
24
30
|
t.verbose = false
|
25
31
|
end
|
26
32
|
|
27
|
-
|
28
|
-
task default: :test
|
33
|
+
task default: [:compile, :test]
|
@@ -0,0 +1 @@
|
|
1
|
+
#include "html_tokenizer.h"
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "mkmf"
|
4
|
+
|
5
|
+
# rubocop:disable Style/GlobalVars
|
6
|
+
$CXXFLAGS += " -std=c++11 "
|
7
|
+
$CXXFLAGS += " -g -O1 -ggdb "
|
8
|
+
$CFLAGS += " -g -O1 -ggdb "
|
9
|
+
|
10
|
+
if ENV["DEBUG"]
|
11
|
+
$CXXFLAGS += " -DDEBUG "
|
12
|
+
$CFLAGS += " -DDEBUG "
|
13
|
+
end
|
14
|
+
# rubocop:enable Style/GlobalVars
|
15
|
+
|
16
|
+
create_makefile("better_html_ext")
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#include <ruby.h>
|
2
|
+
#include "tokenizer.h"
|
3
|
+
#include "parser.h"
|
4
|
+
|
5
|
+
static VALUE mHtmlTokenizer = Qnil;
|
6
|
+
|
7
|
+
void Init_better_html_ext()
|
8
|
+
{
|
9
|
+
mHtmlTokenizer = rb_define_module("HtmlTokenizer");
|
10
|
+
Init_html_tokenizer_tokenizer(mHtmlTokenizer);
|
11
|
+
Init_html_tokenizer_parser(mHtmlTokenizer);
|
12
|
+
}
|