3scale/porta

View on GitHub
app/models/features_plan.rb

Summary

Maintainability
A
0 mins
Test Coverage

attr_accessible is recommended over attr_protected
Open

  attr_protected :plan_id, :feature_id, :plan_type, :tenant_id
Severity: Minor
Found in app/models/features_plan.rb by brakeman

This warning comes up if a model does not limit what attributes can be set through mass assignment.

In particular, this check looks for attr_accessible inside model definitions. If it is not found, this warning will be issued.

Brakeman also warns on use of attr_protected - especially since it was found to be vulnerable to bypass. Warnings for mass assignment on models using attr_protected will be reported, but at a lower confidence level.

Note that disabling mass assignment globally will suppress these warnings.

FeaturesPlan#feature_scope_matches_plan_class? calls 'self.plan' 2 times
Open

    if self.plan && self.feature && self.feature.scope != self.plan.class.to_s
Severity: Minor
Found in app/models/features_plan.rb by reek

Duplication occurs when two fragments of code look nearly identical, or when two fragments of code have nearly identical effects at some conceptual level.

Reek implements a check for Duplicate Method Call.

Example

Here's a very much simplified and contrived example. The following method will report a warning:

def double_thing()
  @other.thing + @other.thing
end

One quick approach to silence Reek would be to refactor the code thus:

def double_thing()
  thing = @other.thing
  thing + thing
end

A slightly different approach would be to replace all calls of double_thing by calls to @other.double_thing:

class Other
  def double_thing()
    thing + thing
  end
end

The approach you take will depend on balancing other factors in your code.

FeaturesPlan#feature_scope_matches_plan_class? calls 'self.feature' 2 times
Open

    if self.plan && self.feature && self.feature.scope != self.plan.class.to_s
Severity: Minor
Found in app/models/features_plan.rb by reek

Duplication occurs when two fragments of code look nearly identical, or when two fragments of code have nearly identical effects at some conceptual level.

Reek implements a check for Duplicate Method Call.

Example

Here's a very much simplified and contrived example. The following method will report a warning:

def double_thing()
  @other.thing + @other.thing
end

One quick approach to silence Reek would be to refactor the code thus:

def double_thing()
  thing = @other.thing
  thing + thing
end

A slightly different approach would be to replace all calls of double_thing by calls to @other.double_thing:

class Other
  def double_thing()
    thing + thing
  end
end

The approach you take will depend on balancing other factors in your code.

There are no issues that match your filters.

Category
Status