The warnings are telling you that Rails has already defined the
methods Extensions is trying to add, like you said, nothings serious.
As for the fastcgi issue, I don't see how it's related to extensions.
Anyhow, having something that works is always more important than
appeasing the style police.
Pragmatism over idealism!
This however doesn't mean others shouldn't use Extensions. The
library helps keep your code DRY and succinct. In my opinion, the
methods defined in Extensions should be added to Core.
-Jordan
On Nov 29, 2006, at 4:08 PM, Nathan Colgate Clark wrote:
Just as a follow up, extensions gave me a hard time.
In development/test I got these kinds of warnings (nothing serious,
but annoying):
Ruby/Extensions: Integer#even? is already defined; not overwriting
Ruby/Extensions: Integer#odd? is already defined; not overwriting
Ruby/Extensions: String#starts_with? is already defined; not
overwriting
Ruby/Extensions: String#ends_with? is already defined; not overwriting
Ruby/Extensions: Symbol#to_proc is already defined; not overwriting
And then moving to production I got this error in my
fastcgi.crash.log.
Even though it was probably my fault all along, in the end, I
scrapped extensions, and went with what I had before. As un-
rubyish as it was, it worked, and it won't interrupt my next
Thanksgiving weekend :)
Thanks again to everyone for your advice.
-Nathan
[EMAIL PROTECTED] wrote:
Everyone,
I don't know if you guys are aware of the Ruby/Extensions API. It's a
collection of extensions for Core classes in Ruby. I thought it might
lend itself to the grouping issue we've been having.
In that set of extensions I found an awesome Enumerable method called
'partition_by' which is perfect for taking an array of objects and
dividing them up based on a common attribute (say date). Tom
solved it
with his group method, but you might just want to install the
extensions
gem and use this method.
Here is the source for said method:
##
def partition_by
result = {}
self.each do |e|
value = yield e
(result[value] ||= []) << e
end
result
end
##
It's pretty exactly what Tom wrote, irregardless, there are tons of
useful methods in the collection. You can install them like so: `gem
install -r extensions` and you can find the documentation here:
http://extensions.rubyforge.org/rdoc/index.html.
Enjoy!
-Jordan
On 11/22/2006, "[EMAIL PROTECTED]"
<[EMAIL PROTECTED]> wrote:
Tom,
I wouldn't recommend extending the class Array with a method that
returns a Hash. A better option would be to extend the Enumerable
class
for this. An example is the 'sort_by' method of the Enumerable class
which can deal with any type of enumerable (might want to think
about
that as well) and spits out a sorted n-dimensional array. Yours
could
deal with any type of enumerable and spit out a grouped hash.
-Jordan
On 11/22/2006, "Tom Werner" <[EMAIL PROTECTED]> wrote:
Here's a little group method I just wrote on the Array class
(and how to
use it) that might serve your purpose well:
class Array
def group
groups = {}
self.each do |e|
key = yield e
groups[key] ||= []
groups[key] << e
end
groups
end
end
class Foo
attr_accessor :year, :title
def initialize(year, title)
self.year = year
self.title = title
end
end
a = []
a << Foo.new(2006, 'Alpha')
a << Foo.new(2006, 'Beta')
a << Foo.new(2007, 'Gamma')
a << Foo.new(2008, 'Delta')
ag = a.group { |e| e.year }
ag.keys.sort.each do |year|
puts year
ag[year].each do |foo|
puts ' ' + foo.title
end
end
__END__
2006
Alpha
Beta
2007
Gamma
2008
Delta
_______________________________________________
Sdruby mailing list
[email protected]
http://lists.sdruby.com/mailman/listinfo/sdruby
_______________________________________________
Sdruby mailing list
[email protected]
http://lists.sdruby.com/mailman/listinfo/sdruby
_______________________________________________
Sdruby mailing list
[email protected]
http://lists.sdruby.com/mailman/listinfo/sdruby
--
Nathan Colgate Clark
Web Designer and Architect
Brand New Box
(619) 322-9459
www.brandnewbox.com
_______________________________________________
Sdruby mailing list
[email protected]
http://lists.sdruby.com/mailman/listinfo/sdruby
_______________________________________________
Sdruby mailing list
[email protected]
http://lists.sdruby.com/mailman/listinfo/sdruby