Permalink
Browse files

Ruby 1.9 compat: limit const_defined?

  • Loading branch information...
1 parent f732c16 commit eb217b2cf02af3d6533fb5b0e3fe87efa78cf43a @jeremy jeremy committed Feb 27, 2009
Showing with 6 additions and 2 deletions.
  1. +6 −2 railties/lib/rails_generator/commands.rb
@@ -182,15 +182,19 @@ def class_collisions(*class_names)
nesting = class_name.split('::')
name = nesting.pop
+ # Hack to limit const_defined? to non-inherited on 1.9.
+ extra = []
+ extra << false unless Object.method(:const_defined?).arity == 1
+
# Extract the last Module in the nesting.
last = nesting.inject(Object) { |last, nest|
- break unless last.const_defined?(nest)
+ break unless last.const_defined?(nest, *extra)
last.const_get(nest)
}
# If the last Module exists, check whether the given
# class exists and raise a collision if so.
- if last and last.const_defined?(name.camelize)
+ if last and last.const_defined?(name.camelize, *extra)
raise_class_collision(class_name)
end
end

0 comments on commit eb217b2

Please sign in to comment.