Sha256: 6f86524ad46066c730fcecf4e4933ba85cabc3eb924fbaa4ebce3c4e01c7d3c3

Contents?: true

Size: 1.9 KB

Versions: 5

Compression:

Stored size: 1.9 KB

Contents

(function() {
	$(function() {
		var originalEq;
		$.b = function(name) {
			arguments[0] = '.' + name;
			return $.apply(null, arguments);
		};
		originalEq = $.fn.eq;
		return $.fn.extend({
			destroyBlocks: function() {
				return this.find($$.bem_class_selector).getBlocks().each(function() {
					return this.destroy();
				});
			},
			isElem: function() {
				if (this.e_name) {
					return true;
				}
				return false;
			},
			addMod: function(name, value) {
				if (this.isElem()) {
					return this.addClass($$.elementModClass(this.b_name, this.e_name, name, value));
				} else {
					return this.addClass($$.blockModClass(this.b_name, name, value));
				}
			},
			hasMod: function(name, value) {
				if (this.isElem()) {
					return this.hasClass($$.elementModClass(this.b_name, this.e_name, name, value));
				} else {
					return this.hasClass($$.blockModClass(this.b_name, name, value));
				}
			},
			toggleMod: function(mod, value) {
				if (this.hasMod(mod, value)) {
					return this.delMod(mod, value);
				} else {
					return this.addMod(mod, value);
				}
			},
			delMod: function(name, value) {
				if (this.isElem()) {
					return this.removeClass($$.elementModClass(this.b_name, this.e_name, name, value));
				} else {
					return this.removeClass($$.blockModClass(this.b_name, name, value));
				}
			},
			asBlock: function(name, o) {
				this.addClass("" + name);
				return $$.getBlock(this, name, o);
			},
			bemParams: function() {
				var allParams;
				allParams = this.data($$.bemDataKey);
				if (this.isElem()) {
					return allParams[$$.elementClass(this.b_name, this.e_name)];
				} else {
					return console.log('Error, only for elements. Use initBlock for blocks.');
				}
			},
			eq: function() {
				var collection;
				collection = originalEq.apply(this, arguments);
				collection.b_name = this.b_name;
				collection.e_name = this.e_name;
				return collection;
			}
		});
	});

}).call(this);

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rails_blocks-0.9.0.beta.5 app/assets/javascripts/jquery.bem_exts.js
rails_blocks-0.9.0.beta.4 app/assets/javascripts/jquery.bem_exts.js
rails_blocks-0.9.0.beta.3 app/assets/javascripts/jquery.bem_exts.js
rails_blocks-0.9.0.beta.2 app/assets/javascripts/jquery.bem_exts.js
rails_blocks-0.9.0.beta.1 app/assets/javascripts/jquery.bem_exts.js