So basically you have a Mustache based XML template to consume/produce
SOAP requests. Good idea :)


Regarding the JS syntax, Several times I found myself writing a lot of
dictionary like expressions that got converted into Dictionaries and
then to JSON strings, so I daydreamed about having something as close
to JSON syntax as possible (it is, JS syntax) embedded in the
smalltalk code.
The analogous to the {exp1. exp2} syntax, but to create "hash maps"
(it is, Dictionaries) right from the syntax.

Regards!









Esteban A. Maringolo


2013/10/3 Norbert Hartl <norb...@hartl.name>:
>
> Am 03.10.2013 um 22:42 schrieb Esteban A. Maringolo <emaring...@gmail.com>:
>
>> Excellent!
>>
>> Mustache is broadly used in the JS world (both web and node). I wonder
>> what do you use it for.
>>
> At the moment mostly for generating SOAP requests :) But I often have 
> template-like stuff for what I'm hacking something stupid together. I thought 
> it should come to an end.
>
>> I'd love an extension to the syntax to deal with JSON like structures
>> (it is scalars, arrays and dictionaries). :)
>>
> What have those to do with the syntax? Can you elaborate on that?
>
> Norbert
>>
>>
>>
>>
>> Esteban A. Maringolo
>>
>>
>> 2013/10/3 Norbert Hartl <norb...@hartl.name>:
>>> I like to announce my smalltalk port of mustache templates.
>>>
>>> Mustache is a popular templating engine that is supported in many
>>> programming languages. I know at least that is quite common to be used in
>>> javascript but see at the languages it supported yourself [1].
>>>
>>> A basic usage is something like (just paste it to workspace after loading
>>> Mustache):
>>>
>>> ---
>>> templateString := 'Hello {{name}},
>>> this is {{templatingEngine}} for {{recipient}}.
>>> {{# cheerUp }}
>>> Have fun!
>>> {{/  cheerUp }}'.
>>>
>>> context := {
>>> 'name' -> 'pharo community'.
>>> 'templatingEngine' -> 'mustache'.
>>> 'recipient' -> 'you'.
>>> 'cheerUp' -> true } asDictionary.
>>> templateString asMustacheTemplate value: context
>>> ---
>>>
>>> Context objects can be Dictionaries or regular objects. It is also easy to
>>> feed via json e.g. using NeoJSON
>>>
>>> templateString asMustacheTemplate value: (NeoJSONReader fromString: …)
>>>
>>> I wrote a blog article about it and the usage in smaltlalk on my blog [2].
>>> The code I have just released on smalltalkhub [3]. Documentation about the
>>> syntax to use is available under [4]. To load it do
>>>
>>> Gofer it
>>> smalltalkhubUser: 'NorbertHartl' project: 'Mustache';
>>> configurationOf: 'Mustache';
>>> loadStable.
>>>
>>> The code is not very old so there might be bugs (this is supposed to be the
>>> standard disclaimer). If you find something not working as expected just
>>> drop me a note. The engine produces at the moment more whitespaces than you
>>> can see in the examples. I need to figure out the rule first and will
>>> release a new version. Nevertheless I consider it useful by now. But you
>>> decide and hopefully give me feedback.
>>>
>>> Norbert
>>>
>>> [1] http://mustache.github.io/
>>> [2]
>>> http://norbert.hartl.name/blog/2013/10/03/mustache-templates-for-smalltalk/
>>> [3] http://smalltalkhub.com/#!/~NorbertHartl/Mustache
>>> [4] http://mustache.github.io/mustache.5.html
>>
>
>

Reply via email to