Angularjs示例:Sonar中项目使用语言分布图(CoffeeScript版)

关于SonarLanguage是什么东东,这里就不在描述了,如果你对它感兴趣的话,请移步到上篇随笔开源:Angularjs示例--Sonar中项目使用语言分布图。这里是最近学习CoffeeScript的练习版。

CoffeeScript是一门简洁的,构架于JavaScript之上的预处理器语言,可以静态编译成JavaScript,语法主要受ruby和python影响,目前已经为众多rails和node项目采用。CoffeeScript不是JavaScript的超集,也不是完全替代品。CoffeeScript有点在于:

更少,更紧凑,和更清晰的代码

通过规避和改变对JavaScript中不良部分的使用,只留下精华,让代码减少出错率,更容易维护

在很多常用模式的实现上采用了JavaScript中的最佳实践

CoffeeScript生成的JavaScript代码都可以完全通过JSLint的检测

多的也不想说那么多了,这里主要是个简介,CoffeeScript的练笔示例。

代码如下:

app = angular.module('app', [])    

    .value("$host", "http://nemo.sonarsource.org")    

    .factory("$requestUrl", ($host) -> "#{$host}/api/resources")    

    .factory("$dynamicColor", ($host) ->    

        [r,g,b] = [10,10,0]    

        {    

          getColor: ->    

               [r,g,b] = [(r+100), (g+400), (b + 200)]    

               "##{(r + 256 * g + 65536 * b).toString 16 }"

          ,    

          reset: ->    

               [r,g,b] = [10,10,0]    

        };    

    ).directive('chartData', ->    

            drawChart = (elementId, data) ->    

               chart = new AmCharts.AmPieChart()    

               chart.dataProvider = data    

               chart.titleField = "name"

               chart.valueField = "percentage"

               chart.colorField = "color"

               chart.labelsEnabled = false

               chart.pullOutRadius = 0    

               chart.depth3D = 20    

               chart.angle = 45    

               legend = new AmCharts.AmLegend()    

               legend.makerType = "square"

               legend.align = "center"

               chart.addLegend legend    

               chart.write elementId    

               chart;    

            (scope, element, attr) ->    

                  scope.already.push( ->    

                     data = scope.$eval(attr.chartData);    

                     drawChart(element[0].id, data);    

                  ) if element[0].id    

    )    

report = ($scope, $window, $http, $requestUrl, $dynamicColor) ->    

    $scope.already = []    

    $window.angularJsonpCallBack = (data) ->    

         @data = data    

         getObjectByKey = (msr , key) ->    

            m for m in msr when m.key == key    

         $scope.gridSource = $scope.projects = data    

         ready = (queues) -> angular.forEach(queues, (q) -> q() )    

         ready $scope.already    

    $scope.getLanguageChartData = ->    

         data = _.groupBy $scope.projects , (project) -> project.lang    

         $dynamicColor.reset()    

         chartData = _.map(data, (array, key) ->    

                      "name":key    

                      "percentage":array.length,    

                      "color":$dynamicColor.getColor())    

         _.sortBy(chartData, (num) -> num.percentage )    

    $scope.search = ->    

        source = []    

        if not this.searchName    

            source = @projects    

        else

            source = _.filter @projects, (p) ->    

                       p.name.toLowerCase().indexOf $scope.searchName.toLowerCase() != -1    

        source = _.sortBy(source, (p) -> p[$scope.sortCondition.key].toLowerCase()) if @sortCondition and @sortCondition.key    

        source.reverse() if @sortCondition.sort and not @sortCondition.sort[$scope.sortCondition.key]    

        @gridSource = source    

    $scope.sort = (name) ->    

        @sortCondition ?= {}    

        @sortCondition.sort ?= {}    

        @sortCondition.key = name    

        @sortCondition.sort[name] = not @sortCondition.sort[name]    

        @search();    

    $scope.init = ->    

        $http.jsonp "#{$requestUrl}?callback=angularJsonpCallBack"

app.controller "report", report

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索javascript
, r语言
, rpy2 r语言
, chart
, data
, coffeescript
, source
, amcharts
, amcharts title
, scope
, ready示例
AngularJS示例
,以便于您获取更多的相关知识。

时间: 2024-08-31 00:08:22

Angularjs示例:Sonar中项目使用语言分布图(CoffeeScript版)的相关文章

开源:Angularjs示例--Sonar中项目使用语言分布图(CoffeeScript版)

       关于SonarLanguage是什么东东,这里就不在描述了,如果你对它感兴趣的话,请移步到上篇随笔开源:Angularjs示例--Sonar中项目使用语言分布图.这里是最近学习CoffeeScript的练习版.      CoffeeScript是一门简洁的,构架于JavaScript之上的预处理器语言,可以静态编译成JavaScript,语法主要受ruby和python影响,目前已经为众多rails和node项目采用.CoffeeScript不是JavaScript的超集,也不是

Angularjs示例:Sonar中项目使用语言分布图

在博客中介绍google的Angularjs 客户端PM模式框架很久了,今天发布一个关于AngularJs使用是简单示例SonarLanguage(示例位于Github:https://github.com/greengerong/SonarLanguage).本项目只是一个全为客户端的示例项目.项目的初始是我想看看在公司的项目中使用语言的分布比例,看看C#的份额,这一年一直坐着Java项目,却还是喜欢着C#,这只是个人问题,不存在语言之争.公司的项目在持续集成CI后都会传递build数据到So

分析jQuery Mobile中实现多语言的支持以及优缺点

随着移动技术的普及,基于 jQuery 并且针对移动平台的 JavaScript 框架 jQuery Mobile 应运而生.jQuery Mobile 不仅承袭了 jQuery 的诸多优点,更为移动平台定制了许多皮肤和开发部件,大大减轻了开发人员的工作量.随着 HTML5 技术的日渐完善,加上 JavaScript 技术本身具有的跨平台特性,jQuery Mobile 或者类似的框架必然拥有更加广泛的市场,这从 Adobe 放弃移动 Flash 和 Microsoft 边缘化 SilverLi

sonar源码分析-在linnx环境下shell触发sonar进行项目的原码分析出现异常,求解惑

问题描述 在linnx环境下shell触发sonar进行项目的原码分析出现异常,求解惑 在我已配置的环境中前几次进行触发sonar分析服务没有问题,但最近不知道是不是服务器停过电,服务以外终止运行了,现再启动后再次触发分析服务,就出现了异常,错位内容提示如下: [ERROR] [11:33:10.265] It looks like an analysis of 'talkyun tone v2.0.0-SNAPSHOT' is already running (started about a

CAS SSO 中设置默认语言为汉语(国际化)

CAS SSO 中设置默认语言为汉语(国际化)      1   闲来无聊学一下CAS单点登录的一个开源实现:但是觉得如果要用到自己项目中.页面是需要修改的.但首先设置了汉语,会对你的修改有很好的帮助.其实在我当前使用的版本中cas-server-4.0.0,注意我是自己下载源码(https://github.com/Jasig/cas)使用maven构建的.      2  参考资料:cas国际化      3  其实如果只是测试用完全不用那么麻烦,在你配置cas之后在首页你就能看到一大堆语言

在ASP中使用脚本语言

脚本语言介于HTML和Java,C++以及VisualBasic等编程语言之间.HTML通常用于格式化和链结文本.而编程语言通常用于向机器发出一系列复杂的指令.脚本语言介于两者之间但它的函数与编程语言更为相象一些.它与编程语言之间最大的区别是后者的语法和规则更为严格和复杂一些. 在服务器端使用脚本语言,需要在服务器端安装脚本引擎.脚本引擎是用于处理脚本的COM(组件对象模型)对象.ASP为脚本引擎提供主机环境并把.asp文件中的脚本交给脚本引擎处理.对于.asp文件中使用的每种脚本语言,都要将他

Eclipse中项目各资源目录的具体含义

Eclipse中项目各资源目录的具体含义见下图: 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/Java/

solaris下的中文语言环境:如何显示系统中安装的语言环境

成为超级用户或同等角色. 角色包含授权和具有一定权限的命令. 使用 localeadm 命令显示系统中当前安装的语言环境.-l 选项显示系统中安装的语言环境.例如: # localeadm -l Checking for installed pkgs. This could take a while. Checking for Australasia region (aua) (1of2 pkgs) |......| . . . The following regions are install

用XSLT删除XML示例文件中的敏感内容

在处理 XML 文件时,您可能会遇到这种情况:文件中包含敏感数据,而您喜欢的 XML 处理工具又出现了问题,比方说一个 bug.您需要向供应商提供一个引起 bug 的示例文件.当然不能随便发送一个 XML 文件,因为可能是示例文件中的特殊标记造成了问题.您需要有一种方法清除文件中的敏感数据,同时保持文件的特殊结构特征,以便仍然能够说明问题.如本文所述,只要一点 XSLT 技巧就能解决. 消除内容 清单 1 (kill-content.xslt) 中的 XSLT 脚本可以删除所有的文本节点和属性值