Re: Camping::Apps returns!

2008-08-29 Thread Magnus Holm
That's why I have monkey-patched it:
Apps = [].instance_eval do
  def <<(i)
delete_if { |f| f.to_s == i.to_s}
super
  end
  self
end

Ex1 = Class.new
Apps << Ex1  # => [Ex1]
Object.send(:remove_const, :Ex1)
Ex1 = Class.new
Apps << Ex1 # => [Ex1] # the old one has been deleted.

Yes, I realize we could make some changes in camping/reloader.rb,
but I think this is more intuitive and do got lot's of spare bytes...

On Fri, Aug 29, 2008 at 2:28 AM, zimbatm <[EMAIL PROTECTED]> wrote:

> Now I remember, there is a quirk. Make sure to remove the old app in
> the array when reloading the app in the Camping::Reloader.
>
> Cheers,
>   zimbatm
> ___
> Camping-list mailing list
> Camping-list@rubyforge.org
> http://rubyforge.org/mailman/listinfo/camping-list
>



-- 
Magnus Holm
___
Camping-list mailing list
Camping-list@rubyforge.org
http://rubyforge.org/mailman/listinfo/camping-list

Re: Camping::Apps returns!

2008-08-28 Thread zimbatm
Now I remember, there is a quirk. Make sure to remove the old app in
the array when reloading the app in the Camping::Reloader.

Cheers,
  zimbatm
___
Camping-list mailing list
Camping-list@rubyforge.org
http://rubyforge.org/mailman/listinfo/camping-list


Re: Camping::Apps returns!

2008-08-28 Thread Aria Stewart


On Aug 28, 2008, at 1:54 PM, zimbatm wrote:


Hi Magnus,

If I remember well, I am the one who introduced AND removed
Camping::Apps. I'm not sure anymore but I think it wasn't really used
and that solutions never really satisfied me. Do you have any use for
it ?



I most certainly do.

In trying to keep the spirit of very simple apps working together,  
I've found getting a list of apps very useful.


Also, good for The Camping Server to be able to make a list, too, I'd  
think.


Aria Stewart
[EMAIL PROTECTED]



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


Re: Camping::Apps returns!

2008-08-28 Thread Magnus Holm
Well, it's being used in mab.rb and ar.rb:

Old way:
Object.constants.map{|c|Object.const_get(c)}.each do |c|
  c::Models.module_eval $AR_EXTRAS if c.respond_to?(:goes)
end

New way:
Camping::Apps.each do |c|
  c::Models.module_eval $AR_EXTRAS
end

Which may break if you got another class/module with #goes...

On Thu, Aug 28, 2008 at 9:54 PM, zimbatm <[EMAIL PROTECTED]> wrote:

> Hi Magnus,
>
> If I remember well, I am the one who introduced AND removed
> Camping::Apps. I'm not sure anymore but I think it wasn't really used
> and that solutions never really satisfied me. Do you have any use for
> it ?
>
> Cheers,
>   zimbatm
> ___
> Camping-list mailing list
> Camping-list@rubyforge.org
> http://rubyforge.org/mailman/listinfo/camping-list
>



-- 
Magnus Holm
___
Camping-list mailing list
Camping-list@rubyforge.org
http://rubyforge.org/mailman/listinfo/camping-list

Re: Camping::Apps returns!

2008-08-28 Thread zimbatm
Hi Magnus,

If I remember well, I am the one who introduced AND removed
Camping::Apps. I'm not sure anymore but I think it wasn't really used
and that solutions never really satisfied me. Do you have any use for
it ?

Cheers,
  zimbatm
___
Camping-list mailing list
Camping-list@rubyforge.org
http://rubyforge.org/mailman/listinfo/camping-list


Camping::Apps returns!

2008-08-28 Thread Magnus Holm
Camping::Apps is back! I don't know the *exact* reason it was being removed,
but now it's a monkey-patched array which at least doesn't leak memory when
using together with the reloader (were there more problems with this?).

I really think we need this, since there's no guaranty that only
Camping-apps will have a class-method called #goes and
"Object.constants.map{|c|Object.const_get(c)}" also caused a really weird
error on Rubinus a while ago (I haven't checked if this still applies).

Anyway, I think it's worth the bytes.

I've pushed it to my experimental-branch[1] together with some other,
semi-experimental (see [2]) and byte-saving patches.

Can anyone who knows why it got pulled out, see if this version is "safe"?

[1] http://bit.ly/judofyr-excamping
[2] Getting rid of the old #meta_def and instead using modules:
http://bit.ly/extend-not-define-on-metaclass
___
Camping-list mailing list
Camping-list@rubyforge.org
http://rubyforge.org/mailman/listinfo/camping-list