themouette/fossil-core

View on GitHub
samples/todo/app.js

Summary

Maintainability
F
2 wks
Test Coverage

Function newContext has 929 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    function newContext(contextName) {
        var inCheckLoaded, Module, context, handlers,
            checkLoadedTimeoutId,
            config = {
                //Defaults. Do not set a default for map
Severity: Major
Found in samples/todo/app.js - About 4 days to fix

    File app.js has 1309 lines of code (exceeds 250 allowed). Consider refactoring.
    Open

    /** vim: et:ts=4:sw=4:sts=4
     * @license RequireJS 2.1.9 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
     * Available via the MIT or new BSD license.
     * see: http://github.com/jrburke/requirejs for details
     */
    Severity: Major
    Found in samples/todo/app.js - About 3 days to fix

      Function callPlugin has 88 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

                  callPlugin: function () {
                      var map = this.map,
                          id = map.id,
                          //Map already normalized the prefix.
                          pluginMap = makeModuleMap(map.prefix);
      Severity: Major
      Found in samples/todo/app.js - About 3 hrs to fix

        Function makeRequire has 79 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

                    makeRequire: function (relMap, options) {
                        options = options || {};
        
                        function localRequire(deps, callback, errback) {
                            var id, map, requireMod;
        Severity: Major
        Found in samples/todo/app.js - About 3 hrs to fix

          Function configure has 63 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

                      configure: function (cfg) {
                          //Make sure the baseUrl ends in a slash.
                          if (cfg.baseUrl) {
                              if (cfg.baseUrl.charAt(cfg.baseUrl.length - 1) !== '/') {
                                  cfg.baseUrl += '/';
          Severity: Major
          Found in samples/todo/app.js - About 2 hrs to fix

            Function check has 62 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                        check: function () {
                            if (!this.enabled || this.enabling) {
                                return;
                            }
            
            
            Severity: Major
            Found in samples/todo/app.js - About 2 hrs to fix

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

                      function normalize(name, baseName, applyMap) {
                          var pkgName, pkgConfig, mapValue, nameParts, i, j, nameSegment,
                              foundMap, foundI, foundStarMap, starI,
                              baseParts = baseName && baseName.split('/'),
                              normalizedBaseParts = baseParts,
              Severity: Major
              Found in samples/todo/app.js - About 2 hrs to fix

                Function checkLoaded has 56 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                        function checkLoaded() {
                            var map, modId, err, usingPathFallback,
                                waitInterval = config.waitSeconds * 1000,
                                //It is possible to disable the wait interval by using waitSeconds of 0.
                                expired = waitInterval && (context.startTime + waitInterval) < new Date().getTime(),
                Severity: Major
                Found in samples/todo/app.js - About 2 hrs to fix

                  Function makeModuleMap has 50 lines of code (exceeds 25 allowed). Consider refactoring.
                  Open

                          function makeModuleMap(name, parentModuleMap, isNormalized, applyMap) {
                              var url, pluginModule, suffix, nameParts,
                                  prefix = null,
                                  parentName = parentModuleMap ? parentModuleMap.name : null,
                                  originalName = name,
                  Severity: Minor
                  Found in samples/todo/app.js - About 2 hrs to fix

                    Function enable has 39 lines of code (exceeds 25 allowed). Consider refactoring.
                    Open

                                enable: function () {
                                    enabledRegistry[this.map.id] = this;
                                    this.enabled = true;
                    
                                    //Set flag mentioning that the module is enabling,
                    Severity: Minor
                    Found in samples/todo/app.js - About 1 hr to fix

                      Function load has 36 lines of code (exceeds 25 allowed). Consider refactoring.
                      Open

                          req.load = function (context, moduleName, url) {
                              var config = (context && context.config) || {},
                                  node;
                              if (isBrowser) {
                                  //In the browser so use a script tag
                      Severity: Minor
                      Found in samples/todo/app.js - About 1 hr to fix

                        Function localRequire has 36 lines of code (exceeds 25 allowed). Consider refactoring.
                        Open

                                        function localRequire(deps, callback, errback) {
                                            var id, map, requireMod;
                        
                                            if (options.enableBuildCallback && callback && isFunction(callback)) {
                                                callback.__requireJsBuild = true;
                        Severity: Minor
                        Found in samples/todo/app.js - About 1 hr to fix

                          Function nameToUrl has 35 lines of code (exceeds 25 allowed). Consider refactoring.
                          Open

                                      nameToUrl: function (moduleName, ext, skipExt) {
                                          var paths, pkgs, pkg, pkgPath, syms, i, parentModule, url,
                                              parentPath;
                          
                                          //If a colon is in the URL, it indicates a protocol is used and it is just
                          Severity: Minor
                          Found in samples/todo/app.js - About 1 hr to fix

                            Function completeLoad has 33 lines of code (exceeds 25 allowed). Consider refactoring.
                            Open

                                        completeLoad: function (moduleName) {
                                            var found, args, mod,
                                                shim = getOwn(config.shim, moduleName) || {},
                                                shExports = shim.exports;
                            
                            
                            Severity: Minor
                            Found in samples/todo/app.js - About 1 hr to fix

                              Function fromText has 28 lines of code (exceeds 25 allowed). Consider refactoring.
                              Open

                                                  load.fromText = bind(this, function (text, textAlt) {
                                                      /*jslint evil: true */
                                                      var moduleName = map.name,
                                                          moduleMap = makeModuleMap(moduleName),
                                                          hasInteractive = useInteractive;
                              Severity: Minor
                              Found in samples/todo/app.js - About 1 hr to fix

                                Avoid deeply nested control flow statements.
                                Open

                                                            if (mapValue) {
                                                                mapValue = getOwn(mapValue, nameSegment);
                                                                if (mapValue) {
                                                                    //Match, update name to the new value.
                                                                    foundMap = mapValue;
                                Severity: Major
                                Found in samples/todo/app.js - About 45 mins to fix

                                  Avoid deeply nested control flow statements.
                                  Open

                                                              if (moduleName === pkg.name) {
                                                                  pkgPath = pkg.location + '/' + pkg.main;
                                                              } else {
                                                                  pkgPath = pkg.location;
                                                              }
                                  Severity: Major
                                  Found in samples/todo/app.js - About 45 mins to fix

                                    Avoid deeply nested control flow statements.
                                    Open

                                                                    if (cjsModule &&
                                                                            cjsModule.exports !== undefined &&
                                                                            //Make sure it is not already the exports value
                                                                            cjsModule.exports !== this.exports) {
                                                                        exports = cjsModule.exports;
                                    Severity: Major
                                    Found in samples/todo/app.js - About 45 mins to fix

                                      Avoid too many return statements within this function.
                                      Open

                                                              return defined[id];
                                      Severity: Major
                                      Found in samples/todo/app.js - About 30 mins to fix

                                        Avoid too many return statements within this function.
                                        Open

                                                            return localRequire;
                                        Severity: Major
                                        Found in samples/todo/app.js - About 30 mins to fix

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

                                          define('kernel', [
                                              'jquery',
                                              'underscore',
                                              './application',
                                              'fossil/engines/underscore',
                                          Severity: Major
                                          Found in samples/todo/app.js and 1 other location - About 3 days to fix
                                          samples/todo/src/kernel.js on lines 1..72

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

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

                                          require.config({
                                              baseUrl: './src',
                                              paths: {
                                                  'jquery': '../bower_components/jquery/jquery',
                                                  'underscore': '../bower_components/underscore/underscore',
                                          Severity: Major
                                          Found in samples/todo/app.js and 2 other locations - About 2 hrs to fix
                                          samples/todo/src/config.js on lines 1..14
                                          skeleton/src/config.js on lines 1..14

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

                                          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

                                          There are no issues that match your filters.

                                          Category
                                          Status