diff --git a/CHANGELOG.md b/CHANGELOG.md
index 637b9aa..1f05e6a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,11 @@
+
+### v0.3.1 (2013-08-04)
+
+
+#### Features
+
+* **app:** expose scheduleMasonry(Once) methods ([0fad6552](http://github.com/passy/angular-masonry/commit/0fad65527af6f1dd11ebc2b3bb2deb03ebaef34c))
+
## v0.3.0 (2013-08-04)
diff --git a/angular-masonry.js b/angular-masonry.js
index 920fe46..8137ca5 100644
--- a/angular-masonry.js
+++ b/angular-masonry.js
@@ -1,5 +1,5 @@
/*!
- * angular-masonry 0.3.0
+ * angular-masonry 0.3.1
* Pascal Hartig, weluse GmbH, http://weluse.de/
* License: MIT
*/
@@ -11,22 +11,23 @@
var bricks = {};
var schedule = [];
var destroyed = false;
+ var self = this;
var timeout = null;
- function scheduleMasonryOnce() {
+ this.scheduleMasonryOnce = function scheduleMasonryOnce() {
var args = arguments;
var found = schedule.filter(function (item) {
return item[0] === args[0];
}).length > 0;
if (!found) {
- scheduleMasonry.apply(null, arguments);
+ this.scheduleMasonry.apply(null, arguments);
}
}
// Make sure it's only executed once within a reasonable time-frame in
// case multiple elements are removed or added at once.
- function scheduleMasonry() {
+ this.scheduleMasonry = function scheduleMasonry() {
if (timeout) {
$timeout.cancel(timeout);
}
@@ -68,7 +69,7 @@
// Keep track of added elements.
bricks[id] = true;
$element.masonry('appended', element, true);
- scheduleMasonryOnce('layout');
+ self.scheduleMasonryOnce('layout');
}
}
@@ -82,7 +83,7 @@
delete bricks[id];
$element.masonry('remove', element);
- scheduleMasonryOnce('layout');
+ this.scheduleMasonryOnce('layout');
};
this.destroy = function destroy() {
diff --git a/angular-masonry.min.js b/angular-masonry.min.js
index 947c4c0..5412e80 100644
--- a/angular-masonry.min.js
+++ b/angular-masonry.min.js
@@ -1,6 +1,6 @@
/*!
- * angular-masonry 0.3.0
+ * angular-masonry 0.3.1
* Pascal Hartig, weluse GmbH, http://weluse.de/
* License: MIT
*/
-!function(){"use strict";angular.module("wu.masonry",[]).controller("MasonryCtrl",function(a,b,c){function d(){var a=arguments,b=h.filter(function(b){return b[0]===a[0]}).length>0;b||e.apply(null,arguments)}function e(){j&&c.cancel(j),h.push([].slice.call(arguments)),j=c(function(){i||(h.forEach(function(a){b.masonry.apply(b,a)}),h=[])},30)}function f(a){a.addClass("loaded")}var g={},h=[],i=!1,j=null;this.appendBrick=function(a,c){function e(){0===Object.keys(g).length&&b.masonry("resize"),void 0===g[c]&&(f(a),g[c]=!0,b.masonry("appended",a,!0),d("layout"))}i||a.imagesLoaded(e)},this.removeBrick=function(a,c){i||(delete g[a],b.masonry("remove",c),d("layout"))},this.destroy=function(){i=!0,b.data("masonry")&&b.masonry("destroy"),g=[]}}).directive("masonry",function(){return{restrict:"AE",controller:"MasonryCtrl",link:function(a,b,c,d){var e=a.$eval(c.options),f=angular.extend(e||{},{itemSelector:c.itemSelector||".masonry-brick",columnWidth:parseInt(c.columnWidth,10)});b.masonry(f),a.$on("$destroy",d.destroy)}}}).directive("masonryBrick",function(){return{restrict:"AC",require:"^masonry",link:function(a,b,c,d){var e=a.$id;d.appendBrick(b,e),b.on("$destroy",function(){d.removeBrick(e,b)})}}})}();
\ No newline at end of file
+!function(){"use strict";angular.module("wu.masonry",[]).controller("MasonryCtrl",function(a,b,c){function d(a){a.addClass("loaded")}var e={},f=[],g=!1,h=this,i=null;this.scheduleMasonryOnce=function(){var a=arguments,b=f.filter(function(b){return b[0]===a[0]}).length>0;b||this.scheduleMasonry.apply(null,arguments)},this.scheduleMasonry=function(){i&&c.cancel(i),f.push([].slice.call(arguments)),i=c(function(){g||(f.forEach(function(a){b.masonry.apply(b,a)}),f=[])},30)},this.appendBrick=function(a,c){function f(){0===Object.keys(e).length&&b.masonry("resize"),void 0===e[c]&&(d(a),e[c]=!0,b.masonry("appended",a,!0),h.scheduleMasonryOnce("layout"))}g||a.imagesLoaded(f)},this.removeBrick=function(a,c){g||(delete e[a],b.masonry("remove",c),this.scheduleMasonryOnce("layout"))},this.destroy=function(){g=!0,b.data("masonry")&&b.masonry("destroy"),e=[]}}).directive("masonry",function(){return{restrict:"AE",controller:"MasonryCtrl",link:function(a,b,c,d){var e=a.$eval(c.options),f=angular.extend(e||{},{itemSelector:c.itemSelector||".masonry-brick",columnWidth:parseInt(c.columnWidth,10)});b.masonry(f),a.$on("$destroy",d.destroy)}}}).directive("masonryBrick",function(){return{restrict:"AC",require:"^masonry",link:function(a,b,c,d){var e=a.$id;d.appendBrick(b,e),b.on("$destroy",function(){d.removeBrick(e,b)})}}})}();
\ No newline at end of file
diff --git a/bower.json b/bower.json
index 7061998..7438813 100644
--- a/bower.json
+++ b/bower.json
@@ -1,7 +1,7 @@
{
"name": "angular-masonry",
"description": "An AngularJS directive for Masonry.",
- "version": "0.3.0",
+ "version": "0.3.1",
"main": "./angular-masonry.js",
"ignore": [
"**/.*",
diff --git a/package.json b/package.json
index c8c7859..9f14a14 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "angular-masonry",
- "version": "0.3.0",
+ "version": "0.3.1",
"devDependencies": {
"grunt-contrib-uglify": "~0.2.2",
"grunt": "~0.4.1",