Got a chance to work on this this morning.

First patch worked fine, no problem. The second wasn't working for me
until I remembered you need to separate out a method's name as its own
argument when passing it to another method.

So, from my example above, you need to do this:

render :_button, R(SomeController), 'Some Controller'

The comma after _button is the key.

Anyway, they both worked for me, thanks Magnus.

Dave

On Fri, Jul 9, 2010 at 9:47 PM, David Susco <dsu...@gmail.com> wrote:
> Thanks Magnus, those changes make sense to me. I can test them out no
> problem, just not until Monday. I'll send out another e-mail then.
>
> Thanks,
> Dave
>
> On Fri, Jul 9, 2010 at 5:30 PM, Philippe Monnet <r...@monnet-usa.com> wrote:
>> Yes I think the first patch makes sense to filter out partials from the
>> process of applying the layout.
>> For the second patch now I get why Dave's parameters were not being used. So
>> now your change would send *a . Cool.
>> Dave do you want to try that out?
>> And then Magnus can go ahead and apply it and maybe also to update the
>> official gem.
>>
>> On 7/9/2010 2:20 PM, Magnus Holm wrote:
>>
>> Should we apply a patch like this?
>>
>> diff --git a/lib/camping-unabridged.rb b/lib/camping-unabridged.rb
>> index 636ad6f..f3195b3 100644
>> --- a/lib/camping-unabridged.rb
>> +++ b/lib/camping-unabridged.rb
>> @@ -272,7 +272,7 @@ module Camping
>>      def render(v, o={}, &b)
>>        if t = lookup(v)
>>          s = (t == true) ? mab{ send(v, &b) } : t.render(self,
>> o[:locals] || {}, &b)
>> -        s = render(L, o.merge(L => false)) { s } if o[L] != false &&
>> lookup(L)
>> +        s = render(L, o.merge(L => false)) { s } if v.to_s[0] != ?_
>> && o[L] != false && lookup(L)
>>          s
>>        else
>>          raise "Can't find template #{v}"
>>
>> Also, currently you can pass arguments to `render`. What about this?
>>
>> diff --git a/lib/camping-unabridged.rb b/lib/camping-unabridged.rb
>> index 636ad6f..c262757 100644
>> --- a/lib/camping-unabridged.rb
>> +++ b/lib/camping-unabridged.rb
>> @@ -269,9 +269,10 @@ module Camping
>>      #     end
>>      #   end
>>      #
>> -    def render(v, o={}, &b)
>> +    def render(v, *a, &b)
>>        if t = lookup(v)
>> -        s = (t == true) ? mab{ send(v, &b) } : t.render(self,
>> o[:locals] || {}, &b)
>> +        o = a[0] || {}
>> +        s = (t == true) ? mab{ send(v, *a, &b) } : t.render(self,
>> o[:locals] || {}, &b)
>>          s = render(L, o.merge(L => false)) { s } if o[L] != false &&
>> lookup(L)
>>          s
>>        else
>>
>>
>> // Magnus Holm
>>
>>
>>
>> On Fri, Jul 9, 2010 at 19:12, David Susco <dsu...@gmail.com> wrote:
>>
>>
>> I do have the latest reststop gem, but the problem occurs when I'm
>> *not* using reststop. The regular camping render method does not check
>> for the _, where as the reststop render does. Line 166 is reststop is
>> working, but there's no equivalent logic (that I can see) in camping
>> render.
>>
>> I've tried calling partials in haml like this without any luck:
>>
>> =render :_button R(SomeController) 'Some Controller'
>> =render "_button" R(SomeController) 'Some Controller'
>>
>> Dave
>>
>> On Fri, Jul 9, 2010 at 12:09 PM, Philippe Monnet <r...@monnet-usa.com>
>> wrote:
>>
>>
>> For issue #1: I think I added the change  on line 166( when committing my
>> last changes for gem 0.5.3) to check for partials in the normal flow of
>> restop_render. Could you verify you have the latest?
>>
>> For issue #2: what does your <%=render ... %> code looks like?
>> Is only the name of the partial inside the quotes (e.g. <%=render
>> "_mypartial" 123 'arg2' %> )? If so the Camping render should be only
>> performing the lookup on the partial name (the v argument) and send the
>> other arguments along.
>>
>> On 7/9/2010 9:14 AM, David Susco wrote:
>>
>> FYI, when not using reststop, calling render :_some_partial from a
>> template will automatically wrap the partial in the layout.
>>
>> I think this is because the render method automatically wraps a view
>> in the layout if the layout exists, rather than checking if the first
>> character is an underscore and then wrapping the view in the layout if
>> this is not the case (like the basic_render method from reststop).
>>
>> Another thing that is not possibly when using Tilt (whether using
>> reststop or not) is calling a partial that takes arguments. For
>> instance, I have a Markaby partial for a button:
>>
>>   def _button href, text='Cancel'
>>     a.button text, :href=>href
>>   end
>>
>> I can call that from other Markaby views with:
>>
>> _button R(SomeController), 'Some Controller'
>>
>> But I can't call render on that method because the camping lookup
>> method will try to turn the entire render argument into a symbol. It's
>> trying to lookup a method "_button R(SomeController), 'Some
>> Controller'" rather than a method "_button" with the arguments
>> "R(SomeController), 'Some Controller'".
>>
>> Hopefully that was clear enough.
>>
>> Dave
>>
>> On Fri, Jul 9, 2010 at 9:10 AM, David Susco <dsu...@gmail.com> wrote:
>>
>>
>> Arg, I new it would be something simple. Thanks.
>>
>> Dave
>>
>> On Thu, Jul 8, 2010 at 10:54 PM, Philippe Monnet <r...@monnet-usa.com>
>> wrote:
>>
>>
>> David,
>>
>> If you're using Tilt, to make partials work in ERB or HAML you would need to
>> explicitly call render with the name of the partial. So for example, in ERB:
>>     <%=render "_mypartial" %>
>>
>> Philippe (@techarch)
>>
>> On 7/8/2010 2:19 PM, David Susco wrote:
>>
>> Thanks Philippe, it's working great.
>>
>> Has anyone gotten partials to work with Tilt?
>>
>> Dave
>>
>> On Wed, Jul 7, 2010 at 9:58 PM, Philippe Monnet <r...@monnet-usa.com> wrote:
>>
>>
>> I fixed the issue in the basic_render method. At the time I worked on
>> RESTstop I had done the minimum needed to make it work with the new version
>> of Camping. And when Tilt support was added I did not fully retrofit the
>> code to make it work with Tilt templates. Problem corrected!
>> Thanks David for helping us make the implementation more robust.
>>
>> I have also published a new 0.5.3 version of the gem.
>>
>> Philippe (@techarch)
>>
>> On 7/6/2010 10:07 PM, Philippe Monnet wrote:
>>
>> Hi David, I will look into this (probably this week-end though) - as I
>> actually did not try Tilt at the same time as RESTstop.
>>
>> On 7/6/2010 7:45 AM, David Susco wrote:
>>
>> Still fooling around with this, no luck yet. Found some other things though.
>>
>> It seems I need to fully qualify controllers as arguments for URL and
>> R methods when using Tilt (this is irrespective of whether I'm using
>> reststop or not). Is there anything I can do to get around this?
>>
>> Also, is there anyway to call partials (markaby or other template
>> files) from a template file?
>>
>> Dave
>>
>> On Wed, Jun 30, 2010 at 9:46 AM, David Susco <dsu...@gmail.com> wrote:
>>
>>
>> I'm trying to use the new Tilt integration with reststop. All the
>> aliases and whatnot under "Implementing your own service"
>> (http://wiki.github.com/camping/reststop/) are there and :views has
>> been set in the options hash. I tried creating sub-directories in the
>> views directory (html, HTML) but I still couldn't get it to work.
>>
>> I can get my haml template to display if I get rid of the alias for
>> reststop_render. All the other render calls to markaby still work when
>> I do this too. However, I'm assuming I'm loosing the second argument
>> for render in reststop when I do this.
>>
>> Am I missing some other setting/configuration option to get this to
>> work with the alias for reststop_render?
>>
>> --
>> Dave
>>
>>
>>
>>
>>
>> _______________________________________________
>> Camping-list mailing list
>> Camping-list@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/camping-list
>>
>> _______________________________________________
>> Camping-list mailing list
>> Camping-list@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/camping-list
>>
>>
>>
>>
>>
>> _______________________________________________
>> Camping-list mailing list
>> Camping-list@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/camping-list
>>
>>
>>
>> --
>> Dave
>>
>>
>>
>>
>>
>> _______________________________________________
>> Camping-list mailing list
>> Camping-list@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/camping-list
>>
>>
>>
>> --
>> Dave
>> _______________________________________________
>> Camping-list mailing list
>> Camping-list@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/camping-list
>>
>>
>>
>> _______________________________________________
>> Camping-list mailing list
>> Camping-list@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/camping-list
>>
>> _______________________________________________
>> Camping-list mailing list
>> Camping-list@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/camping-list
>>
>
>
>
> --
> Dave
>



-- 
Dave
_______________________________________________
Camping-list mailing list
Camping-list@rubyforge.org
http://rubyforge.org/mailman/listinfo/camping-list

Reply via email to