Class: Loom::Pattern::ReferenceSet
- Inherits:
-
Object
- Object
- Loom::Pattern::ReferenceSet
- 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
- #add_pattern_refs(refs) ⇒ Object
- #get_pattern_ref(slug) ⇒ Object (also: #[])
-
#initialize ⇒ ReferenceSet
constructor
A new instance of ReferenceSet.
- #merge!(ref_set) ⇒ Object
- #pattern_refs ⇒ Object
- #slugs ⇒ Object
Constructor Details
#initialize ⇒ ReferenceSet
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
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_refs ⇒ Object
31 32 33 |
# File 'lib/loom/pattern/reference_set.rb', line 31 def pattern_refs @slug_to_ref_map.values end |
#slugs ⇒ Object
27 28 29 |
# File 'lib/loom/pattern/reference_set.rb', line 27 def slugs @slug_to_ref_map.keys end |