class Loom::Pattern::Loader

Public Class Methods

load(config) click to toggle source
# File lib/loom/pattern/loader.rb, line 7
def load(config)
  loader = Loader.new config.files.loom_files
  loader.load_patterns
  loader
end
new(pattern_files) click to toggle source
# File lib/loom/pattern/loader.rb, line 14
def initialize(pattern_files)
  @loom_pattern_files = pattern_files
  @reference_set = ReferenceSet.new
end

Public Instance Methods

[](slug)
Alias for: get_pattern_ref
get_pattern_ref(slug) click to toggle source
# File lib/loom/pattern/loader.rb, line 32
def get_pattern_ref(slug)
  @reference_set[slug]
end
Also aliased as: []
load_patterns() click to toggle source
# File lib/loom/pattern/loader.rb, line 37
def load_patterns
  @loom_pattern_files.each do |f|
    raise SiteFileNotFound, f unless File.exists? f
    load_pattern_file f
  end
end
patterns(slugs=nil) click to toggle source
# File lib/loom/pattern/loader.rb, line 23
def patterns(slugs=nil)
  if slugs.nil?
    @reference_set.pattern_refs
  else
    refs = slugs.map { |slug| get_pattern_ref(slug) }
    expand_refs(refs)
  end
end
slugs() click to toggle source
# File lib/loom/pattern/loader.rb, line 19
def slugs
  @reference_set.slugs
end

Private Instance Methods

expand_refs(refs) click to toggle source
# File lib/loom/pattern/loader.rb, line 49
def expand_refs(refs)
  refs.flat_map { |r| r.expand_slugs }.map { |s| @reference_set[s] }
end
load_pattern_file(f) click to toggle source
# File lib/loom/pattern/loader.rb, line 45
def load_pattern_file(f)
  @reference_set.merge! ReferenceSet.load_from_file(f)
end