48 lines
1.2 KiB
Python
Raw Normal View History

2012-03-30 19:32:11 +00:00
# -*- coding: utf8 -*-
2012-03-18 14:21:58 +00:00
"""
2012-03-30 19:32:11 +00:00
.. module:: lesscpy.plib.deferred
:synopsis: Deferred mixin call.
Copyright (c)
See LICENSE for details.
.. moduleauthor:: Jóhann T. Maríusson <jtm@robot.is>
2012-03-18 14:21:58 +00:00
"""
from .node import Node
class Deferred(Node):
def __init__(self, mixin, args):
2012-03-30 19:32:11 +00:00
"""This node represents mixin calls
within the body of other mixins. The calls
to these mixins are deferred until the parent
mixin is called.
args:
mixin (Mixin): Mixin object
args (list): Call arguments
2012-03-18 14:21:58 +00:00
"""
self.mixin = mixin
self.args = args
def parse(self, scope):
2012-03-30 19:32:11 +00:00
""" Parse function.
args:
2012-04-03 13:36:08 +00:00
scope (Scope): Current scope
2012-03-30 19:32:11 +00:00
returns:
mixed
2012-03-18 14:21:58 +00:00
"""
if hasattr(self.mixin, 'call'):
2012-04-06 19:23:22 +00:00
return self.mixin.call(scope, self.args)
2012-03-24 18:33:19 +00:00
mixins = scope.mixins(self.mixin.raw())
if not mixins:
return self
2012-03-30 19:32:11 +00:00
for mixin in mixins:
2012-04-06 19:23:22 +00:00
res = mixin.call(scope, self.args)
2012-04-06 14:23:13 +00:00
if res: return res
return False
2012-04-06 14:23:13 +00:00
2012-04-06 14:53:38 +00:00
def fmt(self, fills):
"""
"""
return ''
2012-03-30 19:32:11 +00:00