On Tue, Oct 14, 2014 at 10:06 AM, David Lang <[email protected]> wrote:

> On Tue, 14 Oct 2014, singh.janmejay wrote:
>
>  On Tue, Oct 14, 2014 at 9:28 AM, David Lang <[email protected]> wrote:
>>
>>  On Tue, 14 Oct 2014, singh.janmejay wrote:
>>>
>>>  Yep, makes sense.
>>>
>>>>
>>>> I'll make the change.
>>>>
>>>> Im thinking:
>>>>
>>>> wrap(operand, string_to_wrap_around_it, boolean_ignore_if_already_
>>>> present)
>>>>
>>>> escape(operand, string_to_find, string_to_escape_it_with)
>>>>
>>>> Does this capture the essence?
>>>>
>>>>
>>> Your escape function is identical to the replace function. What do you do
>>> if the boolean is false? (i.e. don't ignore if already present)
>>>
>>>
>> Yes, escape was same as replace, my bad.
>>
>>
>>
>>> I was thinking something like:
>>>
>>> wrap(operand, string_to_wrap_around_it, string_to_escape_it_with)
>>>
>>>
>> This is still achievable by use of replace followed by wrap(the way they
>> are).
>>
>
> True, but I'm thinking that there are relativly few cases where you want
> to wrap with something and don't care about it appearing in the middle. So
> it makes sense to do it in one function, both from a performance point of
> view and from the point of view of encouraging people to do the right thing
> (or at least consider what the right thing is)
>
> as a side note that I don't think we want to do, there was some language I
> used that detected when you were wrapping with specific open/close
> characters (), <>, {}, [] and put the right one on each end. neat in the
> 'do what I mean' sense, but a landmine if you aren't thinking of that
> capability.
>
>  Something that you mentioned in the first reply (don't wrap if the
>> fragment
>> is already present) is still not possible.
>>
>> That is what I was trying to solve for with ignore-boolean.
>>
>> Eg.
>>
>> wrap("foo", "_", true) => "_foo_"
>> wrap("_foo", "_", true) => "__foo_"
>> wrap("_foo", "_", false) => "_foo_"
>>
>> The third param here is the ignore_if_already_present boolean.
>>
>
> Ok, I wasn't meaning this sort of thing (you could do that today with a
> test to see if the variable contains the string)
>

Cool, will rework it in the next patch.


>
> David Lang
>
>
>
>>
>>> if string_to_escape_it_with is not null, replace any occurances of the
>>> wrap string in the middle with the escape string.
>>>
>>> If the third parameter is not provided or is null, don't look for
>>> anything
>>> in the middle.
>>>
>>> David Lang
>>>
>>>
>>>
>>>  On Tue, Oct 14, 2014 at 8:02 AM, David Lang <[email protected]> wrote:
>>>>
>>>>  As a thought, for wrap, I would suggest adding an optional third
>>>>
>>>>> parameter, namely what to use if the string_to_wrap_around_it already
>>>>> appears in the string. I'm thinking along the lines of quoting a string
>>>>> and
>>>>> dealing with quotes in the middle of it, but any time you put
>>>>> delimeters
>>>>> around a string, there is a really good chance that you don't want that
>>>>> string to appear in the middle of it (unless the wrapping is purely for
>>>>> human consumption)
>>>>>
>>>>> David Lang
>>>>>
>>>>>
>>>>>
>>>>> On Mon, 13 Oct 2014, singh.janmejay wrote:
>>>>>
>>>>>  Hi,
>>>>>
>>>>>
>>>>>> Have added 3 functions to rainerscript:
>>>>>> - replace(operand, substring_to_be_replaced, its_replacement)
>>>>>> - wrap(operand, string_to_wrap_around_it)
>>>>>> - concat(operand_1, operand_2)
>>>>>>
>>>>>> Examples:
>>>>>> replace("foo bar baz", "ba", "BA") => "foo BAr BAz"
>>>>>> concat("foo", "bar") => "foobar"
>>>>>> wrap("hello", "__") => "__hello__"
>>>>>> replace("foo bar", concat("b", "ar"), wrap("baz", "*")) => "foo *baz*"
>>>>>>
>>>>>> I felt the need for this while working on some unstructured ->
>>>>>> structured
>>>>>> transformation of log-messages. Searched the forums a little, for
>>>>>> instance:
>>>>>> http://kb.monitorware.com/modify-message-string-strip-
>>>>>> addresses-from-logs-t1610.html
>>>>>> and found that nothing equivalent existed, hence the patch.
>>>>>>
>>>>>> 0001-... has replace and wrap impl
>>>>>> 0002-... has concat impl
>>>>>> (the patches go in the same order)
>>>>>>
>>>>>> Im currently running an large installation with these patches applied
>>>>>> over
>>>>>> 8.4.0, they seem to be working fine.
>>>>>>
>>>>>> If the patches look good for merging, I'll be happy to update the
>>>>>> documentation(actually don't know how to update doc yet, will have to
>>>>>> dig
>>>>>> in to learn more about it).
>>>>>>
>>>>>>
>>>>>>  _______________________________________________
>>>>>>
>>>>> rsyslog mailing list
>>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog
>>>>> http://www.rsyslog.com/professional-services/
>>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards
>>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a
>>>>> myriad
>>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you
>>>>> DON'T LIKE THAT.
>>>>> _______________________________________________
>>>>> rsyslog mailing list
>>>>> http://lists.adiscon.net/mailman/listinfo/rsyslog
>>>>> http://www.rsyslog.com/professional-services/
>>>>> What's up with rsyslog? Follow https://twitter.com/rgerhards
>>>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a
>>>>> myriad
>>>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you
>>>>> DON'T LIKE THAT.
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>  _______________________________________________
>>>>
>>> rsyslog mailing list
>>> http://lists.adiscon.net/mailman/listinfo/rsyslog
>>> http://www.rsyslog.com/professional-services/
>>> What's up with rsyslog? Follow https://twitter.com/rgerhards
>>> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad
>>> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you
>>> DON'T LIKE THAT.
>>>
>>>
>>
>>
>>
>>  _______________________________________________
> rsyslog mailing list
> http://lists.adiscon.net/mailman/listinfo/rsyslog
> http://www.rsyslog.com/professional-services/
> What's up with rsyslog? Follow https://twitter.com/rgerhards
> NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad
> of sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you
> DON'T LIKE THAT.
>



-- 
Regards,
Janmejay
http://codehunk.wordpress.com
_______________________________________________
rsyslog mailing list
http://lists.adiscon.net/mailman/listinfo/rsyslog
http://www.rsyslog.com/professional-services/
What's up with rsyslog? Follow https://twitter.com/rgerhards
NOTE WELL: This is a PUBLIC mailing list, posts are ARCHIVED by a myriad of 
sites beyond our control. PLEASE UNSUBSCRIBE and DO NOT POST if you DON'T LIKE 
THAT.

Reply via email to