Sha256: f936b2f1e1f75465c8474735812f02da5470a4c6a76aed039a3759fd14c822f7
Contents?: true
Size: 1.09 KB
Versions: 2
Compression:
Stored size: 1.09 KB
Contents
RSpec::Matchers.define :have_correct_syntax do match do |file_path| source = File.read(file_path) extension = File.extname(file_path) case extension when '.rb', '.rake' check_ruby_syntax(source) when '.rhtml', '.erb' check_erb_syntax(source) when '.haml' check_haml_syntax(source) else raise "Checking syntax for #{extension} files is not yet supported" end end define_method :check_ruby_syntax do |code| begin eval('__crash_me__;' + code) rescue SyntaxError false rescue NameError true end end define_method :check_erb_syntax do |code| require 'action_view' require 'ostruct' begin view = ActionView::Template::Handlers::ERB.call(OpenStruct.new(source: code)) eval('__crash_me__; ' + view) rescue SyntaxError false rescue NameError true end end define_method :check_haml_syntax do |code| require 'haml' begin Haml::Engine.new(code) rescue Haml::SyntaxError false rescue NameError true end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ammeter-1.1.1 | lib/ammeter/rspec/generator/matchers/have_correct_syntax.rb |
ammeter-1.1.0 | lib/ammeter/rspec/generator/matchers/have_correct_syntax.rb |