def expand_partial( vars )
result = []
follow_up = self.class::FOLLOW_UP
var_specs = []
@variable_specs.each do | var, expand , max_length |
if vars.key? var
unless var_specs.none?
result.push( follow_up.new( var_specs ) )
var_specs = []
end
unless result.none?
result.push( Literal.new(self.class::SEPARATOR) )
end
one = Array(expand_one(var, vars[var], expand, max_length))
result.push( Literal.new(one.join(self.class::SEPARATOR)))
end
var_specs << [var,expand,max_length]
end
if result.none?
return [ self ]
end
unless self.class::PREFIX.empty? || empty_literals?( result )
result.unshift( Literal.new(self.class::PREFIX) )
end
if var_specs.size != 0
result.push( follow_up.new( var_specs ) )
end
return result
end