self.public_directory = File.join(Rails.root, 'public', 'plugin_assets')
@registered_plugins = {}
+ @used_partials = {}
+
class << self
attr_reader :registered_plugins
private :new
ActiveSupport::Dependencies.autoload_paths += [dir]
end
+ # Warn for potential settings[:partial] collisions
+ if p.configurable?
+ partial = p.settings[:partial]
+ if @used_partials[partial]
+ Rails.logger.warn "WARNING: settings partial '#{partial}' is declared in '#{p.id}' plugin but it is already used by plugin '#{@used_partials[partial]}'. Only one settings view will be used. You may want to contact those plugins authors to fix this."
+ end
+ @used_partials[partial] = p.id
+ end
+
registered_plugins[id] = p
end
end
end
end
+
+ def test_settings_warns_about_possible_partial_collision
+ @klass.register(:foo) { settings :partial => 'foo/settings' }
+ Rails.logger.expects(:warn)
+ @klass.register(:bar) { settings :partial => 'foo/settings' }
+ end
end