class Eslintrb::Lint
Constants
- DEFAULTS
Default options for compilation
- Error
- SourcePath
Public Class Methods
new(options = nil, globals = nil)
click to toggle source
# File lib/eslintrb/lint.rb, line 32 def initialize(options = nil, globals = nil) if options == :defaults then @options = DEFAULTS.dup elsif options == :eslintrc then raise '`.eslintrc` is not exist on current working directory.' unless File.exist?('./.eslintrc') @options = MultiJson.load(File.read('./.eslintrc')) elsif options.instance_of? Hash then @options = options.dup # @options = DEFAULTS.merge(options) elsif options.nil? @options = nil else raise 'Unsupported option for Eslintrb: ' + options.to_s end @globals = globals @context = ExecJS.compile("var window = {}; \n" + File.open(SourcePath, "r:UTF-8").read) end
Public Instance Methods
lint(source)
click to toggle source
# File lib/eslintrb/lint.rb, line 53 def lint(source) source = source.respond_to?(:read) ? source.read : source.to_s js = ["var errors;"] if @options.nil? and @globals.nil? then js << "errors = window.eslint.verify(#{MultiJson.dump(source)}, {});" elsif @globals.nil? then js << "errors = window.eslint.verify(#{MultiJson.dump(source)}, #{MultiJson.dump(@options)});" else globals_hash = Hash[*@globals.product([false]).flatten] @options = @options.merge({globals: globals_hash}) js << "errors = window.eslint.verify(#{MultiJson.dump(source)}, #{MultiJson.dump(@options)});" end js << "return errors;" @context.exec js.join("\n") end