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