base_style()
click to toggle source
def base_style
get_own_style(Token::Tokens::Text)
end
find(n)
click to toggle source
def find(n)
registry[n.to_s]
end
get_own_style(token)
click to toggle source
def get_own_style(token)
token.token_chain.reverse_each do |anc|
return Style.new(self, styles[anc]) if styles[anc]
end
nil
end
get_style(token)
click to toggle source
def get_style(token)
get_own_style(token) || base_style
end
name(n=nil)
click to toggle source
def name(n=nil)
return @name if n.nil?
@name = n.to_s
Theme.registry[@name] = self
end
palette(arg={})
click to toggle source
def self.palette(arg={})
@palette ||= InheritableHash.new(superclass.palette)
if arg.is_a? Hash
@palette.merge! arg
@palette
else
case arg
when /#[0-9a-f]+/
arg
else
@palette[arg] or raise "not in palette: #{arg.inspect}"
end
end
end
registry()
click to toggle source
def registry
@registry ||= {}
end
render(opts={}, &b)
click to toggle source
def self.render(opts={}, &b)
new(opts).render(&b)
end
style(*tokens)
click to toggle source
def style(*tokens)
style = tokens.last.is_a?(Hash) ? tokens.pop : {}
tokens.each do |tok|
styles[tok] = style
end
end
styles()
click to toggle source
def self.styles
@styles ||= InheritableHash.new(superclass.styles)
end