znamenica/dneslov

View on GitHub

Showing 2,171 of 2,171 total issues

Method included has 60 lines of code (exceeds 25 allowed). Consider refactoring.
Open

   def self.included base
      base.class_eval do
         has_many :descriptions, -> { where(type: :Description) }, as: :describable, dependent: :delete_all do
            def for language_codes
               where(language_code: language_codes).first
Severity: Major
Found in app/models/concerns/with_descriptions.rb - About 2 hrs to fix

    Cyclomatic complexity for validate_each is too high. [12/6]
    Open

       def validate_each(record, attribute, value)
          o = plain_options
          code = record.alphabeth_code.to_s.to_sym
          res = Languageble::MATCH_TABLE[ code ]
          if res

    This cop checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.

    An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one.

    Function render has 59 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

       render() {
          console.log("[render] *", { 'this.props': this.props, 'this.state': this.state })
    
          return (
             <div className='row'>
    Severity: Major
    Found in app/components/Picture.jsx - About 2 hrs to fix

      Function render has 59 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

         render() {
            console.log("[render] *", { 'this.props': this.props, 'this.state': this.state })
      
            return (
               <div className='row'>
      Severity: Major
      Found in app/components/Eventee.jsx - About 2 hrs to fix

        PickMeUpCalendar has 22 functions (exceeds 20 allowed). Consider refactoring.
        Open

        export default class PickMeUpCalendar extends Component {
           static defaultProps = {
              withDate: null,
              calendarStyle: 'neojulian',
              calendary: {},
        Severity: Minor
        Found in app/components/PickMeUpCalendar.jsx - About 2 hrs to fix

          Consider simplifying this complex logical expression.
          Open

                } else if (m[3]) {
                   year = this.fixedYearForYearDate(m[3], yearIn),
                   datePre = new Date(Date.parse((m[3].concat("." + year)).split('.').reverse().join('-'))),
                   gapIn = parseInt(m[5]) - datePre.getDay()
          
          
          Severity: Critical
          Found in app/components/EventSpans.jsx - About 2 hrs to fix

            Block has too many lines. [49/25]
            Open

                     scope :with_titles, -> context do
                        as = table.table_alias || table.name
                        language_codes = [ context[:locales] ].flatten
                        alphabeth_codes = Languageble.alphabeth_list_for( language_codes ).flatten
                        selector = self.select_values.dup
            Severity: Minor
            Found in app/models/concerns/with_titles.rb by rubocop

            This cop checks if the length of a block exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable. The cop can be configured to ignore blocks passed to certain methods.

            Method validate_each has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
            Open

               def validate_each(record, attribute, value)
                  # if a local link just return true
                  return true if value =~ %r{^/}
            
                  response = Net::HTTP.get_response(URI(value && Addressable::URI.encode(value)))
            Severity: Minor
            Found in app/validators/uri_validator.rb - About 2 hrs to fix

            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

            Assignment Branch Condition size for included is too high. [35.64/30]
            Open

               def self.included base
                  base.class_eval do
                     has_many :links, as: :info, dependent: :destroy
            
                     scope :with_links, -> context do
            Severity: Minor
            Found in app/models/concerns/with_links.rb by rubocop

            This cop checks that the ABC size of methods is not higher than the configured maximum. The ABC size is based on assignments, branches (method calls), and conditions. See http://c2.com/cgi/wiki?AbcMetric

            Block has too many lines. [48/25]
            Open

                  base.class_eval do
                     has_many :links, as: :info, dependent: :destroy
            
                     scope :with_links, -> context do
                        join_name = table.table_alias || table.name
            Severity: Minor
            Found in app/models/concerns/with_links.rb by rubocop

            This cop checks if the length of a block exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable. The cop can be configured to ignore blocks passed to certain methods.

            Method has too many lines. [20/15]
            Open

               def base= value
                  digits = value.mb_chars.downcase.to_s.gsub(/[^0-9]+/, '')
                  words = value.gsub(/[0-9]+/, '').split(/\s+/).select do |x|
                     x.mb_chars.downcase.to_s != x ;end
                  .map do |x|
            Severity: Minor
            Found in app/models/slug.rb by rubocop

            This cop checks if the length of a method exceeds some maximum value. Comment lines can optionally be ignored. The maximum allowed length is configurable.

            Perceived complexity for validate_each is too high. [12/7]
            Open

               def validate_each(record, attribute, value)
                  o = plain_options
                  code = record.alphabeth_code.to_s.to_sym
                  res = Languageble::MATCH_TABLE[ code ]
                  if res

            This cop tries to produce a complexity score that's a measure of the complexity the reader experiences when looking at a method. For that reason it considers when nodes as something that doesn't add as much complexity as an if or a &&. Except if it's one of those special case/when constructs where there's no expression after case. Then the cop treats it as an if/elsif/elsif... and lets all the when nodes count. In contrast to the CyclomaticComplexity cop, this cop considers else nodes as adding complexity.

            Example:

            def my_method                   # 1
              if cond                       # 1
                case var                    # 2 (0.8 + 4 * 0.2, rounded)
                when 1 then func_one
                when 2 then func_two
                when 3 then func_three
                when 4..10 then func_other
                end
              else                          # 1
                do_something until a && b   # 2
              end                           # ===
            end                             # 7 complexity points

            Method fix_year_date has 54 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

               def fix_year_date
                  self.year_date =
                  case self.year_date
                  when /пасха/
                     "+0"
            Severity: Major
            Found in app/models/memo.rb - About 2 hrs to fix

              Identical blocks of code found in 2 locations. Consider refactoring.
              Open

                 static getOrder(props) {
                    return props.memoes.reduce((order, m) => {
                       return order || this.isInCalendaries(props, m) && Object.values(m.orders)[0]
                    }, null) || props.order
                 }
              Severity: Major
              Found in app/components/Picture.jsx and 1 other location - About 2 hrs to fix
              app/components/Eventee.jsx on lines 126..130

              Duplicated Code

              Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

              Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

              When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

              Tuning

              This issue has a mass of 78.

              We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

              The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

              If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

              See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

              Refactorings

              Further Reading

              Identical blocks of code found in 2 locations. Consider refactoring.
              Open

                 static getOrder(props) {
                    return props.memoes.reduce((order, m) => {
                       return order || this.isInCalendaries(props, m) && Object.values(m.orders)[0]
                    }, null) || props.order
                 }
              Severity: Major
              Found in app/components/Eventee.jsx and 1 other location - About 2 hrs to fix
              app/components/Picture.jsx on lines 127..131

              Duplicated Code

              Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

              Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

              When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

              Tuning

              This issue has a mass of 78.

              We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

              The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

              If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

              See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

              Refactorings

              Further Reading

              Perceived complexity for find is too high. [11/7]
              Open

                 def find *args
                    if self.respond_to?( :default_key )
                       new_args = args.flatten.reject { |a| a.blank? }
                       rel = self.where(self.default_key => new_args)
                       if rel.size < new_args.size
              Severity: Minor
              Found in app/models/concerns/default_key.rb by rubocop

              This cop tries to produce a complexity score that's a measure of the complexity the reader experiences when looking at a method. For that reason it considers when nodes as something that doesn't add as much complexity as an if or a &&. Except if it's one of those special case/when constructs where there's no expression after case. Then the cop treats it as an if/elsif/elsif... and lets all the when nodes count. In contrast to the CyclomaticComplexity cop, this cop considers else nodes as adding complexity.

              Example:

              def my_method                   # 1
                if cond                       # 1
                  case var                    # 2 (0.8 + 4 * 0.2, rounded)
                  when 1 then func_one
                  when 2 then func_two
                  when 3 then func_three
                  when 4..10 then func_other
                  end
                else                          # 1
                  do_something until a && b   # 2
                end                           # ===
              end                             # 7 complexity points

              Perceived complexity for year_date_for is too high. [11/7]
              Open

                 def self.year_date_for year_date, date_in, julian
                    return nil if date_in.blank?
              
                    date =  [ Time, Date, DateTime ].any? {|c| date_in.is_a?(c) } && date_in || Time.parse(date_in)
                    if /(?<day>\d+)\.(?<month>\d+)%(?<weekday>\d+)$/ =~ year_date
              Severity: Minor
              Found in app/models/event.rb by rubocop

              This cop tries to produce a complexity score that's a measure of the complexity the reader experiences when looking at a method. For that reason it considers when nodes as something that doesn't add as much complexity as an if or a &&. Except if it's one of those special case/when constructs where there's no expression after case. Then the cop treats it as an if/elsif/elsif... and lets all the when nodes count. In contrast to the CyclomaticComplexity cop, this cop considers else nodes as adding complexity.

              Example:

              def my_method                   # 1
                if cond                       # 1
                  case var                    # 2 (0.8 + 4 * 0.2, rounded)
                  when 1 then func_one
                  when 2 then func_two
                  when 3 then func_three
                  when 4..10 then func_other
                  end
                else                          # 1
                  do_something until a && b   # 2
                end                           # ===
              end                             # 7 complexity points

              Cyclomatic complexity for year_date_for is too high. [10/6]
              Open

                 def self.year_date_for year_date, date_in, julian
                    return nil if date_in.blank?
              
                    date =  [ Time, Date, DateTime ].any? {|c| date_in.is_a?(c) } && date_in || Time.parse(date_in)
                    if /(?<day>\d+)\.(?<month>\d+)%(?<weekday>\d+)$/ =~ year_date
              Severity: Minor
              Found in app/models/event.rb by rubocop

              This cop checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.

              An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one.

              Cyclomatic complexity for set_base_year is too high. [10/6]
              Open

                 def set_base_year
                    types = %w(Resurrection Repose Writing Appearance Translation Sanctification)
              
                    event = self.events.to_a.sort_by { |x| (types.index(x.kind) || 100) }.first
              
              
              Severity: Minor
              Found in app/models/memory.rb by rubocop

              This cop checks that the cyclomatic complexity of methods is not higher than the configured maximum. The cyclomatic complexity is the number of linearly independent paths through a method. The algorithm counts decision points and adds one.

              An if statement (or unless or ?:) increases the complexity by one. An else branch does not, since it doesn't add a decision point. The && operator (or keyword and) can be converted to a nested if statement, and ||/or is shorthand for a sequence of ifs, so they also add one. Loops can be said to have an exit condition, so they add one.

              File subjectMeta.jsx has 255 lines of code (exceeds 250 allowed). Consider refactoring.
              Open

              import { matchLanguages, matchAlphabeths, matchLetters, matchEmptyObject,
                       matchCodes, matchEmptyCollection, matchValidJson } from 'matchers'
              import { makeName, makeDescription } from 'makers'
              import UrlRegexp from 'UrlRegexp'
              
              
              Severity: Minor
              Found in app/components/subjectMeta.jsx - About 2 hrs to fix
                Severity
                Category
                Status
                Source
                Language