morrisjs-rails 0.4.2.1 → 0.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d9182f5f02cde2b79e8672e49d333f51dad123e3
4
- data.tar.gz: cf26a2a8303b43876e2e88438b2210ce557545d0
3
+ metadata.gz: 557908fc7a271ae63e08996d9431037e79544876
4
+ data.tar.gz: 59a397f9c96a4fd6cad0be9e5af25dd3500c6330
5
5
  SHA512:
6
- metadata.gz: e0b3dd23491807f2bcd604f729ab18240e517cd333b07d78ec8af4c4acd017124a33905ffe7f3a6b0f51600ddad3d7b06829609997c3c9dabe87d1c97af15117
7
- data.tar.gz: e93badd48d59bca294866fcbf5534189a18ceda052b30dc8534967d32aea826848d25649834ba1b3bd7dc205c1e2116e737c0d8ee8632fa6a67ecc9824e0ddbc
6
+ metadata.gz: 093630ae1057b764c4c1699cd23b05e504b65843d1083bd22fe97c2146345a6b3c18fd3a1af34e2fb19bc3aad350615e302eeae409103bfcf55a9361d5ae9836
7
+ data.tar.gz: 04b2169c8e6cb7934ae6c849fffb55622b538d91af1dfea6d3c10a424f550bce9a062d03ee5e5836bbb7cc558477c7658139f35d20d83b4cf6c5377b36322b33
@@ -1,5 +1,5 @@
1
1
  module Morrisjs
2
2
  module Rails
3
- VERSION = "0.4.2.1"
3
+ VERSION = "0.4.3"
4
4
  end
5
5
  end
@@ -21,7 +21,8 @@
21
21
  if (this.handlers[name] == null) {
22
22
  this.handlers[name] = [];
23
23
  }
24
- return this.handlers[name].push(handler);
24
+ this.handlers[name].push(handler);
25
+ return this;
25
26
  };
26
27
 
27
28
  EventEmitter.prototype.fire = function() {
@@ -125,8 +126,11 @@
125
126
  gridStrokeWidth: 0.5,
126
127
  gridTextColor: '#888',
127
128
  gridTextSize: 12,
129
+ gridTextFamily: 'sans-serif',
130
+ gridTextWeight: 'normal',
128
131
  hideHover: false,
129
132
  yLabelFormat: null,
133
+ xLabelAngle: 0,
130
134
  numLines: 5,
131
135
  padding: 25,
132
136
  parseTime: true,
@@ -147,6 +151,7 @@
147
151
  if (redraw == null) {
148
152
  redraw = true;
149
153
  }
154
+ this.options.data = data;
150
155
  if (!(data != null) || data.length === 0) {
151
156
  this.data = [];
152
157
  this.raphael.clear();
@@ -179,6 +184,9 @@
179
184
  }
180
185
  } else {
181
186
  ret.x = index;
187
+ if (this.options.xLabelFormat) {
188
+ ret.label = this.options.xLabelFormat(ret);
189
+ }
182
190
  }
183
191
  total = 0;
184
192
  ret.y = (function() {
@@ -341,7 +349,7 @@
341
349
  };
342
350
 
343
351
  Grid.prototype._calc = function() {
344
- var gridLine, h, w, yLabelWidths;
352
+ var bottomOffsets, gridLine, h, i, w, yLabelWidths;
345
353
  w = this.el.width();
346
354
  h = this.el.height();
347
355
  if (this.elementWidth !== w || this.elementHeight !== h || this.dirty) {
@@ -359,12 +367,20 @@
359
367
  _results = [];
360
368
  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
361
369
  gridLine = _ref[_i];
362
- _results.push(this.measureText(this.yAxisFormat(gridLine), this.options.gridTextSize).width);
370
+ _results.push(this.measureText(this.yAxisFormat(gridLine)).width);
363
371
  }
364
372
  return _results;
365
373
  }).call(this);
366
374
  this.left += Math.max.apply(Math, yLabelWidths);
367
- this.bottom -= 1.5 * this.options.gridTextSize;
375
+ bottomOffsets = (function() {
376
+ var _i, _ref, _results;
377
+ _results = [];
378
+ for (i = _i = 0, _ref = this.data.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
379
+ _results.push(this.measureText(this.data[i].text, -this.options.xLabelAngle).height);
380
+ }
381
+ return _results;
382
+ }).call(this);
383
+ this.bottom -= Math.max.apply(Math, bottomOffsets);
368
384
  }
369
385
  this.width = Math.max(1, this.right - this.left);
370
386
  this.height = Math.max(1, this.bottom - this.top);
@@ -399,12 +415,12 @@
399
415
  }
400
416
  };
401
417
 
402
- Grid.prototype.measureText = function(text, fontSize) {
418
+ Grid.prototype.measureText = function(text, angle) {
403
419
  var ret, tt;
404
- if (fontSize == null) {
405
- fontSize = 12;
420
+ if (angle == null) {
421
+ angle = 0;
406
422
  }
407
- tt = this.raphael.text(100, 100, text).attr('font-size', fontSize);
423
+ tt = this.raphael.text(100, 100, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).rotate(angle);
408
424
  ret = tt.getBBox();
409
425
  tt.remove();
410
426
  return ret;
@@ -485,7 +501,7 @@
485
501
  };
486
502
 
487
503
  Grid.prototype.drawYAxisLabel = function(xPos, yPos, text) {
488
- return this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('fill', this.options.gridTextColor).attr('text-anchor', 'end');
504
+ return this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).attr('fill', this.options.gridTextColor).attr('text-anchor', 'end');
489
505
  };
490
506
 
491
507
  Grid.prototype.drawGridLine = function(path) {
@@ -599,7 +615,7 @@
599
615
  }
600
616
  return this.el.css({
601
617
  left: left + "px",
602
- top: top + "px"
618
+ top: parseInt(top) + "px"
603
619
  });
604
620
  };
605
621
 
@@ -660,7 +676,7 @@
660
676
  smooth: true,
661
677
  xLabels: 'auto',
662
678
  xLabelFormat: null,
663
- xLabelMargin: 50,
679
+ xLabelMargin: 24,
664
680
  continuousLine: true,
665
681
  hideHover: false
666
682
  };
@@ -735,7 +751,7 @@
735
751
  };
736
752
 
737
753
  Line.prototype.onHoverOut = function() {
738
- if (this.options.hideHover === 'auto') {
754
+ if (this.options.hideHover !== false) {
739
755
  return this.displayHoverForRow(null);
740
756
  }
741
757
  };
@@ -822,15 +838,28 @@
822
838
  };
823
839
 
824
840
  Line.prototype.drawXAxis = function() {
825
- var drawLabel, l, labels, prevLabelMargin, row, ypos, _i, _len, _results,
841
+ var drawLabel, l, labels, prevAngleMargin, prevLabelMargin, row, ypos, _i, _len, _results,
826
842
  _this = this;
827
- ypos = this.bottom + this.options.gridTextSize * 1.25;
843
+ ypos = this.bottom + this.options.padding / 2;
828
844
  prevLabelMargin = null;
845
+ prevAngleMargin = null;
829
846
  drawLabel = function(labelText, xpos) {
830
- var label, labelBox;
847
+ var label, labelBox, margin, offset, textBox;
831
848
  label = _this.drawXAxisLabel(_this.transX(xpos), ypos, labelText);
849
+ textBox = label.getBBox();
850
+ label.transform("r" + (-_this.options.xLabelAngle));
832
851
  labelBox = label.getBBox();
833
- if ((!(prevLabelMargin != null) || prevLabelMargin >= labelBox.x + labelBox.width) && labelBox.x >= 0 && (labelBox.x + labelBox.width) < _this.el.width()) {
852
+ label.transform("t0," + (labelBox.height / 2) + "...");
853
+ if (_this.options.xLabelAngle !== 0) {
854
+ offset = -0.5 * textBox.width * Math.cos(_this.options.xLabelAngle * Math.PI / 180.0);
855
+ label.transform("t" + offset + ",0...");
856
+ }
857
+ labelBox = label.getBBox();
858
+ if ((!(prevLabelMargin != null) || prevLabelMargin >= labelBox.x + labelBox.width || (prevAngleMargin != null) && prevAngleMargin >= labelBox.x) && labelBox.x >= 0 && (labelBox.x + labelBox.width) < _this.el.width()) {
859
+ if (_this.options.xLabelAngle !== 0) {
860
+ margin = 1.25 * _this.options.gridTextSize / Math.sin(_this.options.xLabelAngle * Math.PI / 180.0);
861
+ prevAngleMargin = labelBox.x - margin;
862
+ }
834
863
  return prevLabelMargin = labelBox.x - _this.options.xLabelMargin;
835
864
  } else {
836
865
  return label.remove();
@@ -997,7 +1026,7 @@
997
1026
  };
998
1027
 
999
1028
  Line.prototype.drawXAxisLabel = function(xPos, yPos, text) {
1000
- return this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('fill', this.options.gridTextColor);
1029
+ return this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).attr('fill', this.options.gridTextColor);
1001
1030
  };
1002
1031
 
1003
1032
  Line.prototype.drawLinePath = function(path, lineColor) {
@@ -1238,7 +1267,7 @@
1238
1267
  Area.prototype.fillForSeries = function(i) {
1239
1268
  var color;
1240
1269
  color = Raphael.rgb2hsl(this.colorFor(this.data[i], i, 'line'));
1241
- return Raphael.hsl(color.h, Math.min(255, this.options.behaveLikeLine ? color.s * 0.9 : color.s * 0.75), Math.min(255, this.options.behaveLikeLine ? color.l * 1.2 : color.l * 1.25));
1270
+ return Raphael.hsl(color.h, this.options.behaveLikeLine ? color.s * 0.9 : color.s * 0.75, Math.min(0.98, this.options.behaveLikeLine ? color.l * 1.2 : color.l * 1.25));
1242
1271
  };
1243
1272
 
1244
1273
  Area.prototype.drawFilledPath = function(path, fill) {
@@ -1327,15 +1356,27 @@
1327
1356
  };
1328
1357
 
1329
1358
  Bar.prototype.drawXAxis = function() {
1330
- var i, label, labelBox, prevLabelMargin, row, ypos, _i, _ref, _results;
1331
- ypos = this.bottom + this.options.gridTextSize * 1.25;
1359
+ var i, label, labelBox, margin, offset, prevAngleMargin, prevLabelMargin, row, textBox, ypos, _i, _ref, _results;
1360
+ ypos = this.bottom + this.options.padding / 2;
1332
1361
  prevLabelMargin = null;
1362
+ prevAngleMargin = null;
1333
1363
  _results = [];
1334
1364
  for (i = _i = 0, _ref = this.data.length; 0 <= _ref ? _i < _ref : _i > _ref; i = 0 <= _ref ? ++_i : --_i) {
1335
1365
  row = this.data[this.data.length - 1 - i];
1336
1366
  label = this.drawXAxisLabel(row._x, ypos, row.label);
1367
+ textBox = label.getBBox();
1368
+ label.transform("r" + (-this.options.xLabelAngle));
1337
1369
  labelBox = label.getBBox();
1338
- if ((!(prevLabelMargin != null) || prevLabelMargin >= labelBox.x + labelBox.width) && labelBox.x >= 0 && (labelBox.x + labelBox.width) < this.el.width()) {
1370
+ label.transform("t0," + (labelBox.height / 2) + "...");
1371
+ if (this.options.xLabelAngle !== 0) {
1372
+ offset = -0.5 * textBox.width * Math.cos(this.options.xLabelAngle * Math.PI / 180.0);
1373
+ label.transform("t" + offset + ",0...");
1374
+ }
1375
+ if ((!(prevLabelMargin != null) || prevLabelMargin >= labelBox.x + labelBox.width || (prevAngleMargin != null) && prevAngleMargin >= labelBox.x) && labelBox.x >= 0 && (labelBox.x + labelBox.width) < this.el.width()) {
1376
+ if (this.options.xLabelAngle !== 0) {
1377
+ margin = 1.25 * this.options.gridTextSize / Math.sin(this.options.xLabelAngle * Math.PI / 180.0);
1378
+ prevAngleMargin = labelBox.x - margin;
1379
+ }
1339
1380
  _results.push(prevLabelMargin = labelBox.x - this.options.xLabelMargin);
1340
1381
  } else {
1341
1382
  _results.push(label.remove());
@@ -1433,7 +1474,7 @@
1433
1474
  };
1434
1475
 
1435
1476
  Bar.prototype.onHoverOut = function() {
1436
- if (this.options.hideHover === 'auto') {
1477
+ if (this.options.hideHover !== false) {
1437
1478
  return this.hover.hide();
1438
1479
  }
1439
1480
  };
@@ -1456,7 +1497,7 @@
1456
1497
 
1457
1498
  Bar.prototype.drawXAxisLabel = function(xPos, yPos, text) {
1458
1499
  var label;
1459
- return label = this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('fill', this.options.gridTextColor);
1500
+ return label = this.raphael.text(xPos, yPos, text).attr('font-size', this.options.gridTextSize).attr('font-family', this.options.gridTextFamily).attr('font-weight', this.options.gridTextWeight).attr('fill', this.options.gridTextColor);
1460
1501
  };
1461
1502
 
1462
1503
  Bar.prototype.drawBar = function(xPos, yPos, width, height, barColor) {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: morrisjs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2.1
4
+ version: 0.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - beanie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-06 00:00:00.000000000 Z
11
+ date: 2013-05-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -41,10 +41,10 @@ files:
41
41
  - lib/morrisjs-rails.rb
42
42
  - vendor/assets/javascripts/morris.js
43
43
  - vendor/assets/stylesheets/morris.css
44
- - vendor/assets/stylesheets/untitled
45
44
  - README.md
46
45
  homepage: https://github.com/beanieboi/morrisjs-rails
47
- licenses: []
46
+ licenses:
47
+ - MIT
48
48
  metadata: {}
49
49
  post_install_message:
50
50
  rdoc_options: []
@@ -62,8 +62,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
62
62
  version: '0'
63
63
  requirements: []
64
64
  rubyforge_project:
65
- rubygems_version: 2.0.0
65
+ rubygems_version: 2.0.2
66
66
  signing_key:
67
67
  specification_version: 4
68
68
  summary: morris.js for the Rails Asset Pipeline
69
69
  test_files: []
70
+ has_rdoc:
@@ -1,14 +0,0 @@
1
- path = File.join(Rails.root, 'config', 'action_mailer.yml')
2
- options = YAML.load_file(path)[Rails.env]
3
-
4
- ActionMailer::Base.delivery_method = Rails.env.test? ? :test : :smtp
5
-
6
- ActionMailer::Base.smtp_settings = {
7
- :host => options['host'],
8
- :address => options['address'],
9
- :port => options['port'],
10
- :domain => options['domain'],
11
- :user_name => options['user_name'],
12
- :password => options['password'],
13
- :authentication => options['authentication']
14
- }