module Jekyll::Assets::Liquid::Tag::Proxies

Public Class Methods

add(name, tag, *args, &block) click to toggle source

# File lib/jekyll/assets/liquid/tag/proxies.rb, line 26
def self.add(name, tag, *args, &block)
  add_by_class(*generate_class(name, tag, &block), *args)
end
add_by_class(class_, name, tag, *args) click to toggle source
# File lib/jekyll/assets/liquid/tag/proxies.rb, line 12
def self.add_by_class(class_, name, tag, *args)
  proc_ = proc { |v| [v.to_s, v, v.to_sym] }
  all << {
    :name => proc_.call(name).uniq,
    :args => [args].flatten.map(&proc_).flatten.uniq,
    :tags => [ tag].flatten.map(&proc_).flatten.uniq,
    :class  => class_
  }

  all
end
all() click to toggle source

# File lib/jekyll/assets/liquid/tag/proxies.rb, line 86
def self.all
  @_all ||= Set.new
end
base_keys() click to toggle source

# File lib/jekyll/assets/liquid/tag/proxies.rb, line 40
def self.base_keys
  all.select { |val| val[:class].is_a?(Symbol) }.map do |val|
    val[:name]
  end.flatten
end
get(name, tag = nil, arg = nil) click to toggle source

# File lib/jekyll/assets/liquid/tag/proxies.rb, line 54
def self.get(name, tag = nil, arg = nil)
  if name && tag && arg then get_by_name_and_tag_and_arg(name, tag, arg)
  elsif name && tag
    get_by_name_and_tag(name, tag)

  else
    all.select do |val|
      val[:name].include?(name)
    end
  end
end
get_by_name_and_tag(name, tag) click to toggle source

# File lib/jekyll/assets/liquid/tag/proxies.rb, line 77
def self.get_by_name_and_tag(name, tag)
  all.select do |val|
    val[:name].include?(name) && (val[:tags].include?(:all) || val[:tags]                  .include?(tag))
  end
end
get_by_name_and_tag_and_arg(name, tag, arg) click to toggle source

# File lib/jekyll/assets/liquid/tag/proxies.rb, line 68
def self.get_by_name_and_tag_and_arg(name, tag, arg)
  all.select do |val|
    val[:name].include?(name) && (val[:tags].include?(:all) || val[:tags]                  .include?(tag)) && val[:args].include?(arg)
  end
end
has?(name, tag = nil, arg = nil) click to toggle source

# File lib/jekyll/assets/liquid/tag/proxies.rb, line 48
def self.has?(name, tag = nil, arg = nil)
  get(name, tag, arg).any?
end
keys() click to toggle source

# File lib/jekyll/assets/liquid/tag/proxies.rb, line 32
def self.keys
  all.select { |val| !val[:class].is_a?(Symbol) }.map do |val|
    val[:name]
  end.flatten
end

Private Class Methods

generate_class(name, tag, &block) click to toggle source

# File lib/jekyll/assets/liquid/tag/proxies.rb, line 93
def self.generate_class(name, tag, &block)
  class_ = const_set(random_name, Class.new)
  class_.class_eval(&block)
  return class_, name, tag
end
random_name() click to toggle source

# File lib/jekyll/assets/liquid/tag/proxies.rb, line 102
def self.random_name
  (0...12).map { ("a".."z").to_a.values_at(rand(26)) }.join.capitalize
end