formtastic/formtastic

View on GitHub

Showing 57 of 57 total issues

Method default_input_type has a Cognitive Complexity of 47 (exceeds 5 allowed). Consider refactoring.
Open

      def default_input_type(method, options = {}) # @private
        if @object
          return :select  if reflection_for(method)

          return :file    if is_file?(method, options)
Severity: Minor
Found in lib/formtastic/helpers/input_helper.rb - About 7 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

Method localize has a Cognitive Complexity of 39 (exceeds 5 allowed). Consider refactoring.
Open

    def localize(key, value, type, options = {}) # @private
      key = value if value.is_a?(::Symbol)

      if value.is_a?(::String)
        escape_html_entities(value)
Severity: Minor
Found in lib/formtastic/localizer.rb - About 5 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

Method required? has a Cognitive Complexity of 20 (exceeds 5 allowed). Consider refactoring.
Open

        def required?
          return false if options[:required] == false
          return true if options[:required] == true
          return false if not_required_through_negated_validation?
          if validations?
Severity: Minor
Found in lib/formtastic/inputs/base/validations.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

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

        def collection_from_association
          if reflection
            if reflection.respond_to?(:options)
              raise PolymorphicInputWithoutCollectionError.new(
                        "A collection must be supplied for #{method} input. Collections cannot be guessed for polymorphic associations."
Severity: Minor
Found in lib/formtastic/inputs/base/collections.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

Method fieldset_contents_from_column_list has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
Open

      def fieldset_contents_from_column_list(columns)
        columns.collect do |method|
          if @object
            if @object.class.respond_to?(:reflect_on_association)
              if (@object.class.reflect_on_association(method.to_sym) && @object.class.reflect_on_association(method.to_sym).options[:polymorphic] == true)
Severity: Minor
Found in lib/formtastic/helpers/inputs_helper.rb - About 1 hr 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

Method inputs_for_nested_attributes has a Cognitive Complexity of 15 (exceeds 5 allowed). Consider refactoring.
Open

      def inputs_for_nested_attributes(*args, &block) # @private
        options = args.extract_options!
        args << options.merge!(:parent => { :builder => self, :for => options[:for] })

        fields_for_block = if block_given?
Severity: Minor
Found in lib/formtastic/helpers/inputs_helper.rb - About 1 hr 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

Method inputs has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
Open

      def inputs(*args, &block)
        wrap_it = @already_in_an_inputs_block ? true : false
        @already_in_an_inputs_block = true

        title = field_set_title_from_args(*args)
Severity: Minor
Found in lib/formtastic/helpers/inputs_helper.rb - About 1 hr 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

Method localize has 42 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    def localize(key, value, type, options = {}) # @private
      key = value if value.is_a?(::Symbol)

      if value.is_a?(::String)
        escape_html_entities(value)
Severity: Minor
Found in lib/formtastic/localizer.rb - About 1 hr to fix

    Method default_input_type has 40 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

          def default_input_type(method, options = {}) # @private
            if @object
              return :select  if reflection_for(method)
    
              return :file    if is_file?(method, options)
    Severity: Minor
    Found in lib/formtastic/helpers/input_helper.rb - About 1 hr to fix

      Method validator_relevant? has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
      Open

              def validator_relevant?(validator)
                return true unless validator.options.key?(:if) || validator.options.key?(:unless)
                conditional = validator.options.key?(:if) ? validator.options[:if] : validator.options[:unless]
      
                result = if conditional.respond_to?(:call) && conditional.arity > 0
      Severity: Minor
      Found in lib/formtastic/inputs/base/validations.rb - About 1 hr 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

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

              def validation_max
                validation = validations? && validations.find do |validation|
                  validation.kind == :numericality
                end
                if validation
      Severity: Major
      Found in lib/formtastic/inputs/base/validations.rb and 1 other location - About 1 hr to fix
      lib/formtastic/inputs/base/validations.rb on lines 67..81

      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 58.

      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

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

              def validation_min
                validation = validations? && validations.find do |validation|
                  validation.kind == :numericality
                end
      
      
      Severity: Major
      Found in lib/formtastic/inputs/base/validations.rb and 1 other location - About 1 hr to fix
      lib/formtastic/inputs/base/validations.rb on lines 87..100

      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 58.

      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

      Method semantic_form_for has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
      Open

            def semantic_form_for(record_or_name_or_array, *args, &proc)
              options = args.extract_options!
              options[:builder] ||= @@builder
              options[:html] ||= {}
              options[:html][:novalidate] = !@@builder.perform_browser_validations unless options[:html].key?(:novalidate)
      Severity: Minor
      Found in lib/formtastic/helpers/form_helper.rb - About 1 hr 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

      Method association_primary_key_for_method has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
      Open

            def association_primary_key_for_method(method) # @private
              reflection = reflection_for(method)
              if reflection
                case association_macro_for_method(method)
                when :has_and_belongs_to_many, :has_many, :references_and_referenced_in_many, :references_many
      Severity: Minor
      Found in lib/formtastic/helpers/reflection.rb - About 1 hr 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

      Method association_columns has a Cognitive Complexity of 11 (exceeds 5 allowed). Consider refactoring.
      Open

            def association_columns(*by_associations) # @private
              if @object.present? && @object.class.respond_to?(:reflections)
                @object.class.reflections.collect do |name, association_reflection|
                  if by_associations.present?
                    if by_associations.include?(association_reflection.macro) && association_reflection.options[:polymorphic] != true
      Severity: Minor
      Found in lib/formtastic/helpers/inputs_helper.rb - About 1 hr 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

      Method field_set_and_list_wrapping has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

            def field_set_and_list_wrapping(*args, &block) # @private
              contents = args[-1].is_a?(::Hash) ? '' : args.pop.flatten
              html_options = args.extract_options!
      
              if block_given?
      Severity: Minor
      Found in lib/formtastic/helpers/fieldset_wrapper.rb - About 55 mins 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

      Method sanitized_object_name has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
      Open

            def sanitized_object_name
              if new_or_persisted_object?
                # Deal with some complications with ActiveRecord::Base.human_name and two name models (eg UserPost)
                # ActiveRecord::Base.human_name falls back to ActiveRecord::Base.name.humanize ("Userpost")
                # if there's no i18n, which is pretty crappy.  In this circumstance we want to detect this
      Severity: Minor
      Found in lib/formtastic/actions/base.rb - About 55 mins 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

      Method field_set_title_from_args has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
      Open

            def field_set_title_from_args(*args) # @private
              options = args.extract_options!
              options[:name] ||= options.delete(:title)
              title = options[:name]
      
      
      Severity: Minor
      Found in lib/formtastic/helpers/inputs_helper.rb - About 45 mins 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

      Method initialize has 6 arguments (exceeds 4 allowed). Consider refactoring.
      Open

            def initialize(builder, template, object, object_name, method, options)
      Severity: Minor
      Found in lib/formtastic/inputs/base.rb - About 45 mins to fix

        Method validation_max has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
        Open

                def validation_max
                  validation = validations? && validations.find do |validation|
                    validation.kind == :numericality
                  end
                  if validation
        Severity: Minor
        Found in lib/formtastic/inputs/base/validations.rb - About 45 mins 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

        Severity
        Category
        Status
        Source
        Language