Class: PatternMatcher::PatternManager

Inherits:
Object
  • Object
show all
Defined in:
lib/pattern_matcher/pattern_manager.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pattern_hash) ⇒ PatternManager

Returns a new instance of PatternManager.



20
21
22
# File 'lib/pattern_matcher/pattern_manager.rb', line 20

def initialize(pattern_hash)
  @patterns_hash = pattern_hash
end

Instance Attribute Details

#patterns_hashObject

Returns the value of attribute patterns_hash.



4
5
6
# File 'lib/pattern_matcher/pattern_manager.rb', line 4

def patterns_hash
  @patterns_hash
end

Class Method Details

.initialize_patternsObject



6
7
8
9
# File 'lib/pattern_matcher/pattern_manager.rb', line 6

def self.initialize_patterns
  raw_pattern_hash = load_yaml || {}
  PatternManager.new_from_raw_hash raw_pattern_hash
end

.new_from_raw_hash(raw_hash) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/pattern_matcher/pattern_manager.rb', line 11

def self.new_from_raw_hash(raw_hash)
  patterns = {}
  hash_patterns(raw_hash).each_pair do |a_key, a_pattern|
    a_pattern[:pattern_id] = a_key
    patterns[a_key] = PatternMatcher::Pattern.new(a_pattern)
  end
  PatternManager.new(patterns)
end

Instance Method Details

#add_pattern(pattern) ⇒ Object



24
25
26
# File 'lib/pattern_matcher/pattern_manager.rb', line 24

def add_pattern(pattern)
  @patterns_hash[pattern.pattern_id] = pattern if pattern.is_valid?
end

#countObject



50
51
52
# File 'lib/pattern_matcher/pattern_manager.rb', line 50

def count
  @patterns_hash.keys.count || 0
end

#eachObject



44
45
46
47
48
# File 'lib/pattern_matcher/pattern_manager.rb', line 44

def each
  @patterns_hash.values.each do |pattern|
    yield pattern
  end
end

#keysObject



28
29
30
# File 'lib/pattern_matcher/pattern_manager.rb', line 28

def keys
  @patterns_hash.keys
end

#to_aObject



40
41
42
# File 'lib/pattern_matcher/pattern_manager.rb', line 40

def to_a
  @patterns_hash.values
end

#to_sObject



32
33
34
35
36
37
38
# File 'lib/pattern_matcher/pattern_manager.rb', line 32

def to_s
  ret_str = ""
  @patterns_hash.values.each do |pattern|
    ret_str += pattern.to_s + "\n"
  end
  ret_str
end