I believe the "trickery" is pmod_transform, which despite being not taken into the language as a standard feature is widely used by a lot of projects. It's very useful, I used "erlando" for a lot of Erlang stuff and it's great.
Checking therse links out might give you some more information... https://github.com/erlang/pmod_transform https://github.com/rabbitmq/erlando http://www.erlang.org/doc/man/erl_id_trans.html On 14 July 2015 at 12:42, Luca Finzi Contini <[email protected]> wrote: > Thank you Graeme! I will try this one, looks very promising. I was just > thinking something similar, i.e. that CB does some compile-time trickery > and translates the THIS:function(...) to something like function(..., <all > THIS attributes>). > Thank you! > > > Il giorno martedì 14 luglio 2015 05:04:23 UTC+2, graeme defty ha scritto: >> >> >> It's a while since I got tangled in this stuff, but is it possible that >> it is related to the fact that models are passed to their methods as the >> first (hidden) parameter? >> >> Try removing the "THIS:" and I think you may find that it works. >> >> NewFilename = apply_gamma_factor(OriginalFilename, GammaValue), >> >> >> >> If you really want the "THIS:" where you have it to explicitly provide >> the module for the call , try passing it also as the first parameter to the >> call. >> >> NewFilename = THIS:apply_gamma_factor(THIS, OriginalFilename, GammaValue), >> >> >> g >> >> >> >> >> >> >> >> On 13 July 2015 at 17:07, emacstheviking <[email protected]> wrote: >> >>> First glance.... apply_gamma_factor/2 .... at a brief look the failing >>> call seems to be supplying more than two arguments... check your code and >>> make sure you are calling it how it expects to be called perhaps!? >>> >>> Sean. >>> >>> >>> >>> On 9 July 2015 at 12:17, <[email protected]> wrote: >>> >>>> Hi all, >>>> I am quite new to ChicagoBoss and I am struggling to just add a simple >>>> function to an existing model module. >>>> My module is image.erl. >>>> >>>> I have a function called create_processed_file(): >>>> >>>> create_processed_file(FileType, Size) -> >>>> >>>> >>>> lager:info("-=> Stepping into create_processed_file <=-"), >>>> OriginalFilename = THIS:get_filename(FileType, Size), >>>> GammaValue = THIS:gamma(), >>>> NewFilename = THIS:apply_gamma_factor(OriginalFilename, GammaValue), >>>> NewFilename. >>>> >>>> >>>> I added THIS:apply_gamma_factor/2. >>>> >>>> The function is defined at the end of the file: >>>> >>>> apply_gamma_factor(Filename, Gamma) -> >>>> lager:info("-=> GAMMA PROCESSING : ~p", [Gamma]), >>>> ProcessedFilenamePart = "_gamma_" ++ io_lib:format("~4.2f", [Gamma]), >>>> NewFilename = "/tmp/" ++ filename:rootname(filename:basename(Filename)) ++ >>>> ProcessedFilenamePart ++ filename:extension(Filename), >>>> case (Gamma == 1.0) of >>>> true -> >>>> % if gamma == 1.0 let's just copy the original image with the new >>>> file name. >>>> lager:info("[apply_gamma_factor] - gamma = 1 - copying ~s to ~s . >>>> ", [Filename, NewFilename]), >>>> {ok, _} = file:copy(Filename, NewFilename); >>>> false -> >>>> % if gamma /= 1.0 then we need to create the processed image. >>>> case filelib:is_regular(NewFilename) of >>>> false -> %% send to graphicsmagick for processing >>>> GammaCmd = io_lib:format("gm convert -gamma ~f ~s ~s ", >>>> [Gamma, >>>> Filename, >>>> NewFilename]), >>>> os:cmd(GammaCmd); >>>> true -> >>>> undefined >>>> end >>>> end, >>>> NewFilename. >>>> >>>> >>>> >>>> I cleaned, built and restarted my CB application and every time I get >>>> the same error: >>>> >>>> >>>> >>>> *13:08:34.929 [info] -=> Stepping into create_processed_file >>>> <=-13:08:34.946 [error] gen_server gsd_report_server terminated with >>>> reason: no function clause matching >>>> image:apply_gamma_factor("./data/exams/5/c/6/5/a3a9-7762-450e-9dca-f738934cd773/image-5c65a3a9-7762-450e-9dca-f738934cd77...", >>>> 2.0, >>>> {image,"image-5c65a3a9-7762-450e-9dca-f738934cd773",<<"visible">>,undefined,{{2015,3,26},{14,5,52.0}},...}) >>>> line 19613:08:34.947 [error] CRASH REPORT Process gsd_report_server with 0 >>>> neighbours exited with reason: no function clause matching >>>> image:apply_gamma_factor("./data/exams/5/c/6/5/a3a9-7762-450e-9dca-f738934cd773/image-5c65a3a9-7762-450e-9dca-f738934cd77...", >>>> 2.0, >>>> {image,"image-5c65a3a9-7762-450e-9dca-f738934cd773",<<"visible">>,undefined,{{2015,3,26},{14,5,52.0}},...}) >>>> line 196 in gen_server:terminate/7 line 804* >>>> So it enters the create_processed_file function but somehow cannot >>>> 'see' the apply_gamma_factor/2 fuc, instead it looks for a function with >>>> more parameters. >>>> Could you please help me in solving this problem? >>>> Thanks in advance >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "ChicagoBoss" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> Visit this group at http://groups.google.com/group/chicagoboss. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/chicagoboss/6d8cb159-f10d-4c1e-a379-147a40e8b210%40googlegroups.com >>>> <https://groups.google.com/d/msgid/chicagoboss/6d8cb159-f10d-4c1e-a379-147a40e8b210%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "ChicagoBoss" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> Visit this group at http://groups.google.com/group/chicagoboss. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/chicagoboss/CAEiEuU%2BuCaY_oandHCnbiq8d4w%3DvLanGV-VCX%3DqXKPUuK6q%3Dvw%40mail.gmail.com >>> <https://groups.google.com/d/msgid/chicagoboss/CAEiEuU%2BuCaY_oandHCnbiq8d4w%3DvLanGV-VCX%3DqXKPUuK6q%3Dvw%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "ChicagoBoss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > Visit this group at http://groups.google.com/group/chicagoboss. > To view this discussion on the web visit > https://groups.google.com/d/msgid/chicagoboss/72a3e755-a65d-4493-8a15-6de4b01dacd8%40googlegroups.com > <https://groups.google.com/d/msgid/chicagoboss/72a3e755-a65d-4493-8a15-6de4b01dacd8%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "ChicagoBoss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. Visit this group at http://groups.google.com/group/chicagoboss. To view this discussion on the web visit https://groups.google.com/d/msgid/chicagoboss/CAEiEuUKM4CRoKnOUsHVFHWq2G4XBw-qD9YNVsiaTy2cMsHCT4w%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
