mirror of https://github.com/Icinga/icinga2.git
parent
b163e4a002
commit
eeb01831c0
|
@ -498,6 +498,14 @@ Signature:
|
||||||
|
|
||||||
Returns a copy of the string.
|
Returns a copy of the string.
|
||||||
|
|
||||||
|
### <a id="string-reverse"></a> String#reverse
|
||||||
|
|
||||||
|
Signature:
|
||||||
|
|
||||||
|
function reverse();
|
||||||
|
|
||||||
|
Returns a copy of the string in reverse order.
|
||||||
|
|
||||||
## <a id="array-type"></a> Array type
|
## <a id="array-type"></a> Array type
|
||||||
|
|
||||||
### <a id="array-add"></a> Array#add
|
### <a id="array-add"></a> Array#add
|
||||||
|
@ -582,7 +590,13 @@ Signature:
|
||||||
|
|
||||||
Joins all elements of the array using the specified separator.
|
Joins all elements of the array using the specified separator.
|
||||||
|
|
||||||
## <a id="dictionary-type"></a> Dictionary type
|
### <a id="array-reverse"></a> Array#reverse
|
||||||
|
|
||||||
|
Signature:
|
||||||
|
|
||||||
|
function reverse();
|
||||||
|
|
||||||
|
Returns a new array with all elements of the current array in reverse order.
|
||||||
|
|
||||||
### <a id="dictionary-shallow-clone"></a> Dictionary#shallow_clone
|
### <a id="dictionary-shallow-clone"></a> Dictionary#shallow_clone
|
||||||
|
|
||||||
|
|
|
@ -130,6 +130,13 @@ static Value ArrayJoin(const Value& separator)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static Array::Ptr ArrayReverse(void)
|
||||||
|
{
|
||||||
|
ScriptFrame *vframe = ScriptFrame::GetCurrentFrame();
|
||||||
|
Array::Ptr self = static_cast<Array::Ptr>(vframe->Self);
|
||||||
|
return self->Reverse();
|
||||||
|
}
|
||||||
|
|
||||||
Object::Ptr Array::GetPrototype(void)
|
Object::Ptr Array::GetPrototype(void)
|
||||||
{
|
{
|
||||||
static Dictionary::Ptr prototype;
|
static Dictionary::Ptr prototype;
|
||||||
|
@ -146,6 +153,7 @@ Object::Ptr Array::GetPrototype(void)
|
||||||
prototype->Set("sort", new Function(WrapFunction(ArraySort), true));
|
prototype->Set("sort", new Function(WrapFunction(ArraySort), true));
|
||||||
prototype->Set("shallow_clone", new Function(WrapFunction(ArrayShallowClone), true));
|
prototype->Set("shallow_clone", new Function(WrapFunction(ArrayShallowClone), true));
|
||||||
prototype->Set("join", new Function(WrapFunction(ArrayJoin), true));
|
prototype->Set("join", new Function(WrapFunction(ArrayJoin), true));
|
||||||
|
prototype->Set("reverse", new Function(WrapFunction(ArrayReverse), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return prototype;
|
return prototype;
|
||||||
|
|
|
@ -200,3 +200,14 @@ Object::Ptr Array::Clone(void) const
|
||||||
return arr;
|
return arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Array::Ptr Array::Reverse(void) const
|
||||||
|
{
|
||||||
|
Array::Ptr result = new Array();
|
||||||
|
|
||||||
|
ObjectLock olock(this);
|
||||||
|
ObjectLock xlock(result);
|
||||||
|
|
||||||
|
std::copy(m_Data.rbegin(), m_Data.rend(), std::back_inserter(result->m_Data));
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
|
@ -112,6 +112,8 @@ public:
|
||||||
|
|
||||||
virtual Object::Ptr Clone(void) const override;
|
virtual Object::Ptr Clone(void) const override;
|
||||||
|
|
||||||
|
Array::Ptr Reverse(void) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::vector<Value> m_Data; /**< The data for the array. */
|
std::vector<Value> m_Data; /**< The data for the array. */
|
||||||
};
|
};
|
||||||
|
|
|
@ -126,6 +126,12 @@ static Value StringReplace(const String& search, const String& replacement)
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static String StringReverse(void)
|
||||||
|
{
|
||||||
|
ScriptFrame *vframe = ScriptFrame::GetCurrentFrame();
|
||||||
|
String self = vframe->Self;
|
||||||
|
return self.Reverse();
|
||||||
|
}
|
||||||
|
|
||||||
Object::Ptr String::GetPrototype(void)
|
Object::Ptr String::GetPrototype(void)
|
||||||
{
|
{
|
||||||
|
@ -142,6 +148,7 @@ Object::Ptr String::GetPrototype(void)
|
||||||
prototype->Set("find", new Function(WrapFunction(StringFind), true));
|
prototype->Set("find", new Function(WrapFunction(StringFind), true));
|
||||||
prototype->Set("contains", new Function(WrapFunction(StringContains), true));
|
prototype->Set("contains", new Function(WrapFunction(StringContains), true));
|
||||||
prototype->Set("replace", new Function(WrapFunction(StringReplace), true));
|
prototype->Set("replace", new Function(WrapFunction(StringReplace), true));
|
||||||
|
prototype->Set("reverse", new Function(WrapFunction(StringReverse), true));
|
||||||
}
|
}
|
||||||
|
|
||||||
return prototype;
|
return prototype;
|
||||||
|
|
|
@ -234,6 +234,13 @@ public:
|
||||||
return t;
|
return t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline String Reverse(void) const
|
||||||
|
{
|
||||||
|
String t = m_Data;
|
||||||
|
std::reverse(t.m_Data.begin(), t.m_Data.end());
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
inline bool Contains(const String& str) const
|
inline bool Contains(const String& str) const
|
||||||
{
|
{
|
||||||
return (m_Data.find(str) != std::string::npos);
|
return (m_Data.find(str) != std::string::npos);
|
||||||
|
|
Loading…
Reference in New Issue