class Codeqa::Checkers::CheckErb

Public Class Methods

available?() click to toggle source
# File lib/codeqa/checkers/check_erb.rb, line 8
def self.available?
  engine?
end
check?(sourcefile) click to toggle source
# File lib/codeqa/checkers/check_erb.rb, line 4
def self.check?(sourcefile)
  sourcefile.erb?
end
engine?() click to toggle source

rubocop:enable RescueException,HandleExceptions

# File lib/codeqa/checkers/check_erb.rb, line 37
def self.engine?
  @@engine ||= if %w(actionview action_view).include? Codeqa.configuration.erb_engine.downcase
                 require 'action_view'
                 true
               else
                 require 'erb'
                 true
               end
end

Public Instance Methods

check() click to toggle source

rubocop:disable RescueException,HandleExceptions

# File lib/codeqa/checkers/check_erb.rb, line 21
      def check
        if defined?(ActionView)
          ActionView::Template::Handlers::Erubis.new(erb).result
        else
          ERB.new(sourcefile.content.gsub('<%=', '<%'), nil, '-').result
        end
      rescue SyntaxError => e
        errors.add(nil, <<-EOF)
        #{e.message}
        #{e.backtrace.join("\n")}
        EOF
      rescue Exception
        true # valid syntax - just the proper setup for the template/rendering is missing
      end
hint() click to toggle source
# File lib/codeqa/checkers/check_erb.rb, line 16
def hint
  'There is a syntax error in the ruby code of the erb parsed file.'
end
name() click to toggle source
# File lib/codeqa/checkers/check_erb.rb, line 12
def name
  'erb syntax'
end