messengerjs-rails 1.3.3 → 1.3.5

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: 7374d68cabdcace25d776f6365c5d32fc55aded4
4
- data.tar.gz: ce917a8985a695c88f76c4bc41ba29ab2eef8186
3
+ metadata.gz: 04bd12c757670e4ecee78dcecb32750b8274152a
4
+ data.tar.gz: 4eec33693c6cdb281bb6f12d396c55c9095f531c
5
5
  SHA512:
6
- metadata.gz: eef311d7058a266cee1705bad5e1ca87967b23efc32f437d1396c8eaf5b2ad59938432f4a8e6e1b76c0eca64b2cb4870361e8f351e36ab04eff8588a0376a21d
7
- data.tar.gz: 1c75980f0c1622c40eb5ed15629e78c80efe15a9484a4f3957b57bc91268bbbf03c2ec3e6d1060726a544e38d40a549f4055aa7626f833037e3036e970f4c24e
6
+ metadata.gz: 2b530aaef624f6f144529bd7cb087f4731818f824e8bee18d1c7b279a86f86a4acc0f50482e0362b447285669dddbb939ee6514fea0443cb37a5e9fe99815f78
7
+ data.tar.gz: d1ccc82b59d5200a5d8fb213e40c7865273254aaf4556c5ef075c8adfd18d75d03dbb207d16859b97c29430ed315f0f8409fe7c31d1e3d79ccb1b35f3d86bd99
data/README.md CHANGED
@@ -26,7 +26,7 @@ messengerjs-rails is a Rails (3.1 and above) wrapper for [Messenger](http://gith
26
26
 
27
27
  Add the following to your gemfile:
28
28
 
29
- gem "messengerjs-rails", "~> 1.3.0"
29
+ gem "messengerjs-rails", "~> 1.3.5"
30
30
 
31
31
  Add the following directive to your application.coffee / application.js:
32
32
 
@@ -1,5 +1,5 @@
1
1
  module MessengerJS
2
2
  module Rails
3
- VERSION = "1.3.3"
3
+ VERSION = "1.3.5"
4
4
  end
5
5
  end
@@ -1,4 +1,4 @@
1
- /*! messenger 1.3.3 */
1
+ /*! messenger 1.3.5 */
2
2
  /*
3
3
  * This file begins the output concatenated into messenger.js
4
4
  *
@@ -993,23 +993,22 @@ window.Messenger.Events = (function() {
993
993
  }
994
994
  handlers = {};
995
995
  _.each(['error', 'success'], function(type) {
996
+ var originalHandler;
997
+ originalHandler = opts[type];
996
998
  return handlers[type] = function() {
997
- var data, defaultOpts, handlerResp, msgOpts, reason, resp, responseOpts, xhr, _base, _ref10, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
999
+ var data, defaultOpts, handlerResp, msgOpts, reason, resp, responseOpts, xhr, _ref3, _ref4, _ref5, _ref6, _ref7, _ref8, _ref9;
998
1000
  resp = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
999
- if ((_ref3 = opts[type]) != null ? _ref3._originalHandler : void 0) {
1000
- opts[type] = opts[type]._originalHandler;
1001
- }
1002
- _ref4 = _this._normalizeResponse.apply(_this, resp), reason = _ref4[0], data = _ref4[1], xhr = _ref4[2];
1001
+ _ref3 = _this._normalizeResponse.apply(_this, resp), reason = _ref3[0], data = _ref3[1], xhr = _ref3[2];
1003
1002
  if (type === 'success' && !(msg.errorCount != null) && m_opts.showSuccessWithoutError === false) {
1004
1003
  m_opts['successMessage'] = null;
1005
1004
  }
1006
1005
  if (type === 'error') {
1007
- if ((_ref5 = m_opts.errorCount) == null) {
1006
+ if ((_ref4 = m_opts.errorCount) == null) {
1008
1007
  m_opts.errorCount = 0;
1009
1008
  }
1010
1009
  m_opts.errorCount += 1;
1011
1010
  }
1012
- handlerResp = m_opts.returnsPromise ? resp[0] : typeof (_base = opts[type])._originalHandler === "function" ? _base._originalHandler.apply(_base, resp) : void 0;
1011
+ handlerResp = m_opts.returnsPromise ? resp[0] : typeof originalHandler === "function" ? originalHandler.apply(null, resp) : void 0;
1013
1012
  responseOpts = _this._getHandlerResponse(handlerResp);
1014
1013
  if (_.isString(responseOpts)) {
1015
1014
  responseOpts = {
@@ -1020,21 +1019,21 @@ window.Messenger.Events = (function() {
1020
1019
  msg.hide();
1021
1020
  return;
1022
1021
  }
1023
- if (type === 'error' && ((m_opts.ignoredErrorCodes != null) && (_ref6 = xhr != null ? xhr.status : void 0, __indexOf.call(m_opts.ignoredErrorCodes, _ref6) >= 0))) {
1022
+ if (type === 'error' && ((m_opts.ignoredErrorCodes != null) && (_ref5 = xhr != null ? xhr.status : void 0, __indexOf.call(m_opts.ignoredErrorCodes, _ref5) >= 0))) {
1024
1023
  msg.hide();
1025
1024
  return;
1026
1025
  }
1027
1026
  defaultOpts = {
1028
1027
  message: getMessageText(type, xhr),
1029
1028
  type: type,
1030
- events: (_ref7 = events[type]) != null ? _ref7 : {},
1029
+ events: (_ref6 = events[type]) != null ? _ref6 : {},
1031
1030
  hideOnNavigate: type === 'success'
1032
1031
  };
1033
1032
  msgOpts = $.extend({}, m_opts, defaultOpts, responseOpts);
1034
- if (typeof ((_ref8 = msgOpts.retry) != null ? _ref8.allow : void 0) === 'number') {
1033
+ if (typeof ((_ref7 = msgOpts.retry) != null ? _ref7.allow : void 0) === 'number') {
1035
1034
  msgOpts.retry.allow--;
1036
1035
  }
1037
- if (type === 'error' && (xhr != null ? xhr.status : void 0) >= 500 && ((_ref9 = msgOpts.retry) != null ? _ref9.allow : void 0)) {
1036
+ if (type === 'error' && (xhr != null ? xhr.status : void 0) >= 500 && ((_ref8 = msgOpts.retry) != null ? _ref8.allow : void 0)) {
1038
1037
  if (msgOpts.retry.delay == null) {
1039
1038
  if (msgOpts.errorCount < 4) {
1040
1039
  msgOpts.retry.delay = 10;
@@ -1043,7 +1042,7 @@ window.Messenger.Events = (function() {
1043
1042
  }
1044
1043
  }
1045
1044
  if (msgOpts.hideAfter) {
1046
- if ((_ref10 = msgOpts._hideAfter) == null) {
1045
+ if ((_ref9 = msgOpts._hideAfter) == null) {
1047
1046
  msgOpts._hideAfter = msgOpts.hideAfter;
1048
1047
  }
1049
1048
  msgOpts.hideAfter = msgOpts._hideAfter + msgOpts.retry.delay;
@@ -1087,7 +1086,6 @@ window.Messenger.Events = (function() {
1087
1086
  handler = handlers[type];
1088
1087
  old = opts[type];
1089
1088
  opts[type] = handler;
1090
- opts[type]._originalHandler = old;
1091
1089
  }
1092
1090
  }
1093
1091
  msg._actionInstance = m_opts.action.apply(m_opts, [opts].concat(__slice.call(args)));
@@ -0,0 +1,2 @@
1
+ /*! messenger 1.3.5 */
2
+ (function(){var e,t=window.Messenger;e=window.Messenger=function(){return e._call.apply(this,arguments)},window.Messenger.noConflict=function(){return window.Messenger=t,e}})(),window.Messenger._=function(){if(window._)return window._;var e=Array.prototype,t=Object.prototype,n=Function.prototype,s=(e.push,e.slice),r=(e.concat,t.toString);t.hasOwnProperty;var i=e.forEach,o=(e.map,e.reduce,e.reduceRight,e.filter),a=(e.every,e.some,e.indexOf,e.lastIndexOf,Array.isArray,Object.keys),l=n.bind,u={},c={},h=u.each=u.forEach=function(e,t,n){if(null!=e)if(i&&e.forEach===i)e.forEach(t,n);else if(e.length===+e.length){for(var s=0,r=e.length;r>s;s++)if(t.call(n,e[s],s,e)===c)return}else for(var o in e)if(u.has(e,o)&&t.call(n,e[o],o,e)===c)return};u.result=function(e,t){if(null==e)return null;var n=e[t];return u.isFunction(n)?n.call(e):n},u.once=function(e){var t,n=!1;return function(){return n?t:(n=!0,t=e.apply(this,arguments),e=null,t)}};var p=0;return u.uniqueId=function(e){var t=++p+"";return e?e+t:t},u.filter=u.select=function(e,t,n){var s=[];return null==e?s:o&&e.filter===o?e.filter(t,n):(h(e,function(e,r,i){t.call(n,e,r,i)&&(s[s.length]=e)}),s)},h(["Arguments","Function","String","Number","Date","RegExp"],function(e){u["is"+e]=function(t){return r.call(t)=="[object "+e+"]"}}),u.defaults=function(e){return h(s.call(arguments,1),function(t){if(t)for(var n in t)null==e[n]&&(e[n]=t[n])}),e},u.extend=function(e){return h(s.call(arguments,1),function(t){if(t)for(var n in t)e[n]=t[n]}),e},u.keys=a||function(e){if(e!==Object(e))throw new TypeError("Invalid object");var t=[];for(var n in e)u.has(e,n)&&(t[t.length]=n);return t},u.bind=function(e,t){if(e.bind===l&&l)return l.apply(e,s.call(arguments,1));var n=s.call(arguments,2);return function(){return e.apply(t,n.concat(s.call(arguments)))}},u.isObject=function(e){return e===Object(e)},u}(),window.Messenger.Events=function(){if(window.Backbone&&Backbone.Events)return Backbone.Events;var e=function(){var e=/\s+/,t=function(t,n,s,r){if(!s)return!0;if("object"==typeof s)for(var i in s)t[n].apply(t,[i,s[i]].concat(r));else{if(!e.test(s))return!0;for(var o=s.split(e),a=0,l=o.length;l>a;a++)t[n].apply(t,[o[a]].concat(r))}},n=function(e,t){var n,s=-1,r=e.length;switch(t.length){case 0:for(;r>++s;)(n=e[s]).callback.call(n.ctx);return;case 1:for(;r>++s;)(n=e[s]).callback.call(n.ctx,t[0]);return;case 2:for(;r>++s;)(n=e[s]).callback.call(n.ctx,t[0],t[1]);return;case 3:for(;r>++s;)(n=e[s]).callback.call(n.ctx,t[0],t[1],t[2]);return;default:for(;r>++s;)(n=e[s]).callback.apply(n.ctx,t)}},s={on:function(e,n,s){if(!t(this,"on",e,[n,s])||!n)return this;this._events||(this._events={});var r=this._events[e]||(this._events[e]=[]);return r.push({callback:n,context:s,ctx:s||this}),this},once:function(e,n,s){if(!t(this,"once",e,[n,s])||!n)return this;var r=this,i=_.once(function(){r.off(e,i),n.apply(this,arguments)});return i._callback=n,this.on(e,i,s),this},off:function(e,n,s){var r,i,o,a,l,u,c,h;if(!this._events||!t(this,"off",e,[n,s]))return this;if(!e&&!n&&!s)return this._events={},this;for(a=e?[e]:_.keys(this._events),l=0,u=a.length;u>l;l++)if(e=a[l],r=this._events[e]){if(o=[],n||s)for(c=0,h=r.length;h>c;c++)i=r[c],(n&&n!==i.callback&&n!==i.callback._callback||s&&s!==i.context)&&o.push(i);this._events[e]=o}return this},trigger:function(e){if(!this._events)return this;var s=Array.prototype.slice.call(arguments,1);if(!t(this,"trigger",e,s))return this;var r=this._events[e],i=this._events.all;return r&&n(r,s),i&&n(i,arguments),this},listenTo:function(e,t,n){var s=this._listeners||(this._listeners={}),r=e._listenerId||(e._listenerId=_.uniqueId("l"));return s[r]=e,e.on(t,"object"==typeof t?this:n,this),this},stopListening:function(e,t,n){var s=this._listeners;if(s){if(e)e.off(t,"object"==typeof t?this:n,this),t||n||delete s[e._listenerId];else{"object"==typeof t&&(n=this);for(var r in s)s[r].off(t,n,this);this._listeners={}}return this}}};return s.bind=s.on,s.unbind=s.off,s};return e()}(),function(){var e,t,n,s,r,i,o,a,l,u,c,h={}.hasOwnProperty,p=function(e,t){function n(){this.constructor=e}for(var s in t)h.call(t,s)&&(e[s]=t[s]);return n.prototype=t.prototype,e.prototype=new n,e.__super__=t.prototype,e},d=[].slice,f=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(t in this&&this[t]===e)return t;return-1};e=jQuery,i=null!=(l=window._)?l:window.Messenger._,s=null!=(u="undefined"!=typeof Backbone&&null!==Backbone?Backbone.Events:void 0)?u:window.Messenger.Events,n=function(){function t(t){e.extend(this,s),i.isObject(t)&&(t.el&&this.setElement(t.el),this.model=t.model),this.initialize.apply(this,arguments)}return t.prototype.setElement=function(t){return this.$el=e(t),this.el=this.$el[0]},t.prototype.delegateEvents=function(e){var t,n,s,r,o,a,l;if(e||(e=i.result(this,"events"))){t=/^(\S+)\s*(.*)$/,this.undelegateEvents(),l=[];for(s in e){if(o=e[s],i.isFunction(o)||(o=this[e[s]]),!o)throw Error("Method "+e[s]+" does not exist");r=s.match(t),n=r[1],a=r[2],o=i.bind(o,this),n+=".delegateEvents"+this.cid,""===a?l.push(this.$el.on(n,o)):l.push(this.$el.on(n,a,o))}return l}},t.prototype.undelegateEvents=function(){return this.$el.off(".delegateEvents"+this.cid)},t.prototype.remove=function(){return this.undelegateEvents(),this.$el.remove()},t}(),o=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return p(n,t),n.prototype.defaults={hideAfter:10,scroll:!0},n.prototype.initialize=function(t){return null==t&&(t={}),this.shown=!1,this.rendered=!1,this.messenger=t.messenger,this.options=e.extend({},this.options,t,this.defaults)},n.prototype.show=function(){var e;return this.rendered||this.render(),this.$message.removeClass("messenger-hidden"),e=this.shown,this.shown=!0,e?void 0:this.trigger("show")},n.prototype.hide=function(){var e;if(this.rendered)return this.$message.addClass("messenger-hidden"),e=this.shown,this.shown=!1,e?this.trigger("hide"):void 0},n.prototype.cancel=function(){return this.hide()},n.prototype.update=function(t){var n,s=this;return i.isString(t)&&(t={message:t}),e.extend(this.options,t),this.lastUpdate=new Date,this.rendered=!1,this.events=null!=(n=this.options.events)?n:{},this.render(),this.actionsToEvents(),this.delegateEvents(),this.checkClickable(),this.options.hideAfter?(this.$message.addClass("messenger-will-hide-after"),null!=this._hideTimeout&&clearTimeout(this._hideTimeout),this._hideTimeout=setTimeout(function(){return s.hide()},1e3*this.options.hideAfter)):this.$message.removeClass("messenger-will-hide-after"),this.options.hideOnNavigate?(this.$message.addClass("messenger-will-hide-on-navigate"),null!=("undefined"!=typeof Backbone&&null!==Backbone?Backbone.history:void 0)&&Backbone.history.on("route",function(){return s.hide()})):this.$message.removeClass("messenger-will-hide-on-navigate"),this.trigger("update",this)},n.prototype.scrollTo=function(){return this.options.scroll?e.scrollTo(this.$el,{duration:400,offset:{left:0,top:-20}}):void 0},n.prototype.timeSinceUpdate=function(){return this.lastUpdate?new Date-this.lastUpdate:null},n.prototype.actionsToEvents=function(){var e,t,n,s,r=this;n=this.options.actions,s=[];for(t in n)e=n[t],s.push(this.events['click [data-action="'+t+'"] a']=function(e){return function(n){return n.preventDefault(),n.stopPropagation(),r.trigger("action:"+t,e,n),e.action.call(r,n,r)}}(e));return s},n.prototype.checkClickable=function(){var e,t,n,s;n=this.events,s=[];for(t in n)e=n[t],"click"===t?s.push(this.$message.addClass("messenger-clickable")):s.push(void 0);return s},n.prototype.undelegateEvents=function(){var e;return n.__super__.undelegateEvents.apply(this,arguments),null!=(e=this.$message)?e.removeClass("messenger-clickable"):void 0},n.prototype.parseActions=function(){var t,n,s,r,i,o;n=[],i=this.options.actions;for(r in i)t=i[r],s=e.extend({},t),s.name=r,null==(o=s.label)&&(s.label=r),n.push(s);return n},n.prototype.template=function(t){var n,s,r,i,o,a,l,u,c,h,p=this;for(o=e("<div class='messenger-message message alert "+t.type+" message-"+t.type+" alert-"+t.type+"'>"),t.showCloseButton&&(r=e('<button type="button" class="close" data-dismiss="alert">&times;</button>'),r.click(function(){return p.cancel(),!0}),o.append(r)),a=e('<div class="messenger-message-inner">'+t.message+"</div>"),o.append(a),t.actions.length&&(s=e('<div class="messenger-actions">')),h=t.actions,u=0,c=h.length;c>u;u++)l=h[u],n=e("<span>"),n.attr("data-action",""+l.name),i=e("<a>"),i.html(l.label),n.append(e('<span class="messenger-phrase">')),n.append(i),s.append(n);return o.append(s),o},n.prototype.render=function(){var t;if(!this.rendered)return this._hasSlot||(this.setElement(this.messenger._reserveMessageSlot(this)),this._hasSlot=!0),t=e.extend({},this.options,{actions:this.parseActions()}),this.$message=e(this.template(t)),this.$el.html(this.$message),this.shown=!0,this.rendered=!0,this.trigger("render")},n}(n),r=function(e){function t(){return t.__super__.constructor.apply(this,arguments)}return p(t,e),t.prototype.initialize=function(){return t.__super__.initialize.apply(this,arguments),this._timers={}},t.prototype.cancel=function(){return this.clearTimers(),this.hide(),null!=this._actionInstance&&null!=this._actionInstance.abort?this._actionInstance.abort():void 0},t.prototype.clearTimers=function(){var e,t,n,s;n=this._timers;for(e in n)t=n[e],clearTimeout(t);return this._timers={},null!=(s=this.$message)?s.removeClass("messenger-retry-soon messenger-retry-later"):void 0},t.prototype.render=function(){var e,n,s,r;t.__super__.render.apply(this,arguments),this.clearTimers(),s=this.options.actions,r=[];for(n in s)e=s[n],e.auto?r.push(this.startCountdown(n,e)):r.push(void 0);return r},t.prototype.renderPhrase=function(e,t){var n;return n=e.phrase.replace("TIME",this.formatTime(t))},t.prototype.formatTime=function(e){var t;return t=function(e,t){return e=Math.floor(e),1!==e&&(t+="s"),"in "+e+" "+t},0===Math.floor(e)?"now...":60>e?t(e,"second"):(e/=60,60>e?t(e,"minute"):(e/=60,t(e,"hour")))},t.prototype.startCountdown=function(e,t){var n,s,r,i,o=this;if(null==this._timers[e])return n=this.$message.find("[data-action='"+e+"'] .messenger-phrase"),s=null!=(i=t.delay)?i:3,10>=s?(this.$message.removeClass("messenger-retry-later"),this.$message.addClass("messenger-retry-soon")):(this.$message.removeClass("messenger-retry-soon"),this.$message.addClass("messenger-retry-later")),r=function(){var i;return n.text(o.renderPhrase(t,s)),s>0?(i=Math.min(s,1),s-=i,o._timers[e]=setTimeout(r,1e3*i)):(o.$message.removeClass("messenger-retry-soon messenger-retry-later"),delete o._timers[e],t.action())},r()},t}(o),a=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return p(n,t),n.prototype.tagName="ul",n.prototype.className="messenger",n.prototype.messageDefaults={type:"info"},n.prototype.initialize=function(t){return this.options=null!=t?t:{},this.history=[],this.messageDefaults=e.extend({},this.messageDefaults,this.options.messageDefaults)},n.prototype.render=function(){return this.updateMessageSlotClasses()},n.prototype.findById=function(e){return i.filter(this.history,function(t){return t.msg.options.id===e})},n.prototype._reserveMessageSlot=function(t){var n,s,r=this;for(n=e("<li>"),n.addClass("messenger-message-slot"),this.$el.prepend(n),this.history.push({msg:t,$slot:n}),this._enforceIdConstraint(t),t.on("update",function(){return r._enforceIdConstraint(t)});this.options.maxMessages&&this.history.length>this.options.maxMessages;)s=this.history.shift(),s.msg.remove(),s.$slot.remove();return n},n.prototype._enforceIdConstraint=function(e){var t,n,s,r,i;if(null!=e.options.id)for(i=this.history,n=0,s=i.length;s>n;n++)if(t=i[n],r=t.msg,null!=r.options.id&&r.options.id===e.options.id&&e!==r){if(e.options.singleton)return e.hide(),void 0;r.hide()}},n.prototype.newMessage=function(e){var t,n,s,i,a=this;return null==e&&(e={}),e.messenger=this,o=null!=(n=null!=(s=Messenger.themes[null!=(i=e.theme)?i:this.options.theme])?s.Message:void 0)?n:r,t=new o(e),t.on("show",function(){return e.scrollTo&&"fixed"!==a.$el.css("position")?t.scrollTo():void 0}),t.on("hide show render",this.updateMessageSlotClasses,this),t},n.prototype.updateMessageSlotClasses=function(){var e,t,n,s,r,i,o;for(s=!0,t=null,e=!1,o=this.history,r=0,i=o.length;i>r;r++)n=o[r],n.$slot.removeClass("messenger-first messenger-last messenger-shown"),n.msg.shown&&n.msg.rendered&&(n.$slot.addClass("messenger-shown"),e=!0,t=n,s&&(s=!1,n.$slot.addClass("messenger-first")));return null!=t&&t.$slot.addClass("messenger-last"),this.$el[""+(e?"remove":"add")+"Class"]("messenger-empty")},n.prototype.hideAll=function(){var e,t,n,s,r;for(s=this.history,r=[],t=0,n=s.length;n>t;t++)e=s[t],r.push(e.msg.hide());return r},n.prototype.post=function(t){var n;return i.isString(t)&&(t={message:t}),t=e.extend(!0,{},this.messageDefaults,t),n=this.newMessage(t),n.update(t),n},n}(n),t=function(t){function n(){return n.__super__.constructor.apply(this,arguments)}return p(n,t),n.prototype.doDefaults={progressMessage:null,successMessage:null,errorMessage:"Error connecting to the server.",showSuccessWithoutError:!0,retry:{auto:!0,allow:!0},action:e.ajax},n.prototype.hookBackboneAjax=function(t){var n,s=this;if(null==t&&(t={}),null==window.Backbone)throw"Expected Backbone to be defined";return t=i.defaults(t,{id:"BACKBONE_ACTION",errorMessage:!1,successMessage:"Request completed successfully.",showSuccessWithoutError:!1}),n=function(e){var n;return n=i.extend({},t,e.messenger),s["do"](n,e)},null!=Backbone.ajax?(Backbone.ajax._withoutMessenger&&(Backbone.ajax=Backbone.ajax._withoutMessenger),(null==t.action||t.action===this.doDefaults.action)&&(t.action=Backbone.ajax),n._withoutMessenger=Backbone.ajax,Backbone.ajax=n):Backbone.sync=i.wrap(Backbone.sync,function(){var t,s,r;return r=arguments[0],t=arguments.length>=2?d.call(arguments,1):[],s=e.ajax,e.ajax=n,r.call.apply(r,[this].concat(d.call(t))),e.ajax=s})},n.prototype._getHandlerResponse=function(e){return e===!1?!1:e===!0||null==e?!0:e},n.prototype._parseEvents=function(e){var t,n,s,r,i,o,a;null==e&&(e={}),i={};for(r in e)s=e[r],n=r.indexOf(" "),o=r.substring(0,n),t=r.substring(n+1),null==(a=i[o])&&(i[o]={}),i[o][t]=s;return i},n.prototype._normalizeResponse=function(){var e,t,n,s,r,o,a;for(n=arguments.length>=1?d.call(arguments,0):[],s=null,r=null,e=null,o=0,a=n.length;a>o;o++)t=n[o],"success"===t||"timeout"===t||"abort"===t?s=t:null!=(null!=t?t.readyState:void 0)&&null!=(null!=t?t.responseText:void 0)?r=t:i.isObject(t)&&(e=t);return[s,e,r]},n.prototype.run=function(){var t,n,s,r,o,a,l,u,c,h,p,g,m,v,y,_,w=this;if(l=arguments[0],h=arguments[1],t=arguments.length>=3?d.call(arguments,2):[],null==h&&(h={}),l=e.extend(!0,{},this.messageDefaults,this.doDefaults,null!=l?l:{}),s=this._parseEvents(l.events),r=function(e,t){var n;return n=l[e+"Message"],i.isFunction(n)?n.call(w,e,t):n},u=null!=(y=l.messageInstance)?y:this.newMessage(l),null!=l.id&&(u.options.id=l.id),null!=l.progressMessage&&u.update(e.extend({},l,{message:r("progress",null),type:"info"})),a={},i.each(["error","success"],function(n){var o;return o=h[n],a[n]=function(){var a,c,p,g,m,v,y,_,b,x,M,C,k,$,E;return v=arguments.length>=1?d.call(arguments,0):[],b=w._normalizeResponse.apply(w,v),m=b[0],a=b[1],_=b[2],"success"===n&&null==u.errorCount&&l.showSuccessWithoutError===!1&&(l.successMessage=null),"error"===n&&(null==(x=l.errorCount)&&(l.errorCount=0),l.errorCount+=1),p=l.returnsPromise?v[0]:"function"==typeof o?o.apply(null,v):void 0,y=w._getHandlerResponse(p),i.isString(y)&&(y={message:y}),"error"!==n||0!==(null!=_?_.status:void 0)&&"abort"!==m?"error"===n&&null!=l.ignoredErrorCodes&&(M=null!=_?_.status:void 0,f.call(l.ignoredErrorCodes,M)>=0)?(u.hide(),void 0):(c={message:r(n,_),type:n,events:null!=(C=s[n])?C:{},hideOnNavigate:"success"===n},g=e.extend({},l,c,y),"number"==typeof(null!=(k=g.retry)?k.allow:void 0)&&g.retry.allow--,"error"===n&&(null!=_?_.status:void 0)>=500&&(null!=($=g.retry)?$.allow:void 0)?(null==g.retry.delay&&(g.retry.delay=4>g.errorCount?10:300),g.hideAfter&&(null==(E=g._hideAfter)&&(g._hideAfter=g.hideAfter),g.hideAfter=g._hideAfter+g.retry.delay),g._retryActions=!0,g.actions={retry:{label:"retry now",phrase:"Retrying TIME",auto:g.retry.auto,delay:g.retry.delay,action:function(){return g.messageInstance=u,setTimeout(function(){return w["do"].apply(w,[g,h].concat(d.call(t)))},0)}},cancel:{action:function(){return u.cancel()}}}):g._retryActions&&(delete g.actions.retry,delete g.actions.cancel,delete l._retryActions),u.update(g),y&&g.message?(Messenger(),u.show()):u.hide()):(u.hide(),void 0)}}),!l.returnsPromise)for(g in a)o=a[g],c=h[g],h[g]=o;for(u._actionInstance=l.action.apply(l,[h].concat(d.call(t))),l.returnsPromise&&u._actionInstance.then(a.success,a.error),p=["done","progress","fail","state","then"],m=0,v=p.length;v>m;m++)n=p[m],null!=u[n]&&delete u[n],u[n]=null!=(_=u._actionInstance)?_[n]:void 0;return u},n.prototype["do"]=n.prototype.run,n.prototype.ajax=function(){var t,n;return n=arguments[0],t=arguments.length>=2?d.call(arguments,1):[],n.action=e.ajax,this.run.apply(this,[n].concat(d.call(t)))},n.prototype.expectPromise=function(e,t){return t=i.extend({},t,{action:e,returnsPromise:!0}),this.run(t)},n}(a),e.fn.messenger=function(){var n,s,r,o,l,u,c,h;return r=arguments[0],s=arguments.length>=2?d.call(arguments,1):[],null==r&&(r={}),n=this,null!=r&&i.isString(r)?(h=n.data("messenger"))[r].apply(h,s):(l=r,null==n.data("messenger")&&(a=null!=(u=null!=(c=Messenger.themes[l.theme])?c.Messenger:void 0)?u:t,n.data("messenger",o=new a(e.extend({el:n},l))),o.render()),n.data("messenger"))},window.Messenger._call=function(t){var n,s,r,i,o,a,l,u,c,h,p;if(a={extraClasses:"messenger-fixed messenger-on-bottom messenger-on-right",theme:"future",maxMessages:9,parentLocations:["body"]},t=e.extend(a,e._messengerDefaults,Messenger.options,t),null!=t.theme&&(t.extraClasses+=" messenger-theme-"+t.theme),l=t.instance||Messenger.instance,null==t.instance){for(c=t.parentLocations,s=null,r=null,h=0,p=c.length;p>h;h++)if(u=c[h],s=e(u),s.length){i=u;break}l?e(l._location)!==e(i)&&(l.$el.detach(),s.prepend(l.$el)):(n=e("<ul>"),s.prepend(n),l=n.messenger(t),l._location=i,Messenger.instance=l)}return null!=l._addedClasses&&l.$el.removeClass(l._addedClasses),l.$el.addClass(o=""+l.className+" "+t.extraClasses),l._addedClasses=o,l},e.extend(Messenger,{Message:r,Messenger:t,themes:null!=(c=Messenger.themes)?c:{}}),e.globalMessenger=window.Messenger=Messenger}.call(this);
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: messengerjs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.3
4
+ version: 1.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Song
@@ -16,11 +16,11 @@ executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
- - lib/messengerjs-rails/middleware.rb
20
19
  - lib/messengerjs-rails/version.rb
21
20
  - lib/messengerjs-rails.rb
22
21
  - vendor/assets/javascripts/messenger-theme-future.js
23
22
  - vendor/assets/javascripts/messenger.js
23
+ - vendor/assets/javascripts/messenger.min.js
24
24
  - vendor/assets/stylesheets/messenger-spinner.css
25
25
  - vendor/assets/stylesheets/messenger-theme-air.css
26
26
  - vendor/assets/stylesheets/messenger-theme-block.css
@@ -1,79 +0,0 @@
1
- require 'rack'
2
- require 'json'
3
-
4
- module MessengerJS
5
-
6
- class Middleware
7
-
8
- KEY = 'action_dispatch.request.flash_hash'.freeze
9
-
10
- def initialize(app, options = {})
11
- @app = app
12
- @options = {
13
-
14
- }.merge(options)
15
- end
16
-
17
- def call(env)
18
- @env = env
19
- @status, @headers, @response = @app.call(env)
20
-
21
- session = Request::Session.find(env) || {}
22
- flash_hash = env[KEY]
23
-
24
- insert_messenger_to_response
25
-
26
- [@status, @headers, @response]
27
- end
28
-
29
-
30
-
31
- private
32
-
33
- def insert_messenger_to_response
34
- @response.each do |response_part|
35
- if is_regular_requests? && is_html_response?
36
-
37
- elsif is_turbolink_request? && is_html_response?
38
-
39
- elsif is_ajax_request? && is_html_response?
40
-
41
- elsif is_ajax_request? && is_javascript_response?
42
-
43
- end
44
-
45
- end
46
- end
47
-
48
- def is_regular_request?
49
- !(is_ajax_request? || is_turbolink_request?)
50
- end
51
-
52
- def is_turbolink_request?
53
- @env.has_key?("HTTP_X_XHR_REFERER")
54
- end
55
-
56
- def is_ajax_request?
57
- @env.has_key?("HTTP_X_REQUESTED_WITH") && @env["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest"
58
- end
59
-
60
- def is_html_response?
61
- @headers["Content-Type"].include?("text/html") if @headers.has_key?("Content-Type")
62
- end
63
-
64
- def is_javascript_response?
65
- @headers["Content-Type"].include?("text/javascript") if @headers.has_key?("Content-Type")
66
- end
67
-
68
- def render_messenger_scripts
69
- <<-EOT
70
- <!-- start Messenger -->
71
- <script type="text/javascript">
72
-
73
- </script>
74
- <!-- end Messenger -->
75
- EOT
76
- end
77
-
78
- end
79
- end