]> source.dussan.org Git - sonarqube.git/commitdiff
Optimize Rails models
authorDavid Gageot <david@gageot.net>
Sat, 6 Oct 2012 08:21:18 +0000 (10:21 +0200)
committerDavid Gageot <david@gageot.net>
Sat, 6 Oct 2012 08:42:09 +0000 (10:42 +0200)
sonar-server/src/main/webapp/WEB-INF/app/models/dashboard.rb
sonar-server/src/main/webapp/WEB-INF/app/models/rule.rb
sonar-server/src/main/webapp/WEB-INF/app/models/rules_parameter.rb
sonar-server/src/main/webapp/WEB-INF/app/models/widget.rb
sonar-server/src/main/webapp/WEB-INF/app/views/rules_configuration/_rule_param.html.erb

index a0ff3cb54ea1ab7ba59e5bf194d1df7691bd8d6c..cd29bd2cb6ee561641e9f7c11b461b5280991079 100644 (file)
@@ -24,7 +24,7 @@ class Dashboard < ActiveRecord::Base
   belongs_to :user
 
   has_many :widgets, :include => 'properties', :dependent => :destroy
-  has_many :active_dashboards, :dependent => :destroy
+  has_many :active_dashboards, :dependent => :destroy, :inverse_of => :dashboard
 
   validates_length_of :name, :within => 1..256
   validates_length_of :description, :maximum => 1000, :allow_blank => true, :allow_nil => true
index ec7e9c2b622916f5ca1d4cf7456faa1cc7ea7a15..8b55ca33938504d6c5d0c6a5c4f33574638d1916 100644 (file)
@@ -24,11 +24,11 @@ class Rule < ActiveRecord::Base
   validates_presence_of :name, :description, :plugin_name
   validates_presence_of :plugin_rule_key, :if => 'name.present?'
 
-  has_many :rules_parameters
-  has_many :rule_failures
-  has_many :active_rules
+  has_many :rules_parameters, :inverse_of => :rule
+  has_many :rule_failures, :inverse_of => :rule
+  has_many :active_rules, :inverse_of => :rule
   belongs_to :parent, :class_name => 'Rule', :foreign_key => 'parent_id'
-  has_one :rule_note
+  has_one :rule_note, :inverse_of => :rule
   alias_attribute :note, :rule_note
 
   def repository_key
index 0979374d4452915eef4582e1876f01b7c060b9fc..afee77ecbf449e220a42d8cc67ea31de1de7b656 100644 (file)
@@ -33,17 +33,6 @@ class RulesParameter < ActiveRecord::Base
     param_type[2, param_type.length-3].split(",")
   end
 
-  # We can provide the rule as parameter to avoid reloading this rule_parameter's rule.
-  # This hack would be useless if we could use :inverse_of on :rule
-  def description(param_rule = rule)
-    @l10n_description ||=
-      begin
-        result = Java::OrgSonarServerUi::JRubyFacade.getInstance().getRuleParamDescription(I18n.locale, param_rule.repository_key, param_rule.plugin_rule_key, name())
-        result = read_attribute(:description) unless result
-        result
-      end
-  end
-
   def description=(value)
     write_attribute(:description, value)
   end
index 61a5d51e0d2e0c09b294488efeb9546a6dbb709a..76766b13e5d570533afc4214166f6731dd15c5a0 100644 (file)
@@ -18,7 +18,7 @@
 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02
 #
 class Widget < ActiveRecord::Base
-  has_many :properties, :dependent => :delete_all, :class_name => 'WidgetProperty'
+  has_many :properties, :dependent => :delete_all, :class_name => 'WidgetProperty', :inverse_of => :widget
   belongs_to :dashboards
   belongs_to :resource, :class_name => 'Project'
 
index 12cb97238c11183f36ae61d5afad33ec899224e5..7e35b07abd580b01b498fbd6ad7d9fc1a8e9b606 100644 (file)
@@ -40,7 +40,7 @@
     <% end %>
   <% end %>
 
-  <div class="form-val-note"><%= h(parameter.description(rule) || "") -%> <%= ('(' + readable_type(parameter.param_type) + ')') if !readable_type(parameter.param_type).empty? -%></div>
+  <div class="form-val-note"><%= h(parameter.rule.description || "") -%> <%= ('(' + readable_type(parameter.param_type) + ')') if !readable_type(parameter.param_type).empty? -%></div>
 
   </form>
 </td>