switchery-rails 0.1.0 → 0.8.0

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: 08e744c4b7d4f10a31bcad0bf39e08addde8a84e
4
- data.tar.gz: 9d29c526d5cceb4e2fb9fc25df43d43d005b81e2
3
+ metadata.gz: 67fef65691b2777c85b1264bbbe619f21a943311
4
+ data.tar.gz: b7fd5512ba99d5d581fac9b1762685082ce1a043
5
5
  SHA512:
6
- metadata.gz: e2cda3fcbd2062ae1dbff9520f179a62620c1589b6f1b66015ba83229c79853b6441dcc1d711396a7fa344d893dd826316bedeaf67144df9e64168f0be51214e
7
- data.tar.gz: 55c1bb340bd4a2583db26c607945d8e87bd03a8da1be11e7853cf5a3894cc021d57d86b76826b451e9fac3780acfa948409961590d6acbd1d76eecb6aa890701
6
+ metadata.gz: ddf413a66709204db4aac7fc5a68b49a0fb8cef7de69cb2bf42afc59e736585949e41a975d3be13da8011437649652ad28d61d0a58026b1805abf15e10a7b6b0
7
+ data.tar.gz: b04a4bb9838674e3e22a9f79d351372423d4eaea1f48b50c7e0613112121fcc27b44572a0229a9bbdaffb23dcb331329275213d310f7fb58a41421ae0d7495b7
@@ -0,0 +1,53 @@
1
+ # Switchery-rails gem Dockerfile
2
+ #
3
+ # How to use it
4
+ # =============
5
+ #
6
+ # $ sudo docker build -t zedtux/switchery-rails .
7
+ # $ sudo docker run -it zedtux/switchery-rails
8
+ # rake build # Build switchery-rails-0.1.0.gem into the pkg directory
9
+ # rake install # Build and install switchery-rails-0.1.0.gem into system gems
10
+ # rake install:local # Build and install switchery-rails-0.1.0.gem into system gems without network access
11
+ # rake release # Create tag v0.1.0 and build and push switchery-rails-0.1.0.gem to Rubygems
12
+ # rake update_switchery # Update the Switchery Javascript and CSS files
13
+ #
14
+ # Update the Switchery library
15
+ # ----------------------------
16
+ #
17
+ # Update the file `lib/switchery/rails/version.rb` in order to set the Switchery version to download then:
18
+ #
19
+ # $ sudo docker run --rm -v `pwd`:/gem/ -it zedtux/switchery-rails rake update_switchery
20
+ # Downlading Switchery 0.8.0 ...
21
+ # Done!
22
+ #
23
+
24
+ # ~~~~ Image base ~~~~
25
+ # Base image with the latest Ruby only
26
+ FROM litaio/ruby:2.2.2
27
+ MAINTAINER Guillaume Hain zedtux@zedroot.org
28
+
29
+
30
+ # ~~~~ Set up the environment ~~~~
31
+ ENV DEBIAN_FRONTEND noninteractive
32
+
33
+ # ~~~~ OS Maintenance ~~~~
34
+ RUN apt-get update && apt-get install -y git
35
+
36
+ # ~~~~ Rails Preparation ~~~~
37
+ # Rubygems and Bundler
38
+ RUN touch ~/.gemrc && \
39
+ echo "gem: --no-ri --no-rdoc" >> ~/.gemrc && \
40
+ gem install rubygems-update && \
41
+ update_rubygems && \
42
+ gem install bundler && \
43
+ mkdir -p /gem/
44
+
45
+ WORKDIR /gem/
46
+ ADD . /gem/
47
+ RUN bundle install
48
+
49
+ # Import the gem source code
50
+ VOLUME .:/gem/
51
+
52
+ ENTRYPOINT ["bundle", "exec"]
53
+ CMD ["rake", "-T"]
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # switchery-rails
2
2
 
3
- Switchery for Rails.
3
+ [Switchery](https://github.com/abpetkov/switchery) for Rails.
4
4
 
5
5
  ## Installation
6
6
 
data/Rakefile CHANGED
@@ -14,6 +14,6 @@ task :update_switchery do
14
14
 
15
15
  FileUtils.mkdir_p('vendor/assets/javascripts')
16
16
  FileUtils.mkdir_p('vendor/assets/stylesheets')
17
- download_switchery(Switchery::Rails::SWITCHERY_VERSION)
17
+ download_switchery(Switchery::Rails::VERSION)
18
18
  puts "\e[32mDone!\e[0m"
19
19
  end
@@ -1,6 +1,5 @@
1
1
  module Switchery
2
2
  module Rails
3
- VERSION = '0.1.0'
4
- SWITCHERY_VERSION = '0.7.0'
3
+ VERSION = '0.8.0'
5
4
  end
6
5
  end
@@ -98,7 +98,7 @@ require.latest = function (name, returnPath) {
98
98
  }
99
99
  // if the build contains more than one branch of the same module
100
100
  // you should not use this funciton
101
- var module = otherCandidates.pop().name;
101
+ var module = otherCandidates.sort(function(a, b) {return a.name > b.name})[0].name;
102
102
  if (returnPath === true) {
103
103
  return module;
104
104
  }
@@ -1195,15 +1195,377 @@ ClassList.prototype.contains = function(name){
1195
1195
 
1196
1196
  });
1197
1197
 
1198
+ require.register("component~event@0.1.4", function (exports, module) {
1199
+ var bind = window.addEventListener ? 'addEventListener' : 'attachEvent',
1200
+ unbind = window.removeEventListener ? 'removeEventListener' : 'detachEvent',
1201
+ prefix = bind !== 'addEventListener' ? 'on' : '';
1202
+
1203
+ /**
1204
+ * Bind `el` event `type` to `fn`.
1205
+ *
1206
+ * @param {Element} el
1207
+ * @param {String} type
1208
+ * @param {Function} fn
1209
+ * @param {Boolean} capture
1210
+ * @return {Function}
1211
+ * @api public
1212
+ */
1213
+
1214
+ exports.bind = function(el, type, fn, capture){
1215
+ el[bind](prefix + type, fn, capture || false);
1216
+ return fn;
1217
+ };
1218
+
1219
+ /**
1220
+ * Unbind `el` event `type`'s callback `fn`.
1221
+ *
1222
+ * @param {Element} el
1223
+ * @param {String} type
1224
+ * @param {Function} fn
1225
+ * @param {Boolean} capture
1226
+ * @return {Function}
1227
+ * @api public
1228
+ */
1229
+
1230
+ exports.unbind = function(el, type, fn, capture){
1231
+ el[unbind](prefix + type, fn, capture || false);
1232
+ return fn;
1233
+ };
1234
+ });
1235
+
1236
+ require.register("component~query@0.0.3", function (exports, module) {
1237
+ function one(selector, el) {
1238
+ return el.querySelector(selector);
1239
+ }
1240
+
1241
+ exports = module.exports = function(selector, el){
1242
+ el = el || document;
1243
+ return one(selector, el);
1244
+ };
1245
+
1246
+ exports.all = function(selector, el){
1247
+ el = el || document;
1248
+ return el.querySelectorAll(selector);
1249
+ };
1250
+
1251
+ exports.engine = function(obj){
1252
+ if (!obj.one) throw new Error('.one callback required');
1253
+ if (!obj.all) throw new Error('.all callback required');
1254
+ one = obj.one;
1255
+ exports.all = obj.all;
1256
+ return exports;
1257
+ };
1258
+
1259
+ });
1260
+
1261
+ require.register("component~matches-selector@0.1.5", function (exports, module) {
1262
+ /**
1263
+ * Module dependencies.
1264
+ */
1265
+
1266
+ var query = require('component~query@0.0.3');
1267
+
1268
+ /**
1269
+ * Element prototype.
1270
+ */
1271
+
1272
+ var proto = Element.prototype;
1273
+
1274
+ /**
1275
+ * Vendor function.
1276
+ */
1277
+
1278
+ var vendor = proto.matches
1279
+ || proto.webkitMatchesSelector
1280
+ || proto.mozMatchesSelector
1281
+ || proto.msMatchesSelector
1282
+ || proto.oMatchesSelector;
1283
+
1284
+ /**
1285
+ * Expose `match()`.
1286
+ */
1287
+
1288
+ module.exports = match;
1289
+
1290
+ /**
1291
+ * Match `el` to `selector`.
1292
+ *
1293
+ * @param {Element} el
1294
+ * @param {String} selector
1295
+ * @return {Boolean}
1296
+ * @api public
1297
+ */
1298
+
1299
+ function match(el, selector) {
1300
+ if (!el || el.nodeType !== 1) return false;
1301
+ if (vendor) return vendor.call(el, selector);
1302
+ var nodes = query.all(selector, el.parentNode);
1303
+ for (var i = 0; i < nodes.length; ++i) {
1304
+ if (nodes[i] == el) return true;
1305
+ }
1306
+ return false;
1307
+ }
1308
+
1309
+ });
1310
+
1311
+ require.register("component~closest@0.1.4", function (exports, module) {
1312
+ var matches = require('component~matches-selector@0.1.5')
1313
+
1314
+ module.exports = function (element, selector, checkYoSelf, root) {
1315
+ element = checkYoSelf ? {parentNode: element} : element
1316
+
1317
+ root = root || document
1318
+
1319
+ // Make sure `element !== document` and `element != null`
1320
+ // otherwise we get an illegal invocation
1321
+ while ((element = element.parentNode) && element !== document) {
1322
+ if (matches(element, selector))
1323
+ return element
1324
+ // After `matches` on the edge case that
1325
+ // the selector matches the root
1326
+ // (when the root is not the document)
1327
+ if (element === root)
1328
+ return
1329
+ }
1330
+ }
1331
+
1332
+ });
1333
+
1334
+ require.register("component~delegate@0.2.3", function (exports, module) {
1335
+ /**
1336
+ * Module dependencies.
1337
+ */
1338
+
1339
+ var closest = require('component~closest@0.1.4')
1340
+ , event = require('component~event@0.1.4');
1341
+
1342
+ /**
1343
+ * Delegate event `type` to `selector`
1344
+ * and invoke `fn(e)`. A callback function
1345
+ * is returned which may be passed to `.unbind()`.
1346
+ *
1347
+ * @param {Element} el
1348
+ * @param {String} selector
1349
+ * @param {String} type
1350
+ * @param {Function} fn
1351
+ * @param {Boolean} capture
1352
+ * @return {Function}
1353
+ * @api public
1354
+ */
1355
+
1356
+ exports.bind = function(el, selector, type, fn, capture){
1357
+ return event.bind(el, type, function(e){
1358
+ var target = e.target || e.srcElement;
1359
+ e.delegateTarget = closest(target, selector, true, el);
1360
+ if (e.delegateTarget) fn.call(el, e);
1361
+ }, capture);
1362
+ };
1363
+
1364
+ /**
1365
+ * Unbind event `type`'s callback `fn`.
1366
+ *
1367
+ * @param {Element} el
1368
+ * @param {String} type
1369
+ * @param {Function} fn
1370
+ * @param {Boolean} capture
1371
+ * @api public
1372
+ */
1373
+
1374
+ exports.unbind = function(el, type, fn, capture){
1375
+ event.unbind(el, type, fn, capture);
1376
+ };
1377
+
1378
+ });
1379
+
1380
+ require.register("component~events@1.0.9", function (exports, module) {
1381
+
1382
+ /**
1383
+ * Module dependencies.
1384
+ */
1385
+
1386
+ var events = require('component~event@0.1.4');
1387
+ var delegate = require('component~delegate@0.2.3');
1388
+
1389
+ /**
1390
+ * Expose `Events`.
1391
+ */
1392
+
1393
+ module.exports = Events;
1394
+
1395
+ /**
1396
+ * Initialize an `Events` with the given
1397
+ * `el` object which events will be bound to,
1398
+ * and the `obj` which will receive method calls.
1399
+ *
1400
+ * @param {Object} el
1401
+ * @param {Object} obj
1402
+ * @api public
1403
+ */
1404
+
1405
+ function Events(el, obj) {
1406
+ if (!(this instanceof Events)) return new Events(el, obj);
1407
+ if (!el) throw new Error('element required');
1408
+ if (!obj) throw new Error('object required');
1409
+ this.el = el;
1410
+ this.obj = obj;
1411
+ this._events = {};
1412
+ }
1413
+
1414
+ /**
1415
+ * Subscription helper.
1416
+ */
1417
+
1418
+ Events.prototype.sub = function(event, method, cb){
1419
+ this._events[event] = this._events[event] || {};
1420
+ this._events[event][method] = cb;
1421
+ };
1422
+
1423
+ /**
1424
+ * Bind to `event` with optional `method` name.
1425
+ * When `method` is undefined it becomes `event`
1426
+ * with the "on" prefix.
1427
+ *
1428
+ * Examples:
1429
+ *
1430
+ * Direct event handling:
1431
+ *
1432
+ * events.bind('click') // implies "onclick"
1433
+ * events.bind('click', 'remove')
1434
+ * events.bind('click', 'sort', 'asc')
1435
+ *
1436
+ * Delegated event handling:
1437
+ *
1438
+ * events.bind('click li > a')
1439
+ * events.bind('click li > a', 'remove')
1440
+ * events.bind('click a.sort-ascending', 'sort', 'asc')
1441
+ * events.bind('click a.sort-descending', 'sort', 'desc')
1442
+ *
1443
+ * @param {String} event
1444
+ * @param {String|function} [method]
1445
+ * @return {Function} callback
1446
+ * @api public
1447
+ */
1448
+
1449
+ Events.prototype.bind = function(event, method){
1450
+ var e = parse(event);
1451
+ var el = this.el;
1452
+ var obj = this.obj;
1453
+ var name = e.name;
1454
+ var method = method || 'on' + name;
1455
+ var args = [].slice.call(arguments, 2);
1456
+
1457
+ // callback
1458
+ function cb(){
1459
+ var a = [].slice.call(arguments).concat(args);
1460
+ obj[method].apply(obj, a);
1461
+ }
1462
+
1463
+ // bind
1464
+ if (e.selector) {
1465
+ cb = delegate.bind(el, e.selector, name, cb);
1466
+ } else {
1467
+ events.bind(el, name, cb);
1468
+ }
1469
+
1470
+ // subscription for unbinding
1471
+ this.sub(name, method, cb);
1472
+
1473
+ return cb;
1474
+ };
1475
+
1476
+ /**
1477
+ * Unbind a single binding, all bindings for `event`,
1478
+ * or all bindings within the manager.
1479
+ *
1480
+ * Examples:
1481
+ *
1482
+ * Unbind direct handlers:
1483
+ *
1484
+ * events.unbind('click', 'remove')
1485
+ * events.unbind('click')
1486
+ * events.unbind()
1487
+ *
1488
+ * Unbind delegate handlers:
1489
+ *
1490
+ * events.unbind('click', 'remove')
1491
+ * events.unbind('click')
1492
+ * events.unbind()
1493
+ *
1494
+ * @param {String|Function} [event]
1495
+ * @param {String|Function} [method]
1496
+ * @api public
1497
+ */
1498
+
1499
+ Events.prototype.unbind = function(event, method){
1500
+ if (0 == arguments.length) return this.unbindAll();
1501
+ if (1 == arguments.length) return this.unbindAllOf(event);
1502
+
1503
+ // no bindings for this event
1504
+ var bindings = this._events[event];
1505
+ if (!bindings) return;
1506
+
1507
+ // no bindings for this method
1508
+ var cb = bindings[method];
1509
+ if (!cb) return;
1510
+
1511
+ events.unbind(this.el, event, cb);
1512
+ };
1513
+
1514
+ /**
1515
+ * Unbind all events.
1516
+ *
1517
+ * @api private
1518
+ */
1519
+
1520
+ Events.prototype.unbindAll = function(){
1521
+ for (var event in this._events) {
1522
+ this.unbindAllOf(event);
1523
+ }
1524
+ };
1525
+
1526
+ /**
1527
+ * Unbind all events for `event`.
1528
+ *
1529
+ * @param {String} event
1530
+ * @api private
1531
+ */
1532
+
1533
+ Events.prototype.unbindAllOf = function(event){
1534
+ var bindings = this._events[event];
1535
+ if (!bindings) return;
1536
+
1537
+ for (var method in bindings) {
1538
+ this.unbind(event, method);
1539
+ }
1540
+ };
1541
+
1542
+ /**
1543
+ * Parse `event`.
1544
+ *
1545
+ * @param {String} event
1546
+ * @return {Object}
1547
+ * @api private
1548
+ */
1549
+
1550
+ function parse(event) {
1551
+ var parts = event.split(/ +/);
1552
+ return {
1553
+ name: parts.shift(),
1554
+ selector: parts.join(' ')
1555
+ }
1556
+ }
1557
+
1558
+ });
1559
+
1198
1560
  require.register("switchery", function (exports, module) {
1199
1561
  /**
1200
- * Switchery 0.7.0
1562
+ * Switchery 0.8.0
1201
1563
  * http://abpetkov.github.io/switchery/
1202
1564
  *
1203
1565
  * Authored by Alexander Petkov
1204
1566
  * https://github.com/abpetkov
1205
1567
  *
1206
- * Copyright 2013-2014, Alexander Petkov
1568
+ * Copyright 2013-2015, Alexander Petkov
1207
1569
  * License: The MIT License (MIT)
1208
1570
  * http://opensource.org/licenses/MIT
1209
1571
  *
@@ -1215,7 +1577,8 @@ require.register("switchery", function (exports, module) {
1215
1577
 
1216
1578
  var transitionize = require('abpetkov~transitionize@0.0.3')
1217
1579
  , fastclick = require('ftlabs~fastclick@v0.6.11')
1218
- , classes = require('component~classes@1.2.1');
1580
+ , classes = require('component~classes@1.2.1')
1581
+ , events = require('component~events@1.0.9');
1219
1582
 
1220
1583
  /**
1221
1584
  * Expose `Switchery`.
@@ -1230,14 +1593,15 @@ module.exports = Switchery;
1230
1593
  */
1231
1594
 
1232
1595
  var defaults = {
1233
- color : '#64bd63'
1234
- , secondaryColor : '#dfdfdf'
1235
- , jackColor : '#fff'
1236
- , className : 'switchery'
1237
- , disabled : false
1238
- , disabledOpacity: 0.5
1239
- , speed : '0.4s'
1240
- , size : 'default'
1596
+ color : '#64bd63'
1597
+ , secondaryColor : '#dfdfdf'
1598
+ , jackColor : '#fff'
1599
+ , jackSecondaryColor: null
1600
+ , className : 'switchery'
1601
+ , disabled : false
1602
+ , disabledOpacity : 0.5
1603
+ , speed : '0.4s'
1604
+ , size : 'default'
1241
1605
  };
1242
1606
 
1243
1607
  /**
@@ -1261,6 +1625,7 @@ function Switchery(element, options) {
1261
1625
  }
1262
1626
 
1263
1627
  if (this.element != null && this.element.type == 'checkbox') this.init();
1628
+ if (this.isDisabled() === true) this.disable();
1264
1629
  }
1265
1630
 
1266
1631
  /**
@@ -1296,6 +1661,7 @@ Switchery.prototype.create = function() {
1296
1661
  this.jack = document.createElement('small');
1297
1662
  this.switcher.appendChild(this.jack);
1298
1663
  this.switcher.className = this.options.className;
1664
+ this.events = events(this.switcher, this);
1299
1665
 
1300
1666
  return this.switcher;
1301
1667
  };
@@ -1312,28 +1678,6 @@ Switchery.prototype.insertAfter = function(reference, target) {
1312
1678
  reference.parentNode.insertBefore(target, reference.nextSibling);
1313
1679
  };
1314
1680
 
1315
- /**
1316
- * See if input is checked.
1317
- *
1318
- * @returns {Boolean}
1319
- * @api private
1320
- */
1321
-
1322
- Switchery.prototype.isChecked = function() {
1323
- return this.element.checked;
1324
- };
1325
-
1326
- /**
1327
- * See if switcher should be disabled.
1328
- *
1329
- * @returns {Boolean}
1330
- * @api private
1331
- */
1332
-
1333
- Switchery.prototype.isDisabled = function() {
1334
- return this.options.disabled || this.element.disabled || this.element.readOnly;
1335
- };
1336
-
1337
1681
  /**
1338
1682
  * Set switch jack proper position.
1339
1683
  *
@@ -1363,7 +1707,7 @@ Switchery.prototype.setPosition = function (clicked) {
1363
1707
  this.switcher.style.boxShadow = 'inset 0 0 0 0 ' + this.options.secondaryColor;
1364
1708
  this.switcher.style.borderColor = this.options.secondaryColor;
1365
1709
  this.switcher.style.backgroundColor = (this.options.secondaryColor !== defaults.secondaryColor) ? this.options.secondaryColor : '#fff';
1366
- this.jack.style.backgroundColor = this.options.jackColor;
1710
+ this.jack.style.backgroundColor = (this.options.jackSecondaryColor !== this.options.jackColor) ? this.options.jackSecondaryColor : this.options.jackColor;
1367
1711
  this.setSpeed();
1368
1712
  }
1369
1713
  };
@@ -1376,7 +1720,10 @@ Switchery.prototype.setPosition = function (clicked) {
1376
1720
 
1377
1721
  Switchery.prototype.setSpeed = function() {
1378
1722
  var switcherProp = {}
1379
- , jackProp = { 'left': this.options.speed.replace(/[a-z]/, '') / 2 + 's' };
1723
+ , jackProp = {
1724
+ 'background-color': this.options.speed
1725
+ , 'left': this.options.speed.replace(/[a-z]/, '') / 2 + 's'
1726
+ };
1380
1727
 
1381
1728
  if (this.isChecked()) {
1382
1729
  switcherProp = {
@@ -1480,29 +1827,24 @@ Switchery.prototype.handleChange = function() {
1480
1827
  */
1481
1828
 
1482
1829
  Switchery.prototype.handleClick = function() {
1483
- var self = this
1484
- , switcher = this.switcher
1485
- , parent = self.element.parentNode.tagName.toLowerCase()
1486
- , labelParent = (parent === 'label') ? false : true;
1830
+ var switcher = this.switcher;
1487
1831
 
1488
- if (this.isDisabled() === false) {
1489
- fastclick(switcher);
1832
+ fastclick(switcher);
1833
+ this.events.bind('click', 'bindClick');
1834
+ };
1490
1835
 
1491
- if (switcher.addEventListener) {
1492
- switcher.addEventListener('click', function(e) {
1493
- self.setPosition(labelParent);
1494
- self.handleOnchange(self.element.checked);
1495
- });
1496
- } else {
1497
- switcher.attachEvent('onclick', function() {
1498
- self.setPosition(labelParent);
1499
- self.handleOnchange(self.element.checked);
1500
- });
1501
- }
1502
- } else {
1503
- this.element.disabled = true;
1504
- this.switcher.style.opacity = this.options.disabledOpacity;
1505
- }
1836
+ /**
1837
+ * Attach all methods that need to happen on switcher click.
1838
+ *
1839
+ * @api private
1840
+ */
1841
+
1842
+ Switchery.prototype.bindClick = function() {
1843
+ var parent = this.element.parentNode.tagName.toLowerCase()
1844
+ , labelParent = (parent === 'label') ? false : true;
1845
+
1846
+ this.setPosition(labelParent);
1847
+ this.handleOnchange(this.element.checked);
1506
1848
  };
1507
1849
 
1508
1850
  /**
@@ -1541,6 +1883,66 @@ Switchery.prototype.init = function() {
1541
1883
  this.handleClick();
1542
1884
  };
1543
1885
 
1886
+ /**
1887
+ * See if input is checked.
1888
+ *
1889
+ * @returns {Boolean}
1890
+ * @api public
1891
+ */
1892
+
1893
+ Switchery.prototype.isChecked = function() {
1894
+ return this.element.checked;
1895
+ };
1896
+
1897
+ /**
1898
+ * See if switcher should be disabled.
1899
+ *
1900
+ * @returns {Boolean}
1901
+ * @api public
1902
+ */
1903
+
1904
+ Switchery.prototype.isDisabled = function() {
1905
+ return this.options.disabled || this.element.disabled || this.element.readOnly;
1906
+ };
1907
+
1908
+ /**
1909
+ * Destroy all event handlers attached to the switch.
1910
+ *
1911
+ * @api public
1912
+ */
1913
+
1914
+ Switchery.prototype.destroy = function() {
1915
+ this.events.unbind();
1916
+ };
1917
+
1918
+ /**
1919
+ * Enable disabled switch element.
1920
+ *
1921
+ * @api public
1922
+ */
1923
+
1924
+ Switchery.prototype.enable = function() {
1925
+ if (this.options.disabled) this.options.disabled = false;
1926
+ if (this.element.disabled) this.element.disabled = false;
1927
+ if (this.element.readOnly) this.element.readOnly = false;
1928
+ this.switcher.style.opacity = 1;
1929
+ this.events.bind('click', 'bindClick');
1930
+ };
1931
+
1932
+ /**
1933
+ * Disable switch element.
1934
+ *
1935
+ * @api public
1936
+ */
1937
+
1938
+ Switchery.prototype.disable = function() {
1939
+ if (this.options.disabled) this.options.disabled = true;
1940
+ if (this.element.disabled) this.element.disabled = true;
1941
+ if (this.element.readOnly) this.element.readOnly = true;
1942
+ this.switcher.style.opacity = this.options.disabledOpacity;
1943
+ this.destroy();
1944
+ };
1945
+
1544
1946
  });
1545
1947
 
1546
1948
  if (typeof exports == "object") {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: switchery-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Guillaume Hain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-18 00:00:00.000000000 Z
11
+ date: 2015-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -63,6 +63,7 @@ files:
63
63
  - ".ruby-gemset"
64
64
  - ".ruby-version"
65
65
  - CHANGELOG.md
66
+ - Dockerfile
66
67
  - Gemfile
67
68
  - LICENSE
68
69
  - README.md
@@ -94,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
95
  version: '0'
95
96
  requirements: []
96
97
  rubyforge_project:
97
- rubygems_version: 2.4.5
98
+ rubygems_version: 2.4.6
98
99
  signing_key:
99
100
  specification_version: 4
100
101
  summary: Use Switchery for Rails