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