elliotchance/gedcom

View on GitHub

Showing 640 of 640 total issues

Function NewSourcePage has 6 arguments (exceeds 4 allowed). Consider refactoring.
Open

func NewSourcePage(document *gedcom.Document, source *gedcom.SourceNode, googleAnalyticsID string, options *PublishShowOptions, indexLetters []rune, placesMap map[string]*place) *SourcePage {
Severity: Minor
Found in html/source_page.go - About 45 mins to fix

    Function NewIndividualPage has 6 arguments (exceeds 4 allowed). Consider refactoring.
    Open

    func NewIndividualPage(document *gedcom.Document, individual *gedcom.IndividualNode, googleAnalyticsID string, options *PublishShowOptions, indexLetters []rune, placesMap map[string]*place) *IndividualPage {
    Severity: Minor
    Found in html/individual_page.go - About 45 mins to fix

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

      func (dates DateNodes) Maximum() *DateNode {
          min := (*DateNode)(nil)
      
          for _, date := range dates {
              if min == nil || date.EndDate().Years() > min.EndDate().Years() {
      Severity: Minor
      Found in date_nodes.go and 1 other location - About 40 mins to fix
      date_nodes.go on lines 16..26

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

      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

      func (dates DateNodes) Minimum() *DateNode {
          min := (*DateNode)(nil)
      
          for _, date := range dates {
              if min == nil || date.StartDate().Years() < min.StartDate().Years() {
      Severity: Minor
      Found in date_nodes.go and 1 other location - About 40 mins to fix
      date_nodes.go on lines 37..47

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

      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 FirstExpr.Evaluate has 6 return statements (exceeds 4 allowed).
      Open

      func (e *FirstExpr) Evaluate(engine *Engine, input interface{}, args []*Statement) (interface{}, error) {
          in := reflect.ValueOf(input)
      
          if len(args) != 1 {
              return nil, fmt.Errorf("function First() must take a single argument")
      Severity: Major
      Found in q/first_expr.go - About 40 mins to fix

        Method BinaryExpr.Evaluate has 6 return statements (exceeds 4 allowed).
        Open

        func (e *BinaryExpr) Evaluate(engine *Engine, input interface{}, args []*Statement) (interface{}, error) {
            in := reflect.ValueOf(input)
        
            // If it is a slice we need to Evaluate each one.
            if in.Kind() == reflect.Slice {
        Severity: Major
        Found in q/binary_expr.go - About 40 mins to fix

          Your code does not pass gofmt in 8 places. Go fmt your code!
          Open

          // Comparing and Diffing
          Severity: Minor
          Found in node_diff.go by gofmt

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

          func NewIndividualPage(document *gedcom.Document, individual *gedcom.IndividualNode, googleAnalyticsID string, options *PublishShowOptions, indexLetters []rune, placesMap map[string]*place) *IndividualPage {
              return &IndividualPage{
                  document:          document,
                  individual:        individual,
                  googleAnalyticsID: googleAnalyticsID,
          Severity: Minor
          Found in html/individual_page.go and 1 other location - About 40 mins to fix
          html/source_page.go on lines 19..28

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

          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

          func NewSourcePage(document *gedcom.Document, source *gedcom.SourceNode, googleAnalyticsID string, options *PublishShowOptions, indexLetters []rune, placesMap map[string]*place) *SourcePage {
              return &SourcePage{
                  document:          document,
                  source:            source,
                  googleAnalyticsID: googleAnalyticsID,
          Severity: Minor
          Found in html/source_page.go and 1 other location - About 40 mins to fix
          html/individual_page.go on lines 21..30

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

          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 5 locations. Consider refactoring.
          Open

          func lessThan(left, right interface{}) (bool, error) {
              sLeft, sRight := binaryStrings(left, right)
          
              if floatLeft, floatRight, ok := binaryFloats(sLeft, sRight); ok {
                  return floatLeft < floatRight, nil
          Severity: Major
          Found in q/binary_expr.go and 4 other locations - About 40 mins to fix
          q/binary_expr.go on lines 110..125
          q/binary_expr.go on lines 136..148
          q/binary_expr.go on lines 150..162
          q/binary_expr.go on lines 178..190

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

          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 5 locations. Consider refactoring.
          Open

          func greaterThan(left, right interface{}) (bool, error) {
              sLeft, sRight := binaryStrings(left, right)
          
              if floatLeft, floatRight, ok := binaryFloats(sLeft, sRight); ok {
                  return floatLeft > floatRight, nil
          Severity: Major
          Found in q/binary_expr.go and 4 other locations - About 40 mins to fix
          q/binary_expr.go on lines 110..125
          q/binary_expr.go on lines 150..162
          q/binary_expr.go on lines 164..176
          q/binary_expr.go on lines 178..190

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

          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 5 locations. Consider refactoring.
          Open

          func greaterThanEqual(left, right interface{}) (bool, error) {
              sLeft, sRight := binaryStrings(left, right)
          
              if floatLeft, floatRight, ok := binaryFloats(sLeft, sRight); ok {
                  return floatLeft >= floatRight, nil
          Severity: Major
          Found in q/binary_expr.go and 4 other locations - About 40 mins to fix
          q/binary_expr.go on lines 110..125
          q/binary_expr.go on lines 136..148
          q/binary_expr.go on lines 164..176
          q/binary_expr.go on lines 178..190

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

          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 3 locations. Consider refactoring.
          Open

          func runNameToDateRatio(gedcom1 *gedcom.Document, gedcom2 *gedcom.Document, idealScore int, options gedcom.SimilarityOptions, tuneFlags *TuneFlags) {
              for x := tuneFlags.optionsNameToDateRatioMin; x <= tuneFlags.optionsNameToDateRatioMax; x += tuneFlags.optionsNameToDateRatioStep {
                  options.NameToDateRatio = x
          
                  runJaroBoost(gedcom1, gedcom2, idealScore, options, tuneFlags)
          Severity: Minor
          Found in cmd/gedcom/tune.go and 2 other locations - About 40 mins to fix
          cmd/gedcom/tune.go on lines 212..218
          cmd/gedcom/tune.go on lines 239..245

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

          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 3 locations. Consider refactoring.
          Open

          func runJaroBoost(gedcom1 *gedcom.Document, gedcom2 *gedcom.Document, idealScore int, options gedcom.SimilarityOptions, tuneFlags *TuneFlags) {
              for x := tuneFlags.optionsJaroBoostMin; x <= tuneFlags.optionsJaroBoostMax; x += tuneFlags.optionsJaroBoostStep {
                  options.JaroBoostThreshold = x
          
                  runJaroPrefixSize(gedcom1, gedcom2, idealScore, options, tuneFlags)
          Severity: Minor
          Found in cmd/gedcom/tune.go and 2 other locations - About 40 mins to fix
          cmd/gedcom/tune.go on lines 212..218
          cmd/gedcom/tune.go on lines 231..237

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

          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

              if !gedcom.IsNil(left) {
                  for _, parents := range left.Parents() {
                      if parent := parents.Husband(); parent != nil {
                          leftParents = append(leftParents, parent.Individual())
                      }
          Severity: Minor
          Found in html/individual_compare.go and 1 other location - About 40 mins to fix
          html/individual_compare.go on lines 137..146

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

          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 5 locations. Consider refactoring.
          Open

          func lessThanEqual(left, right interface{}) (bool, error) {
              sLeft, sRight := binaryStrings(left, right)
          
              if floatLeft, floatRight, ok := binaryFloats(sLeft, sRight); ok {
                  return floatLeft <= floatRight, nil
          Severity: Major
          Found in q/binary_expr.go and 4 other locations - About 40 mins to fix
          q/binary_expr.go on lines 110..125
          q/binary_expr.go on lines 136..148
          q/binary_expr.go on lines 150..162
          q/binary_expr.go on lines 164..176

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

          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 3 locations. Consider refactoring.
          Open

          func runMaxYears(gedcom1 *gedcom.Document, gedcom2 *gedcom.Document, idealScore int, options gedcom.SimilarityOptions, tuneFlags *TuneFlags) {
              for maxYears := tuneFlags.optionYearsMin; maxYears <= tuneFlags.optionYearsMax; maxYears += tuneFlags.optionYearsStep {
                  options.MaxYears = maxYears
          
                  runIndividualWeight(gedcom1, gedcom2, idealScore, options, tuneFlags)
          Severity: Minor
          Found in cmd/gedcom/tune.go and 2 other locations - About 40 mins to fix
          cmd/gedcom/tune.go on lines 231..237
          cmd/gedcom/tune.go on lines 239..245

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

          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 5 locations. Consider refactoring.
          Open

          func equal(left, right interface{}) (bool, error) {
              sLeft, sRight := binaryStrings(left, right)
          
              // Compare as numbers.
              if floatLeft, floatRight, ok := binaryFloats(sLeft, sRight); ok {
          Severity: Major
          Found in q/binary_expr.go and 4 other locations - About 40 mins to fix
          q/binary_expr.go on lines 136..148
          q/binary_expr.go on lines 150..162
          q/binary_expr.go on lines 164..176
          q/binary_expr.go on lines 178..190

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

          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

              if !gedcom.IsNil(right) {
                  for _, parents := range right.Parents() {
                      if parent := parents.Husband(); parent != nil {
                          rightParents = append(rightParents, parent.Individual())
                      }
          Severity: Minor
          Found in html/individual_compare.go and 1 other location - About 40 mins to fix
          html/individual_compare.go on lines 125..134

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

          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

          Function runMinimumSimilarity has 5 arguments (exceeds 4 allowed). Consider refactoring.
          Open

          func runMinimumSimilarity(gedcom1 *gedcom.Document, gedcom2 *gedcom.Document, idealScore int, options gedcom.SimilarityOptions, tuneFlags *TuneFlags) {
          Severity: Minor
          Found in cmd/gedcom/tune.go - About 35 mins to fix
            Severity
            Category
            Status
            Source
            Language