Activity feed

  Dennis Hackethal revised idea #325.
Hiccdown methods should live in their own, separate modules.classes. How about they are called ‘displays’?↵
↵
```ruby↵
module‘displays’?↵
↵
```ruby↵
class ProductsDisplay
  def self.indexindex 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 haveend↵
end↵
```↵
↵
Behind the scenes, the Hiccdown gem would need to make the benefit 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↵
```
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal addressed criticism #328.

They are: vc.instance_variable_get(:@foo)

#328 · Dennis Hackethal, 4 months ago

That’s way too verbose.

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal addressed criticism #327.

Instance variables are not available inside the methods.

#327 · Dennis Hackethal, 4 months ago

They are: vc.instance_variable_get(:@foo)

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal criticized idea #325.

Hiccdown 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.

#325 · Dennis Hackethal, 4 months ago

Instance variables are not available inside the methods.

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal criticized idea #325.

Hiccdown 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.

#325 · Dennis Hackethal, 4 months ago

I’m trying this now. Having to prepend every invocation of a helper method with vc. is getting really old really fast.

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal revised idea #316.
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 collapsed
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,display, since renderersdisplays have the benefit of having unambiguously resolvable method names.
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal revised idea #322.
Tested, it works. `self` does indeed point to the `view_context` in the helper. Verified by printing `object_id`s.
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal addressed criticism #321.

Test this!

#321 · Dennis Hackethal, 4 months ago

Tested, it works.

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal addressed criticism #315.

I don’t think that’s something people would do a lot, but they still easily could: ProductsRenderer.index(self)

#315 · Dennis Hackethal, 4 months ago

Test this!

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal commented on criticism #319.

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…

#319 · Dennis Hackethal, 4 months ago

Maybe ‘Display’. ProductsDisplay

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal criticized idea #316.

Hiccdown 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.

#316 · Dennis Hackethal, 4 months ago

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…

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal revised idea #314.
Then how would you call this`index` from a helper method?
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal revised idea #313.
 6 unchanged lines collapsed
end↵ end↵ ```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.
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal addressed criticism #314.

Then how would you call this from a helper method?

#314 · Dennis Hackethal, 4 months ago

I don’t think that’s something people would do a lot, but they still easily could: ProductsRenderer.index(self)

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal criticized idea #313.

Hiccdown 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
#313 · Dennis Hackethal, 4 months ago

Then how would you call this from a helper method?

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal submitted idea #313.

Hiccdown 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
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal criticized idea #303.

Hiccdown 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
#303 · Dennis Hackethal, 4 months ago

That would be mixing class methods an instance methods in Rails helper modules, which typically only contain instance methods. Not idiomatic Rails usage.

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal revised idea #308.
 19 unchanged lines collapsed
vc.some_helper_method↵ end↵ ↵ def some_helper_method↵ # …
 3 unchanged lines collapsed
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal revised idea #307.
If so, there might be a way to bind them to the `view_context`. Or I could definitely pass the `view_context` explicitly as the first parameter.parameter:↵
↵
So instead of↵
↵
```ruby↵
@helper_module.instance_method(@action_name).bind_call(view_context)↵
```↵
↵
I would do↵
↵
```ruby↵
@helper_module.send(@action_name, view_context)↵
```↵
↵
And the parameter list of each Hiccdown method would start accordingly:↵
↵
```ruby↵
module ProductsHelper↵
  def self.index vc #, …↵
    # …↵
  end↵
end↵
```
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal addressed criticism #305.

Does that mean they wouldn’t have access to the view_context? If so, calling helper methods from inside these class methods wouldn’t be possible.

#305 · Dennis Hackethal, 4 months ago

If so, there might be a way to bind them to the view_context. Or I could definitely pass the view_context explicitly as the first parameter.

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal revised idea #304.
Does that mean they wouldn’t have access to the `view_context`? If so, calling helper methods from inside these class methods wouldn’t be possible.
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal criticized idea #303.

Hiccdown 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
#303 · Dennis Hackethal, 4 months ago

Does that mean they wouldn’t have the view_context? If so, calling helper methods from inside these class methods wouldn’t be possible.

4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal submitted idea #303.

Hiccdown 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
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal revised idea #300.
Hiccdown methods should live in Rails helpers.helpers as instance methods.
4 months ago · ‘Hiccdown Development Notes’
  Dennis Hackethal criticized idea #300.

Hiccdown methods should live in Rails helpers.

#300 · Dennis Hackethal, 4 months ago

That isn’t a good idea because Hiccdown methods often share the same conventional names (index, show, etc), which can and does lead to conflict.

4 months ago · ‘Hiccdown Development Notes’