class Docks::Tags::Require

Public Class Methods

new() click to toggle source
# File lib/docks/tags/require_tag.rb, line 4
def initialize
  @name = :require
  @multiline = false
  @multiple_allowed = true

  @require_associations = {}
end

Public Instance Methods

process(symbol) click to toggle source
# File lib/docks/tags/require_tag.rb, line 12
def process(symbol)
  symbol.update(@name) do |requires|
    Array(requires).map { |a_require| split_on_commas_spaces_and_pipes(a_require) }.flatten
  end

  if requires = symbol[@name]
    requires.each do |required|
      @require_associations[required] ||= []
      @require_associations[required] << symbol
    end
  end
end
setup_post_processors() click to toggle source
# File lib/docks/tags/require_tag.rb, line 25
def setup_post_processors
  after_all(:late) do |pattern_library|
    @require_associations.each do |descriptor, users|
      if result = pattern_library.find(descriptor)
        symbol = result.symbol || result.pattern
        symbol[UsedBy] = users.map { |user| user.to_descriptor }
      end
    end

    @require_associations = {}
  end
end