Sha256: 4f1f9cf67caa8926ac41f2975baff8122f1ad20152e4459eeb3e2ebc1fd436be
Contents?: true
Size: 722 Bytes
Versions: 28
Compression:
Stored size: 722 Bytes
Contents
module JsDuck # Handles patterns of external classes. # # A pattern can be a simple classname or a one with a wildcard "*". class ExternalClasses def initialize(classnames = []) @class_names = {} @patterns = [] classnames.each do |name| if name =~ /\*/ @patterns << make_pattern(name) else @class_names[name] = true end end end # True if the classname matches an external class pattern. def is?(classname) @class_names[classname] || @patterns.any? {|p| classname =~ p } end def make_pattern(pattern) Regexp.new("^" + pattern.split(/\*/, -1).map {|s| Regexp.escape(s) }.join(".*") + "$") end end end
Version data entries
28 entries across 28 versions & 1 rubygems