goruby/goruby

View on GitHub

Showing 60 of 60 total issues

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

func integerLt(context CallContext, args ...RubyObject) (RubyObject, error) {
    i := context.Receiver().(*Integer)
    right, ok := args[0].(*Integer)
    if !ok {
        return nil, NewArgumentError(
Severity: Major
Found in object/integer.go and 5 other locations - About 1 hr to fix
object/integer.go on lines 117..130
object/integer.go on lines 132..145
object/integer.go on lines 147..160
object/integer.go on lines 180..193
object/integer.go on lines 195..208

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

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

func integerGt(context CallContext, args ...RubyObject) (RubyObject, error) {
    i := context.Receiver().(*Integer)
    right, ok := args[0].(*Integer)
    if !ok {
        return nil, NewArgumentError(
Severity: Major
Found in object/integer.go and 5 other locations - About 1 hr to fix
object/integer.go on lines 102..115
object/integer.go on lines 132..145
object/integer.go on lines 147..160
object/integer.go on lines 180..193
object/integer.go on lines 195..208

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

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

func integerGte(context CallContext, args ...RubyObject) (RubyObject, error) {
    i := context.Receiver().(*Integer)
    right, ok := args[0].(*Integer)
    if !ok {
        return nil, NewArgumentError(
Severity: Major
Found in object/integer.go and 5 other locations - About 1 hr to fix
object/integer.go on lines 102..115
object/integer.go on lines 117..130
object/integer.go on lines 132..145
object/integer.go on lines 147..160
object/integer.go on lines 195..208

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

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

func integerLte(context CallContext, args ...RubyObject) (RubyObject, error) {
    i := context.Receiver().(*Integer)
    right, ok := args[0].(*Integer)
    if !ok {
        return nil, NewArgumentError(
Severity: Major
Found in object/integer.go and 5 other locations - About 1 hr to fix
object/integer.go on lines 102..115
object/integer.go on lines 117..130
object/integer.go on lines 132..145
object/integer.go on lines 147..160
object/integer.go on lines 180..193

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

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

func integerEq(context CallContext, args ...RubyObject) (RubyObject, error) {
    i := context.Receiver().(*Integer)
    right, ok := args[0].(*Integer)
    if !ok {
        return nil, NewArgumentError(
Severity: Major
Found in object/integer.go and 5 other locations - About 1 hr to fix
object/integer.go on lines 102..115
object/integer.go on lines 117..130
object/integer.go on lines 147..160
object/integer.go on lines 180..193
object/integer.go on lines 195..208

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

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 kernelProtectedMethods(context CallContext, args ...RubyObject) (RubyObject, error) {
    showSuperClassMethods := true
    if len(args) == 1 {
        boolean, ok := args[0].(*Boolean)
        if !ok {
Severity: Major
Found in object/kernel.go and 2 other locations - About 50 mins to fix
object/kernel.go on lines 84..95
object/kernel.go on lines 110..121

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

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 kernelPrivateMethods(context CallContext, args ...RubyObject) (RubyObject, error) {
    showSuperClassMethods := true
    if len(args) == 1 {
        boolean, ok := args[0].(*Boolean)
        if !ok {
Severity: Major
Found in object/kernel.go and 2 other locations - About 50 mins to fix
object/kernel.go on lines 84..95
object/kernel.go on lines 97..108

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

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 kernelPublicMethods(context CallContext, args ...RubyObject) (RubyObject, error) {
    showSuperClassMethods := true
    if len(args) == 1 {
        boolean, ok := args[0].(*Boolean)
        if !ok {
Severity: Major
Found in object/kernel.go and 2 other locations - About 50 mins to fix
object/kernel.go on lines 97..108
object/kernel.go on lines 110..121

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

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 parser.parseFunctionLiteral has 8 return statements (exceeds 4 allowed).
Open

func (p *parser) parseFunctionLiteral() ast.Expression {
    if p.trace {
        defer un(trace(p, "parseFunctionLiteral"))
    }
    lit := &ast.FunctionLiteral{Token: p.curToken}
Severity: Major
Found in parser/parser.go - About 50 mins to fix

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

    func modulePrivateInstanceMethods(context CallContext, args ...RubyObject) (RubyObject, error) {
        showSuperClassInstanceMethods := true
        if len(args) == 1 {
            boolean, ok := args[0].(*Boolean)
            if !ok {
    Severity: Major
    Found in object/module.go and 2 other locations - About 50 mins to fix
    object/module.go on lines 141..153
    object/module.go on lines 155..167

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

    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 moduleProtectedInstanceMethods(context CallContext, args ...RubyObject) (RubyObject, error) {
        showSuperClassInstanceMethods := true
        if len(args) == 1 {
            boolean, ok := args[0].(*Boolean)
            if !ok {
    Severity: Major
    Found in object/module.go and 2 other locations - About 50 mins to fix
    object/module.go on lines 141..153
    object/module.go on lines 169..181

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

    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 modulePublicInstanceMethods(context CallContext, args ...RubyObject) (RubyObject, error) {
        showSuperClassInstanceMethods := true
        if len(args) == 1 {
            boolean, ok := args[0].(*Boolean)
            if !ok {
    Severity: Major
    Found in object/module.go and 2 other locations - About 50 mins to fix
    object/module.go on lines 155..167
    object/module.go on lines 169..181

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

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

    func fileExpandPath(context CallContext, args ...RubyObject) (RubyObject, error) {
        switch len(args) {
        case 1:
            str, ok := args[0].(*String)
            if !ok {
    Severity: Major
    Found in object/file.go - About 45 mins to fix

      Method parser.parseParameters has 7 return statements (exceeds 4 allowed).
      Open

      func (p *parser) parseParameters(startToken, endToken token.Type) []*ast.FunctionParameter {
          if p.trace {
              defer un(trace(p, "parseParameters"))
          }
          hasDelimiters := false
      Severity: Major
      Found in parser/parser.go - About 45 mins to fix

        Function kernelRequire has 7 return statements (exceeds 4 allowed).
        Open

        func kernelRequire(context CallContext, args ...RubyObject) (RubyObject, error) {
            if len(args) != 1 {
                return nil, NewWrongNumberOfArgumentsError(1, len(args))
            }
            name, ok := args[0].(*String)
        Severity: Major
        Found in object/kernel.go - About 45 mins to fix

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

          func (p *parser) peekError(t ...token.Type) {
              epos := p.file.Position(p.pos)
              err := &unexpectedTokenError{
                  Pos:            epos,
                  expectedTokens: t,
          Severity: Minor
          Found in parser/parser.go and 1 other location - About 40 mins to fix
          parser/parser.go on lines 304..312

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

          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 (p *parser) expectError(t ...token.Type) {
              epos := p.file.Position(p.pos)
              err := &unexpectedTokenError{
                  Pos:            epos,
                  expectedTokens: t,
          Severity: Minor
          Found in parser/parser.go and 1 other location - About 40 mins to fix
          parser/parser.go on lines 294..302

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

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

          func (p *parser) parseContextCallExpression(context ast.Expression) ast.Expression {
              if p.trace {
                  defer un(trace(p, "parseContextCallExpression"))
              }
              contextCallExpression := &ast.ContextCallExpression{Token: p.curToken, Context: context}
          Severity: Major
          Found in parser/parser.go - About 40 mins to fix

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

            func lexSingleQuoteString(l *Lexer) StateFn {
                l.ignore()
                r := l.next()
            
                for r != '\'' {
            Severity: Minor
            Found in lexer/lexer.go and 1 other location - About 40 mins to fix
            lexer/lexer.go on lines 380..392

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

            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 lexString(l *Lexer) StateFn {
                l.ignore()
                r := l.next()
            
                for r != '"' {
            Severity: Minor
            Found in lexer/lexer.go and 1 other location - About 40 mins to fix
            lexer/lexer.go on lines 350..362

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

            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

            Severity
            Category
            Status
            Source
            Language