From e7f91bdfea37072163fcff408d908dc94d6807a8 Mon Sep 17 00:00:00 2001 From: Amol Hatwar Date: Mon, 12 May 2008 06:46:16 +0530 Subject: [PATCH] Fixed collissions for nested controller modules... --- railties/lib/rails_generator/.commands.rb.swp | Bin 0 -> 40960 bytes railties/lib/rails_generator/commands.rb | 25 ++++++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 railties/lib/rails_generator/.commands.rb.swp diff --git a/railties/lib/rails_generator/.commands.rb.swp b/railties/lib/rails_generator/.commands.rb.swp new file mode 100644 index 0000000000000000000000000000000000000000..fc411309ad77bf70ccfdb0088ad68e09660a1188 GIT binary patch literal 40960 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 WFK|~ihw5){Z-`8ZB-P@)$o~hVi|@?< literal 0 HcmV?d00001 diff --git a/railties/lib/rails_generator/commands.rb b/railties/lib/rails_generator/commands.rb index 440bab2..03b7d35 100644 --- a/railties/lib/rails_generator/commands.rb +++ b/railties/lib/rails_generator/commands.rb @@ -154,28 +154,35 @@ HELP # Ruby or Rails. In the future, expand to check other namespaces # such as the rest of the user's app. def class_collisions(*class_names) + + # Initialize some check varibles + last_class = Object + current_class = nil + name = nil + class_names.flatten.each do |class_name| # Convert to string to allow symbol arguments. class_name = class_name.to_s # Skip empty strings. - next if class_name.strip.empty? + class_name.strip.empty? ? next : current_class = class_name # Split the class from its module nesting. nesting = class_name.split('::') name = nesting.pop # Extract the last Module in the nesting. - last = nesting.inject(Object) { |last, nest| - break unless last.const_defined?(nest) - last.const_get(nest) + last = nesting.inject(last_class) { |last, nest| + break unless last_class.const_defined?(nest) + last_class = last_class.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) - raise_class_collision(class_name) - end + end + # If the last Module exists, check whether the given + # class exists and raise a collision if so. + + if last_class and last_class.const_defined?(name.camelize) + raise_class_collision(current_class) end end -- 1.5.4.3