Sha256: dc52666add7a9d0096d4d6a758c24ec0be16df00ef6d06e5d94fa47658a31ee5

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

require_relative 'base'
require 'better_html/test_helper/ruby_node'

module BetterHtml
  module TestHelper
    module SafeErb
      class NoJavascriptTagHelper < Base
        def validate
          no_javascript_tag_helper(ast)
        end

        private

        def no_javascript_tag_helper(node)
          erb_nodes(node).each do |erb_node, indicator_node, code_node|
            indicator = indicator_node&.loc&.source
            next if indicator == '#' || indicator == '%'
            source = code_node.loc.source

            ruby_node = begin
              RubyNode.parse(source)
            rescue ::Parser::SyntaxError
              nil
            end
            next unless ruby_node
            ruby_node.descendants(:send, :csend).each do |send_node|
              next unless send_node.method_name?(:javascript_tag)

              add_error(
                "'javascript_tag do' syntax is deprecated; use inline <script> instead",
                location: erb_node.loc,
              )
            end
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
better_html-1.0.16 lib/better_html/test_helper/safe_erb/no_javascript_tag_helper.rb
better_html-1.0.15 lib/better_html/test_helper/safe_erb/no_javascript_tag_helper.rb
better_html-1.0.14 lib/better_html/test_helper/safe_erb/no_javascript_tag_helper.rb
better_html-1.0.13 lib/better_html/test_helper/safe_erb/no_javascript_tag_helper.rb
better_html-1.0.12 lib/better_html/test_helper/safe_erb/no_javascript_tag_helper.rb
better_html-1.0.11 lib/better_html/test_helper/safe_erb/no_javascript_tag_helper.rb