Dennis Hackethal
Member since June 2024
Activity
#344 · Dennis HackethalOP, 9 months agoShould probably show the explanation in a revision, when given. In the activity feed, that is.
Done as of 7e7c6cd
.
Should probably show the explanation in a revision, when given. In the activity feed, that is.
It doesn’t really matter. This would be like calling a controller action from a helper method. Not something people do.
The activity feed just shows top-level criticisms as regular ideas. They should be shown as criticisms such like when they are child ideas.
Should probably show the explanation in a revision, when given.
Discuss Veritula itself. For feedback and suggestions.
When all I change during a revision is the criticism flag, the activity log just says ‘no changes’.
Accidentally marked as a criticism
#333 · Dennis HackethalOP, 9 months agoHaving explored three different ideas, I believe #302 – having regular helper methods to render Hiccdown structures – is the best.
The idea is not without its flaws, but having to qualify a method name by, say, calling it
idea_form
instead ofform
is still better than manually having to pass the view context around all the time and not being able to trivially access instance variables.So I’ll stick with #302 for now, which is the status quo already.
I think the thing I’m really fighting here is Rails being object-oriented. Which I can’t do anything about.
Not sure the Rails team realizes how much OOP reduces the extensibility of Rails.
Having explored three different ideas, I believe #302 – having regular helper methods to render Hiccdown structures – is the best.
The idea is not without its flaws, but having to qualify a method name by, say, calling it idea_form
instead of form
is still better than manually having to pass the view context around all the time and not being able to trivially access instance variables.
So I’ll stick with #302 for now, which is the status quo already.
#303 · Dennis HackethalOP, 9 months agoHiccdown methods should live in Rails helpers as class methods. That way, the problem described in #302 is solved – methods can be referenced unambiguously:
ProductsHelper.index StoresHelper.index
#327 applies here, too: no access to instance variables inside helper class methods.
#315 · Dennis HackethalOP, 9 months agoI don’t think that’s something people would do a lot, but they still easily could:
ProductsRenderer.index(self)
Not as of #330, they couldn’t.
Hiccdown methods should live in their own, separatemodules.classes. How about they are called‘displays’?↵ ↵ ```ruby↵ module‘displays’?↵ ↵ ```ruby↵ class ProductsDisplay defself.indexindex vc, # … vc.some_helper_methodend↵ end↵ ```↵ ↵ A benefit of this approach is that, when people start a new Rails app, they may end up putting whatever they’d otherwise put in a helper in a display, since displays haveend↵ end↵ ```↵ ↵ Behind the scenes, the Hiccdown gem would need to make thebenefit of having unambiguously resolvable method names.instance variables available to the display class:↵ ↵ ```ruby↵ display = @display_module.new↵ ↵ view_context.instance_variables.each do |iv|↵ display.instance_variable_set(↵ iv,↵ view_context.instance_variable_get(iv)↵ )↵ end↵ ```↵ ↵ Then:↵ ↵ ```ruby↵ class ProductsDisplay↵ def index vc, # …↵ vc.some_helper_method(@products)↵ end↵ end↵ ```
#325 · Dennis HackethalOP, 9 months agoHiccdown methods should live in their own, separate modules. How about they are called ‘displays’?
module ProductsDisplay def self.index vc, # … vc.some_helper_method end end
A benefit of this approach is that, when people start a new Rails app, they may end up putting whatever they’d otherwise put in a helper in a display, since displays have the benefit of having unambiguously resolvable method names.
Instance variables are not available inside the methods.
#325 · Dennis HackethalOP, 9 months agoHiccdown methods should live in their own, separate modules. How about they are called ‘displays’?
module ProductsDisplay def self.index vc, # … vc.some_helper_method end end
A benefit of this approach is that, when people start a new Rails app, they may end up putting whatever they’d otherwise put in a helper in a display, since displays have the benefit of having unambiguously resolvable method names.
I’m trying this now. Having to prepend every invocation of a helper method with vc.
is getting really old really fast.
Hiccdown methods should live in their own, separate modules. How about they are called‘renderers’?↵ ↵ ```ruby↵ module ProductsRenderer↵‘displays’?↵ ↵ ```ruby↵ module ProductsDisplay↵ def self.index vc, # …5 unchanged lines collapsedA benefit of this approach is that, when people start a new Rails app, they may end up putting whatever they’d otherwise put in a helper in arenderer,display, sincerenderersdisplays have the benefit of having unambiguously resolvable method names.
Tested, it works. `self` does indeed point to the `view_context` in the helper. Verified by printing `object_id`s.
#315 · Dennis HackethalOP, 9 months agoI don’t think that’s something people would do a lot, but they still easily could:
ProductsRenderer.index(self)
Test this!
#319 · Dennis HackethalOP, 9 months agoI don’t like the term ‘renderer’ yet. It’s too loaded with meaning, what with Rails already having a
render
method in controllers and anotherrender
method in views…
Maybe ‘Display’. ProductsDisplay
#316 · Dennis HackethalOP, 9 months agoHiccdown methods should live in their own, separate modules. How about they are called ‘renderers’?
module ProductsRenderer def self.index vc, # … vc.some_helper_method end end
A benefit of this approach is that, when people start a new Rails app, they may end up putting whatever they’d otherwise put in a helper in a renderer, since renderers have the benefit of having unambiguously resolvable method names.
I don’t like the term ‘renderer’ yet. It’s too loaded with meaning, what with Rails already having a render
method in controllers and another render
method in views…