class Docks::Containers::PatternLibrary
Attributes
patterns[R]
Public Class Methods
new()
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 6 def initialize @patterns = {} @summary = false end
Public Instance Methods
<<(pattern)
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 11 def <<(pattern) @patterns[pattern.name.to_s] ||= pattern end
[](pattern_name)
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 15 def [](pattern_name) @patterns[Docks.pattern_id(pattern_name)] end
find(descriptor)
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 47 def find(descriptor) descriptor = Descriptor.new(descriptor, assume: :pattern) pattern = @patterns[descriptor.pattern] return false if pattern.nil? symbol = pattern.find(descriptor) symbol = nil if !symbol || symbol == pattern ::OpenStruct.new(pattern: pattern, symbol: symbol) end
group_by(grouper, &block)
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 25 def group_by(grouper, &block) grouped_patterns = {} grouper = grouper.to_sym @patterns.each do |name, pattern| grouper_value = pattern.send(grouper) next if grouper_value.nil? grouped_patterns[grouper_value] ||= [] grouped_patterns[grouper_value] << pattern end if block_given? grouped_patterns.each(&block) else grouped_patterns end end
groups(&block)
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 43 def groups(&block) group_by(:group, &block) end
has_pattern?(pattern_name)
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 19 def has_pattern?(pattern_name) !self[pattern_name].nil? end
summarized?()
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 57 def summarized?; @summary end
Also aliased as: summary?
summary()
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 60 def summary return self if summarized? summary = self.class.new summary.instance_variable_set(:@summary, true) summary.instance_variable_set(:@patterns, Hash[@patterns.map { |name, pattern| [name, pattern.summary] }]) summary end
Also aliased as: summarize
summary!()
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 70 def summary! @summary = true @patterns = Hash[@patterns.map { |name, pattern| [name, pattern.summary] }] end
Also aliased as: summarize!
to_json()
click to toggle source
# File lib/docks/containers/pattern_library_container.rb, line 23 def to_json; @patterns.to_json end