Showing 21 of 21 total issues
Class Bucket
has 30 methods (exceeds 20 allowed). Consider refactoring. Open
class Bucket < ActiveRecord::Base
after_create :add_account_after_create
has_many :contributions, -> { order("amount DESC") }, dependent: :destroy
has_many :comments, dependent: :destroy
belongs_to :group
Method check_csv_for_errors
has a Cognitive Complexity of 24 (exceeds 5 allowed). Consider refactoring. Open
def self.check_csv_for_errors(csv:, group:)
errors = []
if csv.nil? || csv.empty?
errors << "csv is empty"
else
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Class RecentActivityService
has 21 methods (exceeds 20 allowed). Consider refactoring. Open
class RecentActivityService
attr_accessor :comments_on_bucket_you_participated_in,
:comments_on_buckets_user_authored,
:contributions_to_live_buckets_user_authored,
:funded_buckets_user_authored,
Method merge_users
has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring. Open
def self.merge_users(user_to_kill:, user_to_keep:)
if user_to_kill == user_to_keep
puts "nope" unless Rails.env.test?
return
end
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method create
has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring. Open
def create
field = (resource_params.keys.map(&:to_sym) & resource_class.authentication_keys).first
@resource = nil
if field
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method generate_recent_activity_for
has 38 lines of code (exceeds 25 allowed). Consider refactoring. Open
def generate_recent_activity_for(membership:, current_time:, personal_activity_only: false)
user = membership.member
group = membership.group
Allocation.create(user: user, group: group, amount: 20000)
Method generate_csv_upload_preview
has a Cognitive Complexity of 12 (exceeds 5 allowed). Consider refactoring. Open
def self.generate_csv_upload_preview(csv:, group:)
csv.group_by { |row| row[0].downcase }.map do |email, rows|
allocation_amount = rows.sum { |row| row[1].to_f }
notify = rows[0][2]
notify = !!(if notify == 'false' || notify == ' false' then false else true end)
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method create
has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring. Open
def create
group = Group.find(allocation_params[:group_id])
user = User.find(allocation_params[:user_id])
amount = allocation_params[:amount]
notify = allocation_params[:notify]
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method create
has 30 lines of code (exceeds 25 allowed). Consider refactoring. Open
def create
field = (resource_params.keys.map(&:to_sym) & resource_class.authentication_keys).first
@resource = nil
if field
Method create
has 28 lines of code (exceeds 25 allowed). Consider refactoring. Open
def create
group = Group.find(allocation_params[:group_id])
user = User.find(allocation_params[:user_id])
amount = allocation_params[:amount]
notify = allocation_params[:notify]
Method check_csv_for_errors
has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring. Open
def self.check_csv_for_errors(csv: )
errors = []
if csv.nil? || csv.empty?
errors << "csv is empty"
else
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method last_activity_at
has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring. Open
def last_activity_at
last_bucket = buckets.order(updated_at: :desc).limit(1).first
last_bucket_updated_at = last_bucket ? last_bucket.updated_at : nil
last_membership = memberships.order(updated_at: :desc).limit(1).first
last_membership_updated_at = last_membership ? last_membership.updated_at : nil
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Consider simplifying this complex logical expression. Open
render nothing: true, status: 403 and return unless ((current_user.is_member_of?(group) && bucket.user == current_user) || current_user.is_admin_for?(group)) &&
(bucket.is_idea? || bucket.is_funding? || bucket.is_funded?)
Method update_password
has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring. Open
def update_password
render status: 401, nothing: true and return unless valid_update_password_params?
render status: 401, json: { errors: ["current_password is incorrect"] } and return unless current_user.valid_password?(params[:current_password])
render status: 400, json: { errors: ["passwords do not match"] } and return unless params[:password] == params[:confirm_password]
current_user.update(password: params[:password])
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method create
has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring. Open
def create
user = User.find_by_email(params[:email].downcase) || User.create_with_confirmation_token(email: params[:email], name: params[:name])
render nothing: true, status: 400 and return unless user.valid?
if membership = Membership.find_by(member: user, group: group)
if membership.active?
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method generate_csv_upload_preview
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring. Open
def self.generate_csv_upload_preview(csv:, group:)
csv.uniq { |row| row[0] }.map do |row|
email = row[0].downcase
user = User.find_by_email(email)
{
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method authenticate_from_token!
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring. Open
def authenticate_from_token!
# Set the authentication params if not already present
if user_token = params[:user_token].blank? && request.headers["X-User-Token"]
params[:user_token] = user_token
end
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method collection_scoped_to_group
has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring. Open
def collection_scoped_to_group(collection:, group:)
return nil unless collection && collection.any?
scoped_collection =
if collection.table_name == "comments" || collection.table_name == "contributions"
collection.joins(:bucket).where(buckets: {group_id: group.id})
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method archive
has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring. Open
def self.archive(bucket, user, exclude_author_from_email_notifications: false)
ActiveRecord::Base.transaction do
if bucket.is_idea? || bucket.is_funding? || bucket.is_funded?
bucket.contributors(exclude_author: exclude_author_from_email_notifications).each do |funder|
# Don't notify archived members
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method update
has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring. Open
def update
bucket = Bucket.with_totals.find(params[:id])
render status: 403, nothing: true and return unless bucket.is_editable_by?(current_user) &&
(bucket.is_idea? || bucket.is_funding? || bucket.is_funded?)
bucket.update_attributes(bucket_params_update)
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"