fix: 🔀 [fixed some of the by-me-caused merge issues]
This commit is contained in:
parent
3c7f48016d
commit
51509ff071
1 changed files with 8 additions and 48 deletions
|
@ -1,59 +1,19 @@
|
||||||
|
|
||||||
|
|
||||||
module Comfpile
|
module Comfpile
|
||||||
class ContextTag
|
class ContextKey
|
||||||
attr_reader :tag, :taglist
|
attr_reader :provider, :context_hash, :context_symbol
|
||||||
|
|
||||||
def self.form_context(tag)
|
def initialize(provider, ctx_hash, ctx_symbol)
|
||||||
@known_tags ||= {}
|
@provider = provider
|
||||||
|
|
||||||
case tag
|
@context_hash = ctx_hash
|
||||||
when Symbol
|
@context_symbol = ctx_symbol
|
||||||
tag_instance = @known_tags[tag]
|
|
||||||
|
|
||||||
return tag_instance unless tag_instance.nil?
|
|
||||||
|
|
||||||
tag_instance = ContextTag.new(tag)
|
|
||||||
tag_instance = (@known_tags[tag_instance] ||= tag_instance)
|
|
||||||
|
|
||||||
@known_tags[tag] ||= tag_instance
|
|
||||||
@known_tags[tag_instance.tag] ||= tag_instance
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def initialize(tag)
|
def to_s
|
||||||
process_tag(tag)
|
"CTX[" + @context_symbol.to_s + "]"
|
||||||
end
|
end
|
||||||
|
|
||||||
private def process_tag(tag)
|
|
||||||
case tag
|
|
||||||
when Symbol, String
|
|
||||||
@taglist = tag.to_s.split('_').uniq.sort
|
|
||||||
when Array
|
|
||||||
@taglist = tag.map(&:to_s).uniq.sort
|
|
||||||
end
|
|
||||||
|
|
||||||
@tag = @taglist.join('_').to_sym
|
|
||||||
@taghash = {}
|
|
||||||
@taglist.each do |tag|
|
|
||||||
@taghash[tag] = true
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def include?(*tags)
|
|
||||||
tags = tags - @tag_array
|
|
||||||
|
|
||||||
tags.empy?
|
|
||||||
end
|
|
||||||
alias include_all? include?
|
|
||||||
|
|
||||||
def include_any?(*tags)
|
|
||||||
tags = tags & @tag_array
|
|
||||||
|
|
||||||
tags.empty?
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue