module ERLE::Registry

Attributes

_enclosures[RW]
_patterns[RW]

Public Class Methods

enclosure(klass, one, two) click to toggle source
# File lib/erle/registry.rb, line 12
def self.enclosure(klass, one, two)
  @_enclosures[one] = klass
end
open_find(str) click to toggle source
# File lib/erle/registry.rb, line 31
def self.open_find(str)
  sorted_encolsures.find do |k, v|
    str =~ k
  end
end
openings() click to toggle source
# File lib/erle/registry.rb, line 41
def self.openings
  @openings ||= sorted_encolsures.keys
end
openings_regex() click to toggle source
# File lib/erle/registry.rb, line 49
def self.openings_regex
  @openings_regex ||= Regexp.new("(#{openings_source.join('|')})")
end
openings_source() click to toggle source
# File lib/erle/registry.rb, line 45
def self.openings_source
  @openings_source ||= openings.map(&:source)
end
pattern(klass, pat) click to toggle source
# File lib/erle/registry.rb, line 16
def self.pattern(klass, pat)
  (@_patterns[klass] ||= Set.new).add(pat)
end
pattern_find() { |pattern| ... } click to toggle source
# File lib/erle/registry.rb, line 20
def self.pattern_find
  return unless block_given?
  @_patterns.each do |klass, patterns|
    pattern = patterns.find do |pattern|
      yield(pattern)
    end
    return [klass, pattern] if pattern
  end
  nil
end
sorted_encolsures() click to toggle source
# File lib/erle/registry.rb, line 37
def self.sorted_encolsures
  @sorted_encolsures ||= @_enclosures.sort_by { |pattern, klass| pattern.source.length }.reverse.to_h
end