Skip to content

Commit f37e1b5

Browse files
committed
fix(lodash)lodash 4.X resolved, 3.X should work as well
1 parent 116adba commit f37e1b5

File tree

11 files changed

+114
-60
lines changed

11 files changed

+114
-60
lines changed

dist/angular-google-maps.js

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,12 @@ Nicholas McCready - https://twitter.com/nmccready
359359
}, {
360360
missingName: 'some',
361361
swapName: 'any'
362+
}, {
363+
missingName: 'first',
364+
swapName: 'head'
365+
}, {
366+
missingName: 'head',
367+
swapName: 'first'
362368
}
363369
].forEach(function(toMonkeyPatch) {
364370
return fixLodash(toMonkeyPatch);
@@ -577,7 +583,10 @@ Nicholas McCready - https://twitter.com/nmccready
577583
});
578584

579585
}).call(this);
580-
;(function() {
586+
;
587+
/*global _:true,angular:true, */
588+
589+
(function() {
581590
angular.module('uiGmapgoogle-maps.directives.api.utils').service('uiGmap_sync', [
582591
function() {
583592
return {
@@ -597,7 +606,7 @@ Nicholas McCready - https://twitter.com/nmccready
597606
}
598607
]).service('uiGmap_async', [
599608
'$timeout', 'uiGmapPromise', 'uiGmapLogger', '$q', 'uiGmapDataStructures', 'uiGmapGmapUtil', function($timeout, uiGmapPromise, $log, $q, uiGmapDataStructures, uiGmapGmapUtil) {
600-
var ExposedPromise, PromiseQueueManager, SniffedPromise, _getArrayAndKeys, _getIterateeValue, _ignoreFields, defaultChunkSize, doChunk, doSkippPromise, each, errorObject, isInProgress, kickPromise, logTryCatch, managePromiseQueue, map, maybeCancelPromises, promiseStatus, promiseTypes, tryCatch;
609+
var ExposedPromise, PromiseQueueManager, SniffedPromise, _getIterateeValue, _ignoreFields, defaultChunkSize, doChunk, doSkippPromise, each, errorObject, getArrayAndKeys, isInProgress, kickPromise, logTryCatch, managePromiseQueue, map, maybeCancelPromises, promiseStatus, promiseTypes, tryCatch;
601610
promiseTypes = uiGmapPromise.promiseTypes;
602611
isInProgress = uiGmapPromise.isInProgress;
603612
promiseStatus = uiGmapPromise.promiseStatus;
@@ -748,7 +757,7 @@ Nicholas McCready - https://twitter.com/nmccready
748757
return collection[valOrKey];
749758
};
750759
_ignoreFields = ['length', 'forEach', 'map'];
751-
_getArrayAndKeys = function(collection, keys, bailOutCb, cb) {
760+
getArrayAndKeys = function(collection, keys, bailOutCb, cb) {
752761
var array, propName, val;
753762
if (angular.isArray(collection)) {
754763
array = collection;
@@ -760,15 +769,15 @@ Nicholas McCready - https://twitter.com/nmccready
760769
for (propName in collection) {
761770
val = collection[propName];
762771
if (collection.hasOwnProperty(propName) && !_.includes(_ignoreFields, propName)) {
763-
array.push(val);
772+
array.push(propName);
764773
}
765774
}
766775
}
767776
}
768777
if (cb == null) {
769778
cb = bailOutCb;
770779
}
771-
if (angular.isArray(array) && (array === void 0 || (array != null ? array.length : void 0) <= 0)) {
780+
if (angular.isArray(array) && !(array != null ? array.length : void 0)) {
772781
if (cb !== bailOutCb) {
773782
return bailOutCb();
774783
}
@@ -787,7 +796,7 @@ Nicholas McCready - https://twitter.com/nmccready
787796
Optional Asynchronous Chunking via promises.
788797
*/
789798
doChunk = function(collection, chunkSizeOrDontChunk, pauseMilli, chunkCb, pauseCb, overallD, index, _keys) {
790-
return _getArrayAndKeys(collection, _keys, function(array, keys) {
799+
return getArrayAndKeys(collection, _keys, function(array, keys) {
791800
var cnt, i, keepGoing, val;
792801
if (chunkSizeOrDontChunk && chunkSizeOrDontChunk < array.length) {
793802
cnt = chunkSizeOrDontChunk;
@@ -838,7 +847,7 @@ Nicholas McCready - https://twitter.com/nmccready
838847
overallD.reject(error);
839848
return ret;
840849
}
841-
return _getArrayAndKeys(collection, _keys, function() {
850+
return getArrayAndKeys(collection, _keys, function() {
842851
overallD.resolve();
843852
return ret;
844853
}, function(array, keys) {
@@ -849,7 +858,7 @@ Nicholas McCready - https://twitter.com/nmccready
849858
map = function(collection, iterator, chunkSizeOrDontChunk, pauseCb, index, pauseMilli, _keys) {
850859
var results;
851860
results = [];
852-
return _getArrayAndKeys(collection, _keys, function() {
861+
return getArrayAndKeys(collection, _keys, function() {
853862
return uiGmapPromise.resolve(results);
854863
}, function(array, keys) {
855864
return each(collection, function(o) {
@@ -865,6 +874,7 @@ Nicholas McCready - https://twitter.com/nmccready
865874
managePromiseQueue: managePromiseQueue,
866875
promiseLock: managePromiseQueue,
867876
defaultChunkSize: defaultChunkSize,
877+
getArrayAndKeys: getArrayAndKeys,
868878
chunkSizeFrom: function(fromSize, ret) {
869879
if (ret == null) {
870880
ret = void 0;
@@ -1485,11 +1495,8 @@ Nicholas McCready - https://twitter.com/nmccready
14851495
throw 'No scope set!';
14861496
}
14871497
if (hasCoords) {
1488-
console.log('hasCoords');
14891498
coord1 = this.scopeOrModelVal('coords', scope, model1);
14901499
coord2 = this.scopeOrModelVal('coords', scope, model2);
1491-
console.log("coord1:" + JSON.stringify(coord1));
1492-
console.log("coord2:" + JSON.stringify(coord2));
14931500
isEqual = GmapUtil.equalCoords(coord1, coord2);
14941501
if (!isEqual) {
14951502
return isEqual;
@@ -4898,7 +4905,10 @@ Original idea from: http://stackoverflow.com/questions/22758950/google-map-drawi
48984905
]);
48994906

49004907
}).call(this);
4901-
;(function() {
4908+
;
4909+
/*global _:true,angular:true, */
4910+
4911+
(function() {
49024912
var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
49034913
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
49044914
hasProp = {}.hasOwnProperty;
@@ -4929,10 +4939,8 @@ Original idea from: http://stackoverflow.com/questions/22758950/google-map-drawi
49294939
this.createChildScopes = bind(this.createChildScopes, this);
49304940
this.validateScope = bind(this.validateScope, this);
49314941
this.onWatch = bind(this.onWatch, this);
4932-
var self;
49334942
MarkersParentModel.__super__.constructor.call(this, scope, element, attrs, map);
49344943
this["interface"] = IMarker;
4935-
self = this;
49364944
_setPlurals(new PropMap(), this);
49374945
this.scope.pluralsUpdate = {
49384946
updateCtr: 0
@@ -5034,13 +5042,11 @@ Original idea from: http://stackoverflow.com/questions/22758950/google-map-drawi
50345042
angular.extend(typeEvents, this.origTypeEvents);
50355043
}
50365044
internalHandles = {};
5037-
_.each(events, (function(_this) {
5038-
return function(eventName) {
5039-
return internalHandles[eventName] = function(group) {
5040-
return self.maybeExecMappedEvent(group, eventName);
5041-
};
5045+
_.each(events, function(eventName) {
5046+
return internalHandles[eventName] = function(group) {
5047+
return self.maybeExecMappedEvent(group, eventName);
50425048
};
5043-
})(this));
5049+
});
50445050
return angular.extend(typeEvents, internalHandles);
50455051
};
50465052

@@ -5164,7 +5170,10 @@ Original idea from: http://stackoverflow.com/questions/22758950/google-map-drawi
51645170
};
51655171

51665172
MarkersParentModel.prototype.newChildMarker = function(model, scope) {
5167-
var child, childScope, doDrawSelf, keys;
5173+
var child, childScope, keys;
5174+
if (!model) {
5175+
throw 'model undefined';
5176+
}
51685177
if (model[this.idKey] == null) {
51695178
this.$log.error("Marker model has no id to assign a child to. This is required for performance. Please assign id, or redirect id to a different key.");
51705179
return;
@@ -5176,7 +5185,7 @@ Original idea from: http://stackoverflow.com/questions/22758950/google-map-drawi
51765185
IMarker.scopeKeys.forEach(function(k) {
51775186
return keys[k] = scope[k];
51785187
});
5179-
child = new MarkerChildModel(childScope, model, keys, this.map, this.DEFAULTS, this.doClick, this.gManager, doDrawSelf = false);
5188+
child = new MarkerChildModel(childScope, model, keys, this.map, this.DEFAULTS, this.doClick, this.gManager, false);
51805189
this.scope.plurals.put(model[this.idKey], child);
51815190
return child;
51825191
};

dist/angular-google-maps.min.js

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

example/example.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ <h2>angular-google-maps: <span ng-cloak>{{version}}</span>, google-maps: <span n
464464
</div>
465465
<script src="../website_libs/dev_deps.js"></script>
466466

467-
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/3.10.0/lodash.js" type="text/javascript"></script>
467+
<script src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.0.1/lodash.js" type="text/javascript"></script>
468468
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.16/angular.min.js"></script>
469469
<script src="http://cdn.rawgit.com/nmccready/angular-simple-logger/0.0.1/dist/index.js"></script><script src="../dist/angular-google-maps.js"></script>
470470
<script src="./assets/scripts/mocks/heat-layer.js"></script>

spec/coffee/bootstrap/bootstrap.coffee

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ beforeEach ->
44

55
angular.module('uiGmapgoogle-maps')
66
.config ($provide) ->
7+
$provide.value('$log', console)
78
$provide.decorator '$timeout', ($delegate, $browser) ->
89
$delegate.hasPendingTasks = ->
910
$browser.deferredFns.length > 0

spec/coffee/bootstrap/google-api-mock.coffee

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
###global _:true, angular:true, google:true ###
12
capitalize = (s) ->
23
return s[0].toUpperCase() + s.slice(1)
34

@@ -8,11 +9,11 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
89
@map
910
setMap: (m) =>
1011
@map = m
11-
setOptions: (o)=>
12+
setOptions: (o) =>
1213
@opts = o
1314

1415
class DraggableObject extends MapObject
15-
setDraggable: (bool)=>
16+
setDraggable: (bool) =>
1617
@draggable = bool
1718
getDraggable: =>
1819
@draggable
@@ -82,7 +83,7 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
8283
if window?.google?.maps?.event?
8384
window.google.maps.event.fireAllListeners 'creation', @
8485

85-
setOptions: (o)=>
86+
setOptions: (o) =>
8687
super(o)
8788
if o?.position?
8889
@position = o.position
@@ -124,7 +125,7 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
124125

125126
constructor: (opts) ->
126127
super()
127-
@props= ['draggable', 'editable', 'map','visible', 'radius', 'center']
128+
@props = ['draggable', 'editable', 'map','visible', 'radius', 'center']
128129
@setOptions opts
129130

130131
#getters
@@ -144,7 +145,7 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
144145
if window?.google?.maps?.event?
145146
window.google.maps.event.fireAllListeners 'creation', @
146147

147-
setOptions: (o)=>
148+
setOptions: (o) =>
148149
super(o)
149150
_.extend @, o
150151

@@ -215,8 +216,8 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
215216
@content
216217
draw: =>
217218
@drawn = true
218-
onRemove: =>
219-
onAdd: =>
219+
onRemove: ->
220+
onAdd: ->
220221

221222
getPolyline = ->
222223
class Polyline extends DraggableObject
@@ -233,9 +234,9 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
233234
@editable
234235
getPath: =>
235236
@path
236-
setEditable: (bool)=>
237+
setEditable: (bool) =>
237238
@editable = bool
238-
setPath: (array)=>
239+
setPath: (array) =>
239240
@path = array
240241

241242
getMVCArray = ->
@@ -291,7 +292,7 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
291292
window.google.maps = {}
292293

293294
# To make debugging easier, mock everything with exceptions
294-
unmocked = (api) => () => throw new String('Unmocked API ' + api)
295+
unmocked = (api) -> () -> throw new String('Unmocked API ' + api)
295296
window.google.maps.Marker = unmocked('Marker')
296297
window.google.maps.event =
297298
clearListeners: unmocked('event.clearListeners')
@@ -353,14 +354,14 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
353354

354355
mockOverlayView: (OverlayView = class OverlayView
355356
setMap: () ->) ->
356-
window.google.maps.OverlayView = OverlayView
357+
window.google.maps.OverlayView = OverlayView
357358

358359
mockEvent: (event = {}) ->
359360
listeners = []
360361
#mocking google maps event listener
361362
if not event.addListener
362363
event.addListener = (thing, eventName, callBack) ->
363-
found = _.find listeners, (obj)->
364+
found = _.find listeners, (obj) ->
364365
obj.obj == thing
365366
unless found?
366367
toPush = {}
@@ -390,7 +391,7 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
390391

391392
unless event.fireListener
392393
event.fireListener = (thing, eventName) ->
393-
found = _.find listeners, (obj)->
394+
found = _.find listeners, (obj) ->
394395
obj.obj == thing
395396
if found? and found?.events[eventName]?
396397
found.events[eventName].forEach (cb) -> cb(found.obj)
@@ -407,7 +408,7 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
407408

408409
unless event.fireAllListeners
409410
event.fireAllListeners = (eventName, state) ->
410-
listeners.forEach (obj)->
411+
listeners.forEach (obj) ->
411412
if obj.events[eventName]?
412413
obj.events[eventName].forEach (cb) -> cb(state)
413414

@@ -423,7 +424,7 @@ angular.module('uiGmapgoogle-maps.mocks', ['uiGmapgoogle-maps'])
423424
mockMVCArray: (impl = getMVCArray()) ->
424425
window.google.maps.MVCArray = impl
425426

426-
mockCircle: (Circle = getCircle())->
427+
mockCircle: (Circle = getCircle()) ->
427428
window.google.maps.Circle = Circle
428429

429430
mockPoint: (Point = (x, y) -> return {x: x, y: y}) ->

spec/coffee/directives/api/utils/_async.spec.coffee

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
###global _:true,expect:true,###
12
describe "_async", ->
23

34
beforeEach ->
@@ -10,6 +11,36 @@ describe "_async", ->
1011
afterEach ->
1112
@subject = null
1213

14+
describe 'getArrayAndKeys', ->
15+
describe 'handles array', ->
16+
it 'normal', (done) ->
17+
testColl = [1,2,3]
18+
@subject.getArrayAndKeys testColl, null, null, (array, keys) ->
19+
expect(testColl).toEqual array
20+
expect(keys).toBeFalsy()
21+
done()
22+
23+
describe 'handles object', ->
24+
it 'normal', (done) ->
25+
testColl =
26+
'one':1
27+
'two':2
28+
'three':3
29+
@subject.getArrayAndKeys testColl, null, (-> throw "bail"), (array, keys) ->
30+
expect(['one','two','three']).toEqual array
31+
expect(keys).toBeFalsy()
32+
done()
33+
34+
it 'came w keys', (done) ->
35+
testColl =
36+
'1':1
37+
'2':2
38+
'3':3
39+
@subject.getArrayAndKeys testColl, ['a','b','c'], (-> throw "bail"), (array, keys) ->
40+
expect(['a','b','c']).toEqual array
41+
expect(['a','b','c']).toEqual keys
42+
done()
43+
1344
describe "arrays", ->
1445

1546
it "handle zero elements", (done) ->

src/coffee/directives/api/models/child/marker-child-model.coffee

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ angular.module('uiGmapgoogle-maps.directives.api.models.child')
6464
@createMarker @model
6565
$log.info @
6666

67-
6867
destroy: (removeFromManager = true) =>
6968
@removeFromManager = removeFromManager
7069
@scope.$destroy()

0 commit comments

Comments
 (0)