homologist

homologist

Function overriding at compile time

Is there any way to, at compile time overrid ALL functions foo that somebody would wrote in a module A.

I think I can do it overriding def/2. But I feel like i would be using a hammer. Any ideas?

First Post!

NobbZ

NobbZ

What do you mean by overload?

Most Liked

NobbZ

NobbZ

You have to call super explicitly.

But it seems as if you want to use something known as decorators. I’ve seen an experimental package for those years ago, not sure if it still works or is maintained.

At least I remember it had problems with multi headed functions.

The easiest is probably to simply call the logger explicitly at the places you need it…

NobbZ

NobbZ

Or better probably this

def foo(x, y, z) do
  log_stuff(...)
  do_foo(x, y, z)
end

defp do_foo(...)...

This way only the decorator is accessible and doesn’t have an obfuscated name.

Last Post!

dom

dom

If it’s for logging calls or computing statistics, you could use the standard tracing tools in Erlang’s dbg module.

Where Next?

Popular in Questions Top

RisingFromAshes
I’ve read in another post that it may be possible with a router helper - but I couldn’t find an appropriate one, and tbh, I’m still just ...
New
komlanvi
Hi everyone, I was playing with phoenix liveView but I run into an issue. I have a form and want to validate each input text when the te...
New
aalberti333
As the title describes, I’m trying to run Enum.map() over a list of key/value pairs, where the value is a map. My data looks like this: ...
New
stefanluptak
Hello everybody, usually, I use a 29" ultra-wide monitor for VSCode which can easily accomodate explorer (files panel) + file with code ...
New
marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New

Other popular topics Top

rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
New
Darmani72
If I have a post route which an argument: post /my_post_route/:my_param1, MyController.my_post_handler How would get the post params ...
New
dogweather
I wrote this comment on r/haskell, and it’s not popular there. :wink: But I think I’m on to something… Haskell reminds me of Java, and e...
New
axelson
This post is a wiki (feel free to hit the edit button near the bottom right of this post to add your own changes!) This post collects co...
239 49266 226
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New

We're in Beta

About us Mission Statement