simple_metrics 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -13,7 +13,7 @@ module SimpleMetrics
13
13
  end
14
14
 
15
15
  def find_all
16
- results = collection.find.to_a
16
+ results = collection.find.sort([['name', ::Mongo::ASCENDING]]).to_a
17
17
  metrics(results) if results
18
18
  end
19
19
 
@@ -0,0 +1,23 @@
1
+ (function() {
2
+
3
+ // return the first item of a list only
4
+ // usage: {{#first items}}{{name}}{{/first}}
5
+ Handlebars.registerHelper('first', function(context, block) {
6
+ return block(context[0]);
7
+ });
8
+
9
+ // format an ISO date using Moment.js
10
+ // http://momentjs.com/
11
+ // moment syntax example: moment(Date("2011-07-18T15:50:52")).format("MMMM YYYY")
12
+ // usage: {{dateFormat creation_date format="MMMM YYYY"}}
13
+ Handlebars.registerHelper('dateFormat', function(context, block) {
14
+ if (window.moment) {
15
+ var f = block.hash.format || "YYYY-MM-DD h:mm a";
16
+ console.log(context);
17
+ return moment.utc(context, "YYYY-MM-DD hh:mm:ss z").local().format(f);
18
+ } else {
19
+ return context; // moment plugin not available. return data as is.
20
+ }
21
+ });
22
+
23
+ })();
@@ -0,0 +1,6 @@
1
+ // moment.js
2
+ // version : 1.5.0
3
+ // author : Tim Wood
4
+ // license : MIT
5
+ // momentjs.com
6
+ (function(a,b){function u(a,b){this._d=a,this._isUTC=!!b}function v(a,b){var c=a+"";while(c.length<b)c="0"+c;return c}function w(b,c,d,e){var f=typeof c=="string",g=f?{}:c,h,i,j,k;return f&&e&&(g[c]=+e),h=(g.ms||g.milliseconds||0)+(g.s||g.seconds||0)*1e3+(g.m||g.minutes||0)*6e4+(g.h||g.hours||0)*36e5,i=(g.d||g.days||0)+(g.w||g.weeks||0)*7,j=(g.M||g.months||0)+(g.y||g.years||0)*12,h&&b.setTime(+b+h*d),i&&b.setDate(b.getDate()+i*d),j&&(k=b.getDate(),b.setDate(1),b.setMonth(b.getMonth()+j*d),b.setDate(Math.min((new a(b.getFullYear(),b.getMonth()+1,0)).getDate(),k))),b}function x(a){return Object.prototype.toString.call(a)==="[object Array]"}function y(b){return new a(b[0],b[1]||0,b[2]||1,b[3]||0,b[4]||0,b[5]||0,b[6]||0)}function z(b,d){function r(d){var j,s;switch(d){case"M":return e+1;case"Mo":return e+1+p(e+1);case"MM":return v(e+1,2);case"MMM":return c.monthsShort[e];case"MMMM":return c.months[e];case"D":return f;case"Do":return f+p(f);case"DD":return v(f,2);case"DDD":return j=new a(g,e,f),s=new a(g,0,1),~~((j-s)/864e5+1.5);case"DDDo":return j=r("DDD"),j+p(j);case"DDDD":return v(r("DDD"),3);case"d":return h;case"do":return h+p(h);case"ddd":return c.weekdaysShort[h];case"dddd":return c.weekdays[h];case"w":return j=new a(g,e,f-h+5),s=new a(j.getFullYear(),0,4),~~((j-s)/864e5/7+1.5);case"wo":return j=r("w"),j+p(j);case"ww":return v(r("w"),2);case"YY":return v(g%100,2);case"YYYY":return g;case"a":return i>11?q.pm:q.am;case"A":return i>11?q.PM:q.AM;case"H":return i;case"HH":return v(i,2);case"h":return i%12||12;case"hh":return v(i%12||12,2);case"m":return m;case"mm":return v(m,2);case"s":return n;case"ss":return v(n,2);case"zz":case"z":return(b._d.toString().match(l)||[""])[0].replace(k,"");case"Z":return(o<0?"-":"+")+v(~~(Math.abs(o)/60),2)+":"+v(~~(Math.abs(o)%60),2);case"ZZ":return(o<0?"-":"+")+v(~~(10*Math.abs(o)/6),4);case"L":case"LL":case"LLL":case"LLLL":case"LT":return z(b,c.longDateFormat[d]);default:return d.replace(/(^\[)|(\\)|\]$/g,"")}}var e=b.month(),f=b.date(),g=b.year(),h=b.day(),i=b.hours(),m=b.minutes(),n=b.seconds(),o=-b.zone(),p=c.ordinal,q=c.meridiem;return d.replace(j,r)}function A(b,d){function p(a,b){var d;switch(a){case"M":case"MM":e[1]=~~b-1;break;case"MMM":case"MMMM":for(d=0;d<12;d++)if(c.monthsParse[d].test(b)){e[1]=d;break}break;case"D":case"DD":case"DDD":case"DDDD":e[2]=~~b;break;case"YY":b=~~b,e[0]=b+(b>70?1900:2e3);break;case"YYYY":e[0]=~~Math.abs(b);break;case"a":case"A":o=b.toLowerCase()==="pm";break;case"H":case"HH":case"h":case"hh":e[3]=~~b;break;case"m":case"mm":e[4]=~~b;break;case"s":case"ss":e[5]=~~b;break;case"Z":case"ZZ":h=!0,d=(b||"").match(r),d&&d[1]&&(f=~~d[1]),d&&d[2]&&(g=~~d[2]),d&&d[0]==="+"&&(f=-f,g=-g)}}var e=[0,0,1,0,0,0,0],f=0,g=0,h=!1,i=b.match(n),j=d.match(m),k=Math.min(i.length,j.length),l,o;for(l=0;l<k;l++)p(j[l],i[l]);return o&&e[3]<12&&(e[3]+=12),o===!1&&e[3]===12&&(e[3]=0),e[3]+=f,e[4]+=g,h?new a(a.UTC.apply({},e)):y(e)}function B(a,b){var c=Math.min(a.length,b.length),d=Math.abs(a.length-b.length),e=0,f;for(f=0;f<c;f++)~~a[f]!==~~b[f]&&e++;return e+d}function C(a,b){var c,d=a.match(n),e=[],f=99,g,h,i;for(g=0;g<b.length;g++)h=A(a,b[g]),i=B(d,z(new u(h),b[g]).match(n)),i<f&&(f=i,c=h);return c}function D(b){var c="YYYY-MM-DDT",d;if(o.exec(b)){for(d=0;d<3;d++)if(q[d][1].exec(b)){c+=q[d][0];break}return A(b,c+"Z")}return new a(b)}function E(a,b,d){var e=c.relativeTime[a];return typeof e=="function"?e(b||1,!!d,a):e.replace(/%d/i,b||1)}function F(a,b){var c=d(Math.abs(a)/1e3),e=d(c/60),f=d(e/60),g=d(f/24),h=d(g/365),i=c<45&&["s",c]||e===1&&["m"]||e<45&&["mm",e]||f===1&&["h"]||f<22&&["hh",f]||g===1&&["d"]||g<=25&&["dd",g]||g<=45&&["M"]||g<345&&["MM",d(g/30)]||h===1&&["y"]||["yy",h];return i[2]=b,E.apply({},i)}function G(a,b){c.fn[a]=function(a){var c=this._isUTC?"UTC":"";return a!=null?(this._d["set"+c+b](a),this):this._d["get"+c+b]()}}var c,d=Math.round,e={},f=typeof module!="undefined",g="months|monthsShort|monthsParse|weekdays|weekdaysShort|longDateFormat|calendar|relativeTime|ordinal|meridiem".split("|"),h,i=/^\/?Date\((\-?\d+)/i,j=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|dddd?|do?|w[o|w]?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|zz?|ZZ?|LT|LL?L?L?)/g,k=/[^A-Z]/g,l=/\([A-Za-z ]+\)|:[0-9]{2} [A-Z]{3} /g,m=/(\\)?(MM?M?M?|dd?d?d|DD?D?D?|YYYY|YY|a|A|hh?|HH?|mm?|ss?|ZZ?|T)/g,n=/(\\)?([0-9]+|([a-zA-Z\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+|([\+\-]\d\d:?\d\d))/gi,o=/\d{4}.\d\d.\d\d(T(\d\d(.\d\d(.\d\d)?)?)?([\+\-]\d\d:?\d\d)?)?/,p="YYYY-MM-DDTHH:mm:ssZ",q=[["HH:mm:ss",/T\d\d:\d\d:\d\d/],["HH:mm",/T\d\d:\d\d/],["HH",/T\d\d/]],r=/([\+\-]|\d\d)/gi,s="1.5.0",t="Month|Date|Hours|Minutes|Seconds|Milliseconds".split("|");c=function(c,d){if(c===null||c==="")return null;var e,f;return c&&c._d instanceof a?e=new a(+c._d):d?x(d)?e=C(c,d):e=A(c,d):(f=i.exec(c),e=c===b?new a:f?new a(+f[1]):c instanceof a?c:x(c)?y(c):typeof c=="string"?D(c):new a(c)),new u(e)},c.utc=function(b,d){return x(b)?new u(new a(a.UTC.apply({},b)),!0):d&&b?c(b+" 0",d+" Z").utc():c(b).utc()},c.humanizeDuration=function(a,b,d){var e=+a,f=c.relativeTime,g;switch(b){case"seconds":e*=1e3;break;case"minutes":e*=6e4;break;case"hours":e*=36e5;break;case"days":e*=864e5;break;case"weeks":e*=6048e5;break;case"months":e*=2592e6;break;case"years":e*=31536e6;break;default:d=!!b}return g=F(e,!d),d?(e<=0?f.past:f.future).replace(/%s/i,g):g},c.version=s,c.defaultFormat=p,c.lang=function(a,b){var d,h,i,j=[];if(b){for(d=0;d<12;d++)j[d]=new RegExp("^"+b.months[d]+"|^"+b.monthsShort[d].replace(".",""),"i");b.monthsParse=b.monthsParse||j,e[a]=b}if(e[a])for(d=0;d<g.length;d++)h=g[d],c[h]=e[a][h]||c[h];else f&&(i=require("./lang/"+a),c.lang(a,i))},c.lang("en",{months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),longDateFormat:{LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D YYYY",LLL:"MMMM D YYYY LT",LLLL:"dddd, MMMM D YYYY LT"},meridiem:{AM:"AM",am:"am",PM:"PM",pm:"pm"},calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[last] dddd [at] LT",sameElse:"L"},relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},ordinal:function(a){var b=a%10;return~~(a%100/10)===1?"th":b===1?"st":b===2?"nd":b===3?"rd":"th"}}),c.isMoment=function(a){return a instanceof u},c.fn=u.prototype={clone:function(){return c(this)},valueOf:function(){return+this._d},"native":function(){return this._d},toString:function(){return this._d.toString()},toDate:function(){return this._d},utc:function(){return this._isUTC=!0,this},local:function(){return this._isUTC=!1,this},format:function(a){return z(this,a?a:c.defaultFormat)},add:function(a,b){return this._d=w(this._d,a,1,b),this},subtract:function(a,b){return this._d=w(this._d,a,-1,b),this},diff:function(a,b,e){var f=c(a),g=(this.zone()-f.zone())*6e4,h=this._d-f._d-g,i=this.year()-f.year(),j=this.month()-f.month(),k=this.date()-f.date(),l;return b==="months"?l=i*12+j+k/30:b==="years"?l=i+j/12:l=b==="seconds"?h/1e3:b==="minutes"?h/6e4:b==="hours"?h/36e5:b==="days"?h/864e5:b==="weeks"?h/6048e5:h,e?l:d(l)},from:function(a,b){return c.humanizeDuration(this.diff(a),!b)},fromNow:function(a){return this.from(c(),a)},calendar:function(){var a=this.diff(c().sod(),"days",!0),b=c.calendar,d=b.sameElse,e=a<-6?d:a<-1?b.lastWeek:a<0?b.lastDay:a<1?b.sameDay:a<2?b.nextDay:a<7?b.nextWeek:d;return this.format(typeof e=="function"?e.apply(this):e)},isLeapYear:function(){var a=this.year();return a%4===0&&a%100!==0||a%400===0},isDST:function(){return this.zone()<c([this.year()]).zone()||this.zone()<c([this.year(),5]).zone()},day:function(a){var b=this._d.getDay();return a==null?b:this.add({d:a-b})},sod:function(){return this.clone().hours(0).minutes(0).seconds(0).milliseconds(0)},eod:function(){return this.sod().add({d:1,ms:-1})},zone:function(){return this._isUTC?0:this._d.getTimezoneOffset()},daysInMonth:function(){return this.clone().month(this.month()+1).date(0).date()}};for(h=0;h<t.length;h++)G(t[h].toLowerCase(),t[h]);G("year","FullYear"),f&&(module.exports=c),typeof window!="undefined"&&(window.moment=c),typeof define=="function"&&define.amd&&define("moment",[],function(){return c})})(Date);
@@ -1,5 +1,63 @@
1
1
  ( function (views){
2
2
 
3
+ var pastel = [
4
+ '#239928',
5
+ '#6CCC70',
6
+ '#DEFFA1',
7
+ '#DEFFA1',
8
+ '#DEFFA1',
9
+ '#362F2B',
10
+ '#BFD657',
11
+ '#FF6131',
12
+ '#FFFF9D',
13
+ '#BEEB9F',
14
+ '#79BD8F',
15
+ '#00A388'
16
+ ].reverse();
17
+
18
+ var customPalette = new Rickshaw.Color.Palette( { scheme: pastel } );
19
+ var spectrum14Palette = new Rickshaw.Color.Palette( { scheme: "spectrum14" } );
20
+
21
+ function addColorToSeries(data, palette) {
22
+ var result = [];
23
+ $.each(data, function(k, v){
24
+ v.color = palette.color();
25
+ result.push(v);
26
+ });
27
+ return result;
28
+ }
29
+
30
+ function timeUnit(time) {
31
+ var timeFixture = new Rickshaw.Fixtures.Time();
32
+ var minuteCustom = {
33
+ name: 'minute',
34
+ seconds: 60,
35
+ formatter: function(d) { return d.getUTCHours()+':'+d.getUTCMinutes()+'h';}
36
+ };
37
+ var hourCustom = {
38
+ name: 'hour',
39
+ seconds: 60*15,
40
+ formatter: function(d) { return d.getUTCHours()+':'+d.getUTCMinutes()+'h';}
41
+ };
42
+ var dayCustom = {
43
+ name: 'day',
44
+ seconds: 60*60*2,
45
+ formatter: function(d) { return d.getUTCHours()+'h';}
46
+ };
47
+ var weekCustom = {
48
+ name: 'week',
49
+ seconds: 60*60*2*7*2,
50
+ formatter: function(d) { return d.getUTCDate()+'. '+d.getUTCMonth()+'.';}
51
+ };
52
+
53
+ switch(time){
54
+ case 'minute': return minuteCustom;
55
+ case 'hour': return hourCustom;
56
+ case 'day': return dayCustom;
57
+ case 'week': return weekCustom;
58
+ }
59
+ }
60
+
3
61
  views.Graph = Backbone.View.extend({
4
62
  template: Handlebars.compile($("#graph").html()),
5
63
 
@@ -12,73 +70,15 @@
12
70
  render: function() {
13
71
  $(this.el).html(this.template({ time: this.time }));
14
72
 
15
- var pastel = [
16
- '#239928',
17
- '#6CCC70',
18
- '#DEFFA1',
19
- '#DEFFA1',
20
- '#DEFFA1',
21
- '#362F2B',
22
- '#BFD657',
23
- '#FF6131',
24
- '#FFFF9D',
25
- '#BEEB9F',
26
- '#79BD8F',
27
- '#00A388'
28
- ].reverse();
29
-
30
- var customPalette = new Rickshaw.Color.Palette( { scheme: pastel } );
31
- var spectrum14Palette = new Rickshaw.Color.Palette( { scheme: "spectrum14" } );
32
-
33
- function addColorToSeries(data, palette) {
34
- var result = [];
35
- $.each(data, function(k, v){
36
- v.color = palette.color();
37
- result.push(v);
38
- });
39
- return result;
40
- }
41
-
42
73
  graph = new Rickshaw.Graph({
43
74
  element: this.$('.graph').get(0),
44
75
  renderer: 'line',
45
76
  series: addColorToSeries(this.series, spectrum14Palette)
46
77
  });
47
78
 
48
- function timeUnit(time) {
49
- var timeFixture = new Rickshaw.Fixtures.Time();
50
- var minuteCustom = {
51
- name: 'minute',
52
- seconds: 60,
53
- formatter: function(d) { return d.getUTCHours()+':'+d.getUTCMinutes()+'h';}
54
- };
55
- var hourCustom = {
56
- name: 'hour',
57
- seconds: 60*15,
58
- formatter: function(d) { return d.getUTCHours()+':'+d.getUTCMinutes()+'h';}
59
- };
60
- var dayCustom = {
61
- name: 'day',
62
- seconds: 60*60*2,
63
- formatter: function(d) { return d.getUTCHours()+'h';}
64
- };
65
- var weekCustom = {
66
- name: 'week',
67
- seconds: 60*60*2*7*2,
68
- formatter: function(d) { return d.getUTCDate()+'. '+d.getUTCMonth()+'.';}
69
- };
70
-
71
- switch(time){
72
- case 'minute': return minuteCustom;
73
- case 'hour': return hourCustom;
74
- case 'day': return dayCustom;
75
- case 'week': return weekCustom;
76
- }
77
- }
78
-
79
79
  var x_axis = new Rickshaw.Graph.Axis.Time({
80
80
  graph: graph,
81
- timeUnit: timeUnit(this.minute)
81
+ timeUnit: timeUnit(this.time)
82
82
  });
83
83
 
84
84
  var y_axis = new Rickshaw.Graph.Axis.Y({
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module SimpleMetrics
3
- VERSION = "0.3.5"
3
+ VERSION = "0.3.6"
4
4
  end
@@ -42,6 +42,7 @@
42
42
  <th>Name</th>
43
43
  <th>Total</th>
44
44
  <th>Last Modified</th>
45
+ <th>Created At</th>
45
46
  </tr>
46
47
  </thead>
47
48
  <tbody>
@@ -49,7 +50,8 @@
49
50
  <tr>
50
51
  <td><a href="#metrics/{{name}}">{{name}}</a></td>
51
52
  <td>{{total}}</td>
52
- <td>{{updated_at}}</td>
53
+ <td>{{dateFormat updated_at}}</td>
54
+ <td>{{dateFormat created_at}}</td>
53
55
  </tr>
54
56
  {{/each}}
55
57
  </tbody>
@@ -95,8 +97,8 @@
95
97
  <a class="brand" href="/">SimpleMetrics</a>
96
98
  <div class="nav-collapse">
97
99
  <ul class="nav">
98
- <li class="active"><a href="/">Home</a></li>
99
- <li><a href="/dashboard">Dashboard</a></li>
100
+ <li class="active"><a href="/">Metrics</a></li>
101
+ <li><a href="/dashboard">Dashboards</a></li>
100
102
  <li><a href="/about">About</a></li>
101
103
  </ul>
102
104
  </div><!--/.nav-collapse -->
@@ -115,9 +117,11 @@
115
117
  <script src="js/lib/handlebars-1.0.0.beta.6.js" type="text/javascript"></script>
116
118
  <script src="js/lib/d3.v2.min.js" type="text/javascript"></script>
117
119
  <script src="js/lib/rickshaw.min.js" type="text/javascript"></script>
120
+ <script src="js/lib/moment.min.js" type="text/javascript"></script>
118
121
 
119
122
  <script src="js/app.js" type="text/javascript"></script>
120
123
  <script src="js/router.js" type="text/javascript"></script>
124
+ <script src="js/helpers.js" type="text/javascript"></script>
121
125
 
122
126
  <script src="js/models/metric.js" type="text/javascript"></script>
123
127
  <script src="js/models/graph.js" type="text/javascript"></script>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_metrics
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.5
4
+ version: 0.3.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-14 00:00:00.000000000 Z
12
+ date: 2012-04-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: &70100115893540 !ruby/object:Gem::Requirement
16
+ requirement: &70211252366540 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70100115893540
24
+ version_requirements: *70211252366540
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rspec
27
- requirement: &70100115892900 !ruby/object:Gem::Requirement
27
+ requirement: &70211252365800 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70100115892900
35
+ version_requirements: *70211252365800
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rr
38
- requirement: &70100115892380 !ruby/object:Gem::Requirement
38
+ requirement: &70211252365360 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70100115892380
46
+ version_requirements: *70211252365360
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: shotgun
49
- requirement: &70100115891740 !ruby/object:Gem::Requirement
49
+ requirement: &70211252364740 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70100115891740
57
+ version_requirements: *70211252364740
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: eventmachine
60
- requirement: &70100115907580 !ruby/object:Gem::Requirement
60
+ requirement: &70211252380520 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70100115907580
68
+ version_requirements: *70211252380520
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: daemons
71
- requirement: &70100115907060 !ruby/object:Gem::Requirement
71
+ requirement: &70211252380000 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70100115907060
79
+ version_requirements: *70211252380000
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: mongo
82
- requirement: &70100115906360 !ruby/object:Gem::Requirement
82
+ requirement: &70211252379280 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '1.6'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70100115906360
90
+ version_requirements: *70211252379280
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: bson
93
- requirement: &70100115905600 !ruby/object:Gem::Requirement
93
+ requirement: &70211252378520 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '1.6'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *70100115905600
101
+ version_requirements: *70211252378520
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: bson_ext
104
- requirement: &70100115904980 !ruby/object:Gem::Requirement
104
+ requirement: &70211252377940 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '1.6'
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *70100115904980
112
+ version_requirements: *70211252377940
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: sinatra
115
- requirement: &70100115904480 !ruby/object:Gem::Requirement
115
+ requirement: &70211252377400 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *70100115904480
123
+ version_requirements: *70211252377400
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: erubis
126
- requirement: &70100115903720 !ruby/object:Gem::Requirement
126
+ requirement: &70211252376600 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
- version_requirements: *70100115903720
134
+ version_requirements: *70211252376600
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: vegas
137
- requirement: &70100115903080 !ruby/object:Gem::Requirement
137
+ requirement: &70211252375960 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: 0.1.2
143
143
  type: :runtime
144
144
  prerelease: false
145
- version_requirements: *70100115903080
145
+ version_requirements: *70211252375960
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: json
148
- requirement: &70100115902540 !ruby/object:Gem::Requirement
148
+ requirement: &70211252375460 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,7 +153,7 @@ dependencies:
153
153
  version: '0'
154
154
  type: :runtime
155
155
  prerelease: false
156
- version_requirements: *70100115902540
156
+ version_requirements: *70211252375460
157
157
  description: SimpleMetrics
158
158
  email:
159
159
  - fdietz@gmail.com
@@ -201,11 +201,13 @@ files:
201
201
  - lib/simple_metrics/public/js/app.js
202
202
  - lib/simple_metrics/public/js/collections/graph.js
203
203
  - lib/simple_metrics/public/js/collections/metric.js
204
+ - lib/simple_metrics/public/js/helpers.js
204
205
  - lib/simple_metrics/public/js/lib/backbone-0.9.2.min.js
205
206
  - lib/simple_metrics/public/js/lib/bootstrap.min.js
206
207
  - lib/simple_metrics/public/js/lib/d3.v2.min.js
207
208
  - lib/simple_metrics/public/js/lib/handlebars-1.0.0.beta.6.js
208
209
  - lib/simple_metrics/public/js/lib/jquery-1.7.1.min.js
210
+ - lib/simple_metrics/public/js/lib/moment.min.js
209
211
  - lib/simple_metrics/public/js/lib/rickshaw.min.js
210
212
  - lib/simple_metrics/public/js/lib/underscore-1.3.1.min.js
211
213
  - lib/simple_metrics/public/js/models/graph.js
@@ -245,7 +247,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
245
247
  version: '0'
246
248
  segments:
247
249
  - 0
248
- hash: 1510336325983770453
250
+ hash: -3369843487740317274
249
251
  required_rubygems_version: !ruby/object:Gem::Requirement
250
252
  none: false
251
253
  requirements:
@@ -254,7 +256,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
254
256
  version: '0'
255
257
  segments:
256
258
  - 0
257
- hash: 1510336325983770453
259
+ hash: -3369843487740317274
258
260
  requirements: []
259
261
  rubyforge_project:
260
262
  rubygems_version: 1.8.15