class Rouge::Token
Attributes
Public Class Methods
Source
# File lib/rouge/token.rb, line 18 def [](qualname) return qualname unless qualname.is_a? ::String Token.cache[qualname] end
Source
# File lib/rouge/token.rb, line 61 def each_token(&b) Token.cache.each do |(_, t)| b.call(t) end end
Source
# File lib/rouge/token.rb, line 45 def make_token(name, shortname, &b) parent = self Class.new(parent) do @parent = parent @name = name @shortname = shortname register! class_eval(&b) if b end end
Source
# File lib/rouge/token.rb, line 28 def matches?(other) other.token_chain.include? self end
Source
# File lib/rouge/token.rb, line 36 def qualname @qualname ||= token_chain.map(&:name).join('.') end
Source
# File lib/rouge/token.rb, line 40 def register! Token.cache[self.qualname] = self parent.sub_tokens[self.name] = self end
Source
# File lib/rouge/token.rb, line 56 def token(name, shortname, &b) tok = make_token(name, shortname, &b) const_set(name, tok) end
Source
# File lib/rouge/token.rb, line 32 def token_chain @token_chain ||= ancestors.take_while { |x| x != Token }.reverse end