Class: Loom::Pattern::ReferenceSet

Inherits:
Object
  • Object
show all
Defined in:
lib/loom/pattern/reference_set.rb

Overview

A collection of Pattern::Reference objects

Defined Under Namespace

Classes: Builder

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeReferenceSet

Returns a new instance of ReferenceSet.



23
24
25
# File 'lib/loom/pattern/reference_set.rb', line 23

def initialize
  @slug_to_ref_map = {}
end

Class Method Details

.load_from_file(path) ⇒ Object



17
18
19
20
# File 'lib/loom/pattern/reference_set.rb', line 17

def load_from_file(path)
  Loom.log.debug1(self) { "loading patterns from file => #{path}" }
  Builder.create File.read(path), path
end

Instance Method Details

#add_pattern_refs(refs) ⇒ Object



46
47
48
49
50
51
52
53
# File 'lib/loom/pattern/reference_set.rb', line 46

def add_pattern_refs(refs)
  map = @slug_to_ref_map
  refs.each do |ref|
    Loom.log.debug2(self) { "adding ref to set => #{ref.slug}" }
    raise DuplicatePatternRef, ref.slug if map[ref.slug]
    map[ref.slug] = ref
  end
end

#get_pattern_ref(slug) ⇒ Object Also known as: []



35
36
37
38
39
# File 'lib/loom/pattern/reference_set.rb', line 35

def get_pattern_ref(slug)
  ref = @slug_to_ref_map[slug]
  raise UnknownPatternMethod, slug unless ref
  ref
end

#merge!(ref_set) ⇒ Object



42
43
44
# File 'lib/loom/pattern/reference_set.rb', line 42

def merge!(ref_set)
  self.add_pattern_refs(ref_set.pattern_refs)
end

#pattern_refsObject



31
32
33
# File 'lib/loom/pattern/reference_set.rb', line 31

def pattern_refs
  @slug_to_ref_map.values
end

#slugsObject



27
28
29
# File 'lib/loom/pattern/reference_set.rb', line 27

def slugs
  @slug_to_ref_map.keys
end