mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
[whiskers] Add check that template contain tags.
This commit is contained in:
@@ -40,6 +40,7 @@ Whiskers& Whiskers::operator()(string _parameter, string _value)
|
||||
{
|
||||
checkParameterValid(_parameter);
|
||||
checkParameterUnknown(_parameter);
|
||||
checkTemplateContainsTags(_parameter, {""});
|
||||
m_parameters[move(_parameter)] = move(_value);
|
||||
return *this;
|
||||
}
|
||||
@@ -48,6 +49,7 @@ Whiskers& Whiskers::operator()(string _parameter, bool _value)
|
||||
{
|
||||
checkParameterValid(_parameter);
|
||||
checkParameterUnknown(_parameter);
|
||||
checkTemplateContainsTags(_parameter, {"?", "/"});
|
||||
m_conditions[move(_parameter)] = _value;
|
||||
return *this;
|
||||
}
|
||||
@@ -59,6 +61,7 @@ Whiskers& Whiskers::operator()(
|
||||
{
|
||||
checkParameterValid(_listParameter);
|
||||
checkParameterUnknown(_listParameter);
|
||||
checkTemplateContainsTags(_listParameter, {"#", "/"});
|
||||
for (auto const& element: _values)
|
||||
for (auto const& val: element)
|
||||
checkParameterValid(val.first);
|
||||
@@ -100,6 +103,19 @@ void Whiskers::checkParameterUnknown(string const& _parameter) const
|
||||
);
|
||||
}
|
||||
|
||||
void Whiskers::checkTemplateContainsTags(string const& _parameter, vector<string> const& _prefixes) const
|
||||
{
|
||||
for (auto const& prefix: _prefixes)
|
||||
{
|
||||
string tag{"<" + prefix + _parameter + ">"};
|
||||
assertThrow(
|
||||
m_template.find(tag) != string::npos,
|
||||
WhiskersError,
|
||||
"Tag '" + tag + "' not found in template:\n" + m_template
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
namespace
|
||||
{
|
||||
template<class ReplaceCallback>
|
||||
|
||||
Reference in New Issue
Block a user