Hmm… curiouser and curiouser.

In my rewrite of TS, I've not used FauxColumn, but instead am creating a Module 
on the fly (the given block is the module's definition) and extending the 
current instance with that. I've read that the performance is a little better, 
and it feels a little more elegant (never a fan of *_eval), albeit on the far 
side of metaprogramming.

https://github.com/freelancing-god/thinking-sphinx/blob/edge/lib/thinking_sphinx/active_record/interpreter.rb

If you want to try something like that instead? I could try changing the 
internals of the master/rails3 branches, but given it's night time here it 
won't be until tomorrow at the earliest.

-- 
Pat

On 17/11/2011, at 9:50 PM, Ngan wrote:

> It prints FauxColumn.
> 
> Doesn't that mean that instance_eval has fallen through to method
> missing?
> Im going to try to isolate the blankslate issue today. Will let you
> know.
> 
> On Nov 17, 2:25 am, Pat Allan <[email protected]> wrote:
>> It's actually Builder 2.1.2 or better that TS expects… so there shouldn't be 
>> a version conflict happening.
>> 
>> So if instance_eval can't be revealed, then I guess it's not being removed 
>> by BlankSlate. Which then doesn't explain why things aren't working.
>> 
>> Just to double-check - does this raise the expected error, or does it print 
>> out a FauxColumn:
>>   puts self.instance_eval
>> 
>> --
>> Pat
>> 
>> On 17/11/2011, at 1:06 AM, Ngan wrote:
>> 
>> 
>> 
>> 
>> 
>> 
>> 
>>> Not sure if this helps, but I have confirmed that the BlankSlate being
>>> used in TS is the one from Rails (which is builder-2.1.2 for my
>>> version of Rails), instead of the builder-3.0 that is specified ini
>>> the gemspec.
>> 
>>> On Nov 16, 9:33 am, Ngan <[email protected]> wrote:
>>>> Also, I'm on Rails 2.3.2, which I found includes its own version of
>>>> builder and therefore BlankSlate.  After doing some puts, I found that
>>>> the blankslate builded with rails is the one that gets evaluated, and
>>>> the one from thinking sphinx gem spec (builder 3.x) is not getting run
>>>> at all.
>> 
>>>> I'm using bundler.
>> 
>>>> On Nov 16, 9:08 am, Ngan <[email protected]> wrote:
>> 
>>>>> I've added that but then I just get this error:
>>>>> Don't know how to reveal method 'instance_eval'
>> 
>>>>> Just to confirm:
>> 
>>>>> class Builder < BlankSlate
>>>>>   reveal :instance_eval
>>>>>   reveal :repond_to?
>> 
>>>>>   def self.generate(...)
>>>>>   ...
>>>>> end
>> 
>>>>> On Nov 16, 2:32 am, Pat Allan <[email protected]> wrote:
>> 
>>>>>> Hmm, REE must behave differently with BlankSlate. I've certainly noticed 
>>>>>> different behaviours for Ruby 1.9 and Rubinius.
>> 
>>>>>> Although keep in mind respond_to? is returning the FauxColumn in your 
>>>>>> example, it's not instance_eval itself. In your local copy of TS, can 
>>>>>> you add the following to the top of the Builder class:
>>>>>>   reveal :instance_eval
>>>>>>   reveal :respond_to?
>> 
>>>>>> That'll unhide those methods.
>> 
>>>>>> --
>>>>>> Pat
>> 
>>>>>> On 16/11/2011, at 2:14 PM, Ngan wrote:
>> 
>>>>>>> I've narrowed down the issue...
>>>>>>> lib/thinking_sphinx/index/builder.rb
>> 
>>>>>>> def initialzie
>>>>>>>    ...
>>>>>>>    self.instance_eval &block
>>>>>>>    ...
>>>>>>> end
>> 
>>>>>>> That call seems to not be working and/or doing nothing.
>>>>>>> When I do:
>> 
>>>>>>> puts "self.respond_to?(:instance_eval)", I get:
>>>>>>> #<ThinkingSphinx::Index::FauxColumn:0x10f575778>
>> 
>>>>>>> I'm on Ruby Enterprise1.8.7-2010.02
>> 
>>>>>>> This must be because of the BlankSlate/Builder changes?
>> 
>>>>>>> On Nov 5, 1:25 am, Pat Allan <[email protected]> wrote:
>>>>>>>> I don't suppose the stack trace holds any clues?
>> 
>>>>>>>> --
>>>>>>>> Pat
>> 
>>>>>>>> On 05/11/2011, at 12:10 AM, Ngan wrote:
>> 
>>>>>>>>> I've removed all indexes from all models and left just one:
>> 
>>>>>>>>> class Label < ActiveRecord::Base
>>>>>>>>>  define_index do
>>>>>>>>>    indexes :name
>>>>>>>>>  end
>>>>>>>>> end
>> 
>>>>>>>>> And it still errors.
>> 
>>>>>>>>> On Nov 4, 2:36 pm, Ngan <[email protected]> wrote:
>>>>>>>>>> Yea, i downgrade Riddle as well when going to 1.4.9 (it errors when
>>>>>>>>>> you don't).
>> 
>>>>>>>>>> Will check further
>> 
>>>>>>>>>> On Nov 4, 2:07 pm, Pat Allan <[email protected]> wrote:
>> 
>>>>>>>>>>> Can't think why that error would appear changing from 1.4.7 to 
>>>>>>>>>>> 1.4.10…
>> 
>>>>>>>>>>> When you downgrade to 1.4.9, keep in mind you'll need to downgrade 
>>>>>>>>>>> Riddle as well (1.5.0 only works with1.4.10/2.0.10- all were 
>>>>>>>>>>> released earlier today).
>> 
>>>>>>>>>>> Do any of your index definitions not have any fields? Are you doing 
>>>>>>>>>>> anything out of the ordinary with index definitions?
>> 
>>>>>>>>>>> --
>>>>>>>>>>> Pat
>> 
>>>>>>>>>>> On 04/11/2011, at 10:50 PM, Ngan wrote:
>> 
>>>>>>>>>>>> I'm on Rails 2.3.  Been running TS 1.4.7.  Tried to upgrade to to 
>>>>>>>>>>>> TS
>>>>>>>>>>>> 1.4.10, but got this error:
>> 
>>>>>>>>>>>> $ rake ts:index --trace
>>>>>>>>>>>> ...
>>>>>>>>>>>> At least one field is necessary for an index
>>>>>>>>>>>> ...
>> 
>>>>>>>>>>>> I tried to upgrade to 1.4.9, and got the same error...
>>>>>>>>>>>> What changed?
>> 
>>>>>>>>>>>> --
>>>>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>>>>> Groups "Thinking Sphinx" group.
>>>>>>>>>>>> To post to this group, send email to 
>>>>>>>>>>>> [email protected].
>>>>>>>>>>>> To unsubscribe from this group, send email to 
>>>>>>>>>>>> [email protected].
>>>>>>>>>>>> For more options, visit this group 
>>>>>>>>>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en.
>> 
>>>>>>>>> --
>>>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>>>> Groups "Thinking Sphinx" group.
>>>>>>>>> To post to this group, send email to [email protected].
>>>>>>>>> To unsubscribe from this group, send email to 
>>>>>>>>> [email protected].
>>>>>>>>> For more options, visit this group 
>>>>>>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en.
>> 
>>>>>>> --
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "Thinking Sphinx" group.
>>>>>>> To post to this group, send email to [email protected].
>>>>>>> To unsubscribe from this group, send email to 
>>>>>>> [email protected].
>>>>>>> For more options, visit this group 
>>>>>>> athttp://groups.google.com/group/thinking-sphinx?hl=en.
>> 
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "Thinking Sphinx" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to 
>>> [email protected].
>>> For more options, visit this group 
>>> athttp://groups.google.com/group/thinking-sphinx?hl=en.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Thinking Sphinx" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/thinking-sphinx?hl=en.
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/thinking-sphinx?hl=en.

Reply via email to