module Syntaxer
@author Artyom Kramarenko
Constants
- DEFAULT_FILES_MASK
- LanguageDefinition
- SYNTAXER_CONFIG_FILE_NAME
- SYNTAXER_RULES_FILE
Attributes
hook[R]
jslint[R]
reader[R]
repository[R]
results[R]
root_path[R]
warnings[R]
Public Class Methods
check_syntax(options = {})
click to toggle source
Main method to be used for syntax checking.
@return [Boolean]
@param [Hash] options the options to perform syntax checking @option options [String] :root_path (Dir.getwd) The starting point, which will be used for all relative path's @option options [String] :languages (:all) Type of languages to be used in checking @option options [String] :repository (git|svn) Type of repository @option options [String] :config_file(SYNTAXER_RULES_FILE
) File with syntax rules and language definitions
# File lib/syntaxer.rb, line 45 def check_syntax(options = {}) @root_path = options[:root_path] @warnings = options[:warnings] @hook = options[:hook] @jslint = options[:jslint] Printer.quite = options[:quite] || false Printer.loud = options[:loud] || false @reader = Reader::DSLReader.load(options[:config_file]) if @jslint # if jslint option passed set from command line we have to add new rule with indicated dir rule = LanguageDefinition.new(:javascript, %w{js}, nil, [@jslint+"*", @jslint+"**/*"], nil, nil, nil, true, true) rule.exec_rule = Runner.javascript.call @reader.add_rule rule end @repository = Repository.factory(@root_path, options[:repository]) if options[:repository] $stdmyout = StringIO.new checker = Checker.process(self) Printer.print_result checker exit(1) unless checker.error_files.empty? && $stdmyout.string.empty? end
configure() { |self| ... }
click to toggle source
# File lib/syntaxer.rb, line 31 def configure yield(self) if block_given? end
make_hook(options)
click to toggle source
This method generate and put hook to .git/hooks
@return [Nil]
@see Syntaxer#check_syntax @raise ArgumentError if no repository indicated @raise ArgumentError if SVN is indicated. SVN is not supported yet.
# File lib/syntaxer.rb, line 78 def make_hook(options) @root_path = options[:root_path] raise ArgumentError, 'Indicate repository type' unless options.include?(:repository) raise ArgumentError, "SVN is temporarily not supported" if options[:repository].to_sym == :svn hook_file = "#{@root_path}/.git/hooks/pre-commit" hook_string = 'syntaxer ' if options[:restore] && File.exist?(File.join(@root_path,'.syntaxer')) hook_string += File.open(File.join(@root_path,'.syntaxer')).read else repo = Repository.factory(@root_path, options[:repository]) hook_string += "-r git --hook" hook_string += " -c config/syntaxer.rb" if options[:rails] hook_string += " -c #{options[:config_file]}" unless options[:config_file].nil? end File.open(hook_file, 'w') do |f| f.puts hook_string end File.chmod(0755, hook_file) # save syntaxer options File.open(File.join(options[:root_path],'.syntaxer'), 'w') do |f| f.write(hook_string.gsub('syntaxer ','')) end rescue Exception => e puts e.message.color(:red) raise e end
wizzard(options)
click to toggle source
# File lib/syntaxer.rb, line 110 def wizzard(options) Wizzard.start end