-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
35 lines (34 loc) · 101 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<html>
<head>
<link href="./docs/main.css" rel="stylesheet" />
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/highlight.min.js"
integrity="sha512-6yoqbrcLAHDWAdQmiRlHG4+m0g/CT/V9AGyxabG8j7Jk8j3r3K6due7oqpiRMZqcYe9WM2gPcaNNxnl2ux+3tA=="
crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.10.0/styles/a11y-dark.min.css" integrity="sha512-Vj6gPCk8EZlqnoveEyuGyYaWZ1+jyjMPg8g4shwyyNlRQl6d3L9At02ZHQr5K6s5duZl/+YKMnM3/8pDhoUphg==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<script>
hljs.registerLanguage("gdscript",function(){"use strict";var e=e||{};function r(e){return{
aliases:["godot","gdscript"],
keywords:{keyword:"and in not or self void as assert breakpoint class class_name extends is func setget signal tool yield const enum export onready static var break continue if elif else for pass return match while remote sync master puppet remotesync mastersync puppetsync",built_in:"Color8 ColorN abs acos asin atan atan2 bytes2var cartesian2polar ceil char clamp convert cos cosh db2linear decimals dectime deg2rad dict2inst ease exp floor fmod fposmod funcref get_stack hash inst2dict instance_from_id inverse_lerp is_equal_approx is_inf is_instance_valid is_nan is_zero_approx len lerp lerp_angle linear2db load log max min move_toward nearest_po2 ord parse_json polar2cartesian posmod pow preload print_stack push_error push_warning rad2deg rand_range rand_seed randf randi randomize range_lerp round seed sign sin sinh smoothstep sqrt step_decimals stepify str str2var tan tanh to_json type_exists typeof validate_json var2bytes var2str weakref wrapf wrapi bool int float String NodePath Vector2 Rect2 Transform2D Vector3 Rect3 Plane Quat Basis Transform Color RID Object NodePath Dictionary Array PoolByteArray PoolIntArray PoolRealArray PoolStringArray PoolVector2Array PoolVector3Array PoolColorArray",literal:"GD_ true false null"},contains:[e.NUMBER_MODE,e.HASH_COMMENT_MODE,{className:"comment",begin:/"""/,end:/"""/},e.QUOTE_STRING_MODE,{variants:[{className:"function",beginKeywords:"func"},{className:"class",beginKeywords:"class"}],end:/:/,contains:[e.UNDERSCORE_TITLE_MODE]}]}}return e.exports=function(e){e.registerLanguage("gdscript",r)},e.exports.definer=r,e.exports.definer||e.exports}());
</script>
<title>GD_</title>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-GKLF9TVTF3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-GKLF9TVTF3');
</script>
</head>
<body class="bg-dark">
<img src="./docs/logo.png" id="logo"/>
<div id="app"></div>
<script>
"🔍";
window.data = [{"category":"Array","items":[{"arguments":[["array (Array)","The array to process."],["[size=1] (number)","The length of each chunk"]],"category":"Array","descp":[" Creates an array of elements split into groups the length of size. "," If array can't be split evenly, the final chunk will be the remaining elements.",""],"equivalent":"chunk","example":[" GD_.chunk(['a', 'b', 'c', 'd'], 2)"," # => [['a', 'b'], ['c', 'd']]"," "," GD_.chunk(['a', 'b', 'c', 'd'], 3)"," # => [['a',* 'b', 'c'], ['d']]"],"is_pending":false,"name":"chunk","notes":[" >> Credit"," Thanks to cyberreality for the quick code they offered to the community"," https://www.reddit.com/r/godot/comments/e6ae27/comment/f9p3c2e"," >> @TODO guarded method by map, every, filter, mapValues, reject, some"],"returns":[" (Array)"," Returns the new array of chunks."]},{"arguments":[["array (Array)","The array to process."],["[size=1] (number)","The length of each chunk"]],"category":"Array","descp":[" Creates an array with all falsey values removed. "," The falsiness is determined by a basic if statement."," The values false, null, 0, \"\", [], and {} are falsey.",""],"equivalent":"compact","example":[" GD_.compact([0, 1, false, 2, '', 3])"," # => [1, 2, 3]"],"is_pending":false,"name":"compact","returns":[" (Array)"," Returns the new array of chunks."]},{"arguments":[["array (Array)","The array to concatenate."],["[values] (...*)","The values to concatenate."]],"category":"Array","descp":[" Creates a new array concatenating array with any additional arrays and/or values."," This func can receive up to 10 concat values. Hopefully thats enough",""],"equivalent":"concat","example":[" var array = [1]"," var other = GD_.concat(array, 2, [3], [[4]])"," "," print(other)"," # => [1, 2, 3, [4]]"," "," print(array)"," # => [1]"],"is_pending":false,"name":"concat","returns":[" (Array)"," Returns the new concatenated array."]},{"arguments":[["array (Array)","The array to inspect."],["[values] (...Array)","The values to exclude."]],"category":"Array","descp":[" Creates an array of array values not included in the other given arrays "," using == for comparisons. The order and references of result values "," are determined by the first array.",""],"equivalent":"difference","example":[" GD_.difference([2, 1], [2, 3])"," # => [1]"],"is_pending":false,"name":"difference","returns":[" (Array)"," Returns the new array of filtered values."]},{"arguments":[["array (Array)","The array to inspect."],["[values] (...Array)","The values to exclude."],["[iteratee=GD_.identity] (Function)","The iteratee invoked per element."]],"category":"Array","descp":[" This method is like GD_.difference except that it accepts iteratee which "," is invoked for each element of array and values to generate the criterion "," by which they're compared using ==. The order and references of result "," values are determined by the first array. The iteratee is "," invoked with two arguments: (value)",""],"equivalent":"differenceBy","example":[" GD_.difference_by([2.1, 1.2], [2.3, 3.4], Math.floor)"," # => [1.2]"," "," # The `GD_.property` iteratee shorthand."," GD_.difference_by([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x')"," # => [{ 'x': 2 }]"],"is_pending":false,"name":"difference_by","returns":[" (Array)"," Returns the new array of filtered values."]},{"arguments":[["array (Array)","The array to inspect."],["[values] (...Array)","The values to exclude."],["[comparator] (Function)","The comparator invoked per element."]],"category":"Array","descp":[" This method is like GD_.difference except that it accepts comparator "," which is invoked to compare elements of array to values. "," The order and references of result values are determined by the first array. "," The comparator is invoked with two arguments: (arrVal, othVal).",""],"equivalent":"differenceWith","example":[" var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]"," "," GD_.difference_with(objects, [{ 'x': 1, 'y': 2 }], GD_.is_equal)"," # => [{ 'x': 2, 'y': 1 }]"],"is_pending":false,"name":"difference_with","returns":[" (Array)"," Returns the new array of filtered values."]},{"arguments":[["array (Array)","The array to query."],["[n=1] (number)","The number of elements to drop."]],"category":"Array","descp":[" Creates a slice of array with n elements dropped from the beginning.",""],"equivalent":"drop","example":[" GD_.drop([1, 2, 3])"," # => [2, 3]"," "," GD_.drop([1, 2, 3], 2)"," # => [3]"," "," GD_.drop([1, 2, 3], 5)"," # => []"," "," GD_.drop([1, 2, 3], 0)"," # => [1, 2, 3]","@TODO guarded method by map, every, filter, mapValues, reject, some"],"is_pending":false,"name":"drop","returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["array (Array)","The array to query."],["[n=1] (number)","The number of elements to drop."]],"category":"Array","descp":[" Creates a slice of array with n elements dropped from the beginning."," "],"equivalent":"dropRight","example":[" GD_.drop_right([1, 2, 3])"," # => [1, 2]"," "," GD_.drop_right([1, 2, 3], 2)"," # => [1]"," "," GD_.drop_right([1, 2, 3], 5)"," # => []"," "," GD_.drop_right([1, 2, 3], 0)"," # => [1, 2, 3]","@TODO guarded method by map, every, filter, mapValues, reject, some"],"is_pending":false,"name":"drop_right","returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["array (Array)","The array to query."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Array","descp":[" Creates a slice of array excluding elements dropped from the end. "," Elements are dropped until predicate returns falsey. "," The predicate is invoked with two arguments: (value, index).",""],"equivalent":"dropRightWhile","example":[" var users = ["," { 'user': 'barney', 'active': true },"," { 'user': 'fred', 'active': false },"," { 'user': 'pebbles', 'active': false }"," ]"," "," GD_.drop_right_while(users, func (o,_unused): return !o.active)"," # => objects for ['barney']"," "," # The `GD_.matches` iteratee shorthand."," GD_.drop_right_while(users, { 'user': 'pebbles', 'active': false })"," # => objects for ['barney', 'fred']"," "," # The `GD_.matches_property` iteratee shorthand."," GD_.drop_right_while(users, ['active', false])"," # => objects for ['barney']"," "," # The `GD_.property` iteratee shorthand."," GD_.drop_right_while(users, 'active')"," # => objects for ['barney', 'fred', 'pebbles']"],"is_pending":false,"name":"drop_right_while","returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["array (Array)","The array to query."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Array","descp":[" Creates a slice of array excluding elements dropped from the beginning. "," Elements are dropped until predicate returns falsey. "," The predicate is invoked with two arguments: (value, index).",""],"equivalent":"dropWhile","example":[" var users = ["," { 'user': 'barney', 'active': false },"," { 'user': 'fred', 'active': false },"," { 'user': 'pebbles', 'active': true }"," ]"," "," GD_.drop_while(users, func (o, _unused): return !o.active )"," # => objects for ['pebbles']"," "," # The `GD_.matches` iteratee shorthand."," GD_.drop_while(users, { 'user': 'barney', 'active': false })"," # => objects for ['fred', 'pebbles']"," "," # The `GD_.matches_property` iteratee shorthand."," GD_.drop_while(users, ['active', false])"," # => objects for ['pebbles']"," "," # The `GD_.property` iteratee shorthand."," GD_.drop_while(users, 'active')"," # => objects for ['barney', 'fred', 'pebbles']"],"is_pending":false,"name":"drop_while","returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["array (Array)","The array to fill."],["value (*)","The value to fill array with."],["[start=0] (number)","The start position."],["[end=array.length] (number)","The end position."]],"category":"Array","descp":[" Fills elements of array with value from start up to, but not including, end."," Note: This method mutates array.",""],"equivalent":"fill","example":[" var array = [1, 2, 3]"," "," GD_.fill(array, 'a')"," print(array)"," # => ['a', 'a', 'a']"," "," GD_.fill(Array(3), 2)"," # => [2, 2, 2]"," "," GD_.fill([4, 6, 8, 10], '*', 1, 3)"," # => [4, '*', '*', 10]","@TODO guarded method by map, every, filter, mapValues, reject, some"],"is_pending":false,"name":"fill","returns":[" (Array)"," Returns array."]},{"arguments":[["array (Array)","The array to inspect."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."],["[fromIndex=0] (number)","The index to search from."]],"category":"Array","descp":[" This method is like GD_.find except that it returns the index of the first "," element predicate returns truthy for instead of the element itself.",""],"equivalent":"findIndex","example":[" var users = ["," { 'user': 'barney', 'active': false },"," { 'user': 'fred', 'active': false },"," { 'user': 'pebbles', 'active': true }"," ]"," "," GD_.find_index(users, func (o, _i): return o.user == 'barney' )"," # => 0"," "," # The `GD_.matches` iteratee shorthand."," GD_.find_index(users, { 'user': 'fred', 'active': false })"," # => 1"," "," # The `GD_.matches_property` iteratee shorthand."," GD_.find_index(users, ['active', false])"," # => 0"," "," # The `GD_.property` iteratee shorthand."," GD_.find_index(users, 'active')"," # => 2"],"is_pending":false,"name":"find_index","returns":[" (number)"," Returns the index of the found element, else -1."]},{"arguments":[["array (Array)","The array to inspect."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."],["[fromIndex=array.length-1] (number)","The index to search from."]],"category":"Array","descp":[" This method is like GD_.findIndex except that it iterates over "," elements of collection from right to left.",""],"equivalent":"findLastIndex","example":[" var users = ["," { 'user': 'barney', 'active': true },"," { 'user': 'fred', 'active': false },"," { 'user': 'pebbles', 'active': false }"," ]"," "," GD_.find_last_index(users, func(o,_index): return o.user == 'pebbles')"," # => 2"," "," # The `GD_.matches` iteratee shorthand."," GD_.find_last_index(users, { 'user': 'barney', 'active': true })"," # => 0"," "," # The `GD_.matches_property` iteratee shorthand."," GD_.find_last_index(users, ['active', false])"," # => 2"," "," # The `GD_.property` iteratee shorthand."," GD_.find_last_index(users, 'active')"," # => 0"],"is_pending":false,"name":"find_last_index","returns":[" (number)"," Returns the index of the found element, else -1."]},{"category":"Array","descp":[" Alias to head"],"equivalent":"first","is_pending":false,"name":"first"},{"arguments":[["array (Array)","The array to flatten."]],"category":"Array","descp":[" Flattens array a single level deep.",""],"equivalent":"flatten","example":[" GD_.flatten([1, [2, [3, [4]], 5]])"," # => [1, 2, [3, [4]], 5]"],"is_pending":false,"name":"flatten","returns":[" (Array)"," Returns the new flattened array."]},{"arguments":[["array (Array)","The array to flatten."]],"category":"Array","descp":[" Recursively flattens array.",""],"equivalent":"flattenDeep","example":["GD_.flatten_deep([1, [2, [3, [4]], 5]])","# => [1, 2, 3, 4, 5]"],"is_pending":false,"name":"flatten_deep","returns":[" (Array)"," Returns the new flattened array."]},{"arguments":[["array (Array)","The array to flatten."],["[depth=1] (number)","The maximum recursion depth."]],"category":"Array","descp":[" Recursively flatten array up to depth times.",""],"equivalent":"flattenDepth","example":[" var array = [1, [2, [3, [4]], 5]]"," "," GD_.flatten_depth(array, 1)"," # => [1, 2, [3, [4]], 5]"," "," GD_.flatten_depth(array, 2)"," # => [1, 2, 3, [4], 5]"],"is_pending":false,"name":"flatten_depth","returns":[" (Array)"," Returns the new flattened array."]},{"arguments":[["pairs (Array)","The key-value pairs."]],"category":"Array","descp":[" The inverse of GD_.to_pairs."," This method returns an object composed from key-value pairs.",""],"equivalent":"fromPairs","example":["GD_.from_pairs([['a', 1], ['b', 2]])","# => { 'a': 1, 'b': 2 }"],"is_pending":false,"name":"from_pairs","returns":[" (Object)"," Returns the new object."]},{"arguments":[["array (Array)","The array to query."]],"category":"Array","descp":[" Gets the first element of array."," "," Aliases"," GD_.first"],"equivalent":"head","example":["GD_.head([1, 2, 3])","# => 1"," ","GD_.head([])","# => null"],"is_pending":false,"name":"head","returns":[" (*)"," Returns the first element of array."]},{"arguments":[["array (Array)","The array to inspect."],["value (*)","The value to search for."],["[fromIndex=0] (number)","The index to search from."]],"category":"Array","descp":[" Gets the index at which the first occurrence of value is found in array "," using == for equality comparisons. If fromIndex is negative, "," it's used as the offset from the end of array.",""],"equivalent":"indexOf","example":["GD_.index_of([1, 2, 1, 2], 2)","# => 1"," ","# Search from the `fromIndex`.","GD_.index_of([1, 2, 1, 2], 2, 2)","# => 3"],"is_pending":false,"name":"index_of","returns":[" (number)"," Returns the index of the matched value, else -1."]},{"arguments":[["array (Array)","The array to query."]],"category":"Array","descp":[" Gets all but the last element of array.",""],"equivalent":"initial","example":["GD_.initial([1, 2, 3])","# => [1, 2]"],"is_pending":false,"name":"initial","returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["[arrays] (...Array)","The arrays to inspect."]],"category":"Array","descp":[" Creates an array of unique values that are included in all given "," arrays using == for equality comparisons. The order and references of "," result values are determined by the first array.",""],"equivalent":"intersection","example":[" GD_.intersection([2, 1], [2, 3])"," # => [2]"],"is_pending":false,"name":"intersection","returns":[" (Array)"," Returns the new array of intersecting values."]},{"arguments":[["[arrays] (...Array)","The arrays to inspect."],["[iteratee=GD_.identity] (Function)","The iteratee invoked per element."]],"category":"Array","descp":[" This method is like GD_.intersection except that it accepts iteratee "," which is invoked for each element of each arrays to generate the "," criterion by which they're compared. The order and references of result "," values are determined by the first array. The iteratee is invoked "," with one argument: (value)",""],"equivalent":"intersectionBy","example":["GD_.intersection_by([2.1, 1.2], [2.3, 3.4], GD_.floor)","# => [2.1]"," ","# The `GD_.property` iteratee shorthand.","GD_.intersection_by([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x')","# => [{ 'x': 1 }]"],"is_pending":false,"name":"intersection_by","returns":[" (Array)"," Returns the new array of intersecting values."]},{"arguments":[["[arrays] (...Array)","The arrays to inspect."],["[comparator] (Function)","The comparator invoked per element."]],"category":"Array","descp":[" This method is like GD_.intersection except that it accepts comparator "," which is invoked to compare elements of arrays. The order and references of "," result values are determined by the first array. The comparator is invoked "," with two arguments: (arrVal, othVal)."," You can \"intersect\" with up to 10 values. Hopefully thats enough"," "],"equivalent":"intersectionWith","example":[" var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]"," var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]"," "," GD_.intersection_with(objects, others, GD_.is_equal)"," # => [{ 'x': 1, 'y': 2 }]"],"is_pending":false,"name":"intersection_with","returns":[" (Array)"," Returns the new array of intersecting values."]},{"arguments":[["array (Array)","The array to convert."],["[separator=','] (string)","The element separator."]],"category":"Array","descp":[" Converts all elements in array into a string separated by separator."," "],"equivalent":"join","example":[" GD_.join(['a', 'b', 'c'], '~')"," # => 'a~b~c'"],"is_pending":false,"name":"join","returns":[" (string)"," Returns the joined string."]},{"arguments":[["array (Array)","The array to query."]],"category":"Array","descp":[" Gets the last element of array.",""],"equivalent":"last","example":[" GD_.last([1, 2, 3])"," # => 3"],"is_pending":false,"name":"last","returns":[" (*)"," Returns the last element of array."]},{"arguments":[["array (Array)","The array to inspect."],["value (*)","The value to search for."],["[fromIndex=array.length-1] (number)","The index to search from."]],"category":"Array","descp":[" This method is like GD_.index_of except that it iterates "," over elements of array from right to left.",""],"equivalent":"lastIndexOf","example":[" GD_.last_index_of([1, 2, 1, 2], 2)"," # => 3"," "," # Search from the from_index`."," GD_.last_index_of([1, 2, 1, 2], 2, 2)"," # => 1"],"is_pending":false,"name":"last_index_of","returns":[" (number)"," Returns the index of the matched value, else -1."]},{"arguments":[["array (Array)","The array to query."],["[n=0] (number)","The index of the element to return."]],"category":"Array","descp":[" Gets the element at index n of array. "," If n is negative, the nth element from the end is returned."," "],"equivalent":"nth","example":[" var array = ['a', 'b', 'c', 'd']"," "," GD_.nth(array, 1)"," # => 'b'"," "," GD_.nth(array, -2)"," # => 'c'"],"is_pending":false,"name":"nth","returns":[" (*)"," Returns the nth element of array."]},{"arguments":[["array (Array)","The array to modify."],["[values] (...*)","The values to remove."]],"category":"Array","descp":[" Removes all given values from array using == for equality comparisons.",""," Note: Unlike _.without, this method mutates array. "," Use _.remove to remove elements from an array by predicate",""],"equivalent":"pull","example":[" var array = ['a', 'b', 'c', 'a', 'b', 'c']"," "," GD_.pull(array, 'a', 'c')"," print(array)"," # => ['b', 'b']"],"is_pending":false,"name":"pull","returns":[" (Array)"," Returns array."]},{"arguments":[["array (Array)","The array to modify."],["values (Array)","The values to remove."]],"category":"Array","descp":[" This method is like _.pull except that it accepts an array of values to remove."," Note: Unlike _.difference, this method mutates array."," "],"equivalent":"pullAll","example":[" var array = ['a', 'b', 'c', 'a', 'b', 'c']"," "," GD_.pull_all(array, ['a', 'c'])"," print(array)"," # => ['b', 'b']"],"is_pending":false,"name":"pull_all","returns":[" (Array)"," Returns array."]},{"arguments":[["array (Array)","The array to modify."],["values (Array)","The values to remove."],["[iteratee=GD_.identity] (Function)","The iteratee invoked per element."]],"category":"Array","descp":[" This method is like GD_.pull_all except that it accepts iteratee "," which is invoked for each element of array and values to generate "," the criterion by which they're compared. The iteratee is invoked "," with one argument: (value)."," Note: Unlike GD_.difference_by, this method mutates array.\t",""],"equivalent":"pullAllBy","example":[" var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }]"," "," GD_.pull_all_by(array, [{ 'x': 1 }, { 'x': 3 }], 'x')"," # => [{ 'x': 2 }]"],"is_pending":false,"name":"pull_all_by","returns":[" (Array)"," Returns array."]},{"arguments":[["array (Array)","The array to modify."],["values (Array)","The values to remove."],["[comparator] (Function)","The comparator invoked per element."]],"category":"Array","descp":[" This method is like GD_.pull_all except that it accepts comparator which "," is invoked to compare elements of array to values. The comparator is "," invoked with two arguments: (arrVal, othVal)."," Note: Unlike GD_.difference_with, this method mutates array.",""],"equivalent":"pullAllWith","example":[" var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }]"," "," GD_.pull_all_with(array, [{ 'x': 3, 'y': 4 }], GD_.is_equal)"," print(array)"," # => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]"],"is_pending":false,"name":"pull_all_with","returns":[" (Array)"," Returns array."]},{"arguments":[["array (Array)","The array to modify."],["[indexes] (...(number|number[]))","The indexes of elements to remove."]],"category":"Array","descp":[" Removes elements from array corresponding to indexes and returns "," an array of removed elements."," "," Note: Unlike GD_.at, this method mutates array."," "],"equivalent":"pullAt","example":[" var array = ['a', 'b', 'c', 'd']"," var pulled = GD_.pull_at(array, [1, 3])"," "," print(array)"," # => ['a', 'c']"," "," print(pulled)"," # => ['b', 'd']"],"is_pending":false,"name":"pull_at","returns":[" (Array)"," Returns the new array of removed elements."]},{"arguments":[["array (Array)","The array to modify."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Array","descp":[" Removes all elements from array that predicate returns truthy for "," and returns an array of the removed elements. The predicate is invoked "," with two arguments: (value, index)."," Note: Unlike GD_.filter, this method mutates array. "," Use GD_.pull to pull elements from an array by value."," "," "],"equivalent":"remove","example":[" var array = [1, 2, 3, 4]"," var evens = GD_.remove(array, func(n, _i):"," return n % 2 == 0"," )"," \t"," print(array)"," # => [1, 3]"," "," print(evens)"," # => [2, 4]"],"is_pending":false,"name":"remove","returns":[" (Array)"," Returns the new array of removed elements."]},{"arguments":[["array (Array)","The array to modify."]],"category":"Array","descp":[" Reverses array so that the first element becomes the last, the second element "," becomes the second to last, and so on."," Note: This is a wrapper on Godot's Array.reverse()","",""],"equivalent":"reverse","example":[" var array = [1, 2, 3]"," "," GD_.reverse(array)"," # => [3, 2, 1]"," "," print(array)"," # => [3, 2, 1]"],"is_pending":false,"name":"reverse","returns":[" (Array)"," Returns array."]},{"arguments":[["array (Array)","The array to slice."],["[start=0] (number)","The start position."],["[end=array.length] (number)","The end position."]],"category":"Array","descp":[" Creates a slice of array from start up to, but not including, end."," "," Note: This method is a wrapper for Godot's Array.slice"," "],"equivalent":"slice","example":["var array = [0,1,2,3,4]","var slice = GD_.slice(array,1,4)","","print(slice)","# => [1,2,3]","@TODO guarded method by map, every, filter, mapValues, reject, some"],"is_pending":false,"name":"slice","returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["array (Array)","The sorted array to inspect."],["value (*)","The value to evaluate."]],"category":"Array","descp":[" Uses a binary search to determine the lowest index at which "," value should be inserted into array in order to maintain its sort order."," "," "],"equivalent":"sortedIndex","example":[" GD_.sorted_index([30, 50], 40)"," # => 1"],"is_pending":false,"name":"sorted_index","returns":[" (number)"," Returns the index at which value should be inserted into array."]},{"arguments":[["array (Array)","The sorted array to inspect."],["value (*)","The value to evaluate."],["[iteratee=GD_.identity] (Function)","The iteratee invoked per element."]],"category":"Array","descp":[" This method is like _.sortedIndex except that it accepts iteratee "," which is invoked for value and each element of array to compute "," their sort ranking. The iteratee is invoked "," with two arguments: (value, _UNUSED_).","",""],"equivalent":"sortedIndexBy","example":[" var objects = [{ 'x': 4 }, { 'x': 5 }]"," "," GD_.sorted_index_by(objects, { 'x': 4 }, func(o): return o.x)"," # => 0"," "," # The `GD_.property` iteratee shorthand."," GD_.sorted_index_by(objects, { 'x': 4 }, 'x')"," # => 0 "],"is_pending":false,"name":"sorted_index_by","returns":[" (number)"," Returns the index at which value should be inserted into array."]},{"arguments":[["array (Array)","The array to inspect."],["value (*)","The value to search for."]],"category":"Array","descp":[" This method is like _.indexOf except that it performs a binary "," search on a sorted array."," "," "],"equivalent":"sortedIndexOf","example":[" GD _.sorted_index_of([4, 5, 5, 5, 6], 5)"," # => 1\t"],"is_pending":false,"name":"sorted_index_of","returns":[" (number)"," Returns the index of the matched value, else -1."]},{"arguments":[["array (Array)","The sorted array to inspect."],["value (*)","The value to evaluate."]],"category":"Array","descp":[" This method is like GD_.sorted_index except that it returns the "," highest index at which value should be inserted into array in "," order to maintain its sort order."," "," "],"equivalent":"sortedLastIndex","example":[" GD_.sorted_last_index([4, 5, 5, 5, 6], 5)"," # => 4"],"is_pending":false,"name":"sorted_last_index","returns":[" (number)"," Returns the index at which value should be inserted into array."]},{"arguments":[["array (Array)","The sorted array to inspect."],["value (*)","The value to evaluate."],["[iteratee=GD_.identity] (Function)","The iteratee invoked per element."]],"category":"Array","descp":[" This method is like GD_.sorted_last_index except that it accepts iteratee "," which is invoked for value and each element of array to compute "," their sort ranking. The iteratee is invoked "," with two arguments: (value, _UNUSED_).",""," "],"equivalent":"sortedLastIndexBy","example":[" var objects = [{ 'x': 4 }, { 'x': 5 }]"," GD_.sorted_last_index_by(objects, { 'x': 4 }, func(o,_u): return o.x)"," # => 1"," "," # The `GD_.property` iteratee shorthand."," GD_.sorted_last_index_by(objects, { 'x': 4 }, 'x')"," # => 1"],"is_pending":false,"name":"sorted_last_index_by","returns":[" (number)"," Returns the index at which value should be inserted into array."]},{"arguments":[["array (Array)","The array to inspect."],["value (*)","The value to search for."]],"category":"Array","descp":[" This method is like _.lastIndexOf except that it performs a binary search on a sorted array.",""," "],"equivalent":"sortedLastIndexOf","example":[" GD_.sorted_last_index_of([4, 5, 5, 5, 6], 5)"," # => 3"],"is_pending":false,"name":"sorted_last_index_of","returns":[" (number)"," Returns the index of the matched value, else -1."]},{"arguments":[["array (Array)","The array to inspect."]],"category":"Array","descp":[" This method is like GD_.uniq except that it's designed "," and optimized for sorted arrays.","",""],"equivalent":"sortedUniq","example":[" GD_.sorted_uniq([1, 1, 2])"," # => [1, 2]"],"is_pending":false,"name":"sorted_uniq","returns":[" (Array)"," Returns the new duplicate free array."]},{"arguments":[["array (Array)","The array to inspect."],["[iteratee] (Function)","The iteratee invoked per element."]],"category":"Array","descp":[" This method is like GD_.uniq_by except that it's designed and "," optimized for sorted arrays."," "," "],"equivalent":"sortedUniqBy","example":[" GD_.sorted_uniq_by([1.1, 1.2, 2.3, 2.4], Math.floor)"," # => [1.1, 2.3]"],"is_pending":false,"name":"sorted_uniq_by","returns":[" (Array)"," Returns the new duplicate free array."]},{"arguments":[["array (Array)","The array to query."]],"category":"Array","descp":[" Gets all but the first element of array."," "," "],"equivalent":"tail","example":[" GD_.tail([1, 2, 3])"," # => [2, 3]"],"is_pending":false,"name":"tail","returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["array (Array)","The array to query."],["[n=1] (number)","The number of elements to take."]],"category":"Array","descp":[" Creates a slice of array with n elements taken from the beginning."," ",""],"equivalent":"take","example":[" GD_.take([1, 2, 3])"," # => [1]"," "," GD_.take([1, 2, 3], 2)"," # => [1, 2]"," "," GD_.take([1, 2, 3], 5)"," # => [1, 2, 3]"," "," GD_.take([1, 2, 3], 0)"," # => []"],"is_pending":false,"name":"take","notes":[" >> This is a guarded method "," When used with methods like map, every, filter, mapValues, reject, some"," it is invoked with all the optionals set as null"],"returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["array (Array)","The array to query."],["[n=1] (number)","The number of elements to take."]],"category":"Array","descp":[" Creates a slice of array with n elements taken from the end."," "],"equivalent":"takeRight","example":[" GD_.take_right([1, 2, 3])"," # => [3]"," "," GD_.take_right([1, 2, 3], 2)"," # => [2, 3]"," "," GD_.take_right([1, 2, 3], 5)"," # => [1, 2, 3]"," "," GD_.take_right([1, 2, 3], 0)"," # => []"],"is_pending":false,"name":"take_right","notes":[" >> This is a guarded method "," When used with methods like map, every, filter, mapValues, reject, some"," it is invoked with all the optionals set as null"],"returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["array (Array)","The array to query."],["[predicate=_.identity] (Function)","The function invoked per iteration."]],"category":"Array","descp":[" Creates a slice of array with elements taken from the end. "," Elements are taken until predicate returns falsey. The predicate is invoked "," with two arguments: (value, index)."," "],"equivalent":"takeRightWhile","example":[" var users = ["," { 'user': 'barney', 'active': true },"," { 'user': 'fred', 'active': false },"," { 'user': 'pebbles', 'active': false }"," ]"," "," GD_.take_right_while(users, func(o,_u): return !o.active)"," # => objects for ['fred', 'pebbles']"," "," # The `GD_.matches` iteratee shorthand."," GD_.take_right_while(users, { 'user': 'pebbles', 'active': false })"," # => objects for ['pebbles']"," "," # The `GD_.matchesProperty` iteratee shorthand."," GD_.take_right_while(users, ['active', false])"," # => objects for ['fred', 'pebbles']"," "," # The `GD_.property` iteratee shorthand."," GD_.take_right_while(users, 'active')"," # => []"],"is_pending":false,"name":"take_right_while","returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["array (Array)","The array to query."],["[predicate=_.identity] (Function)","The function invoked per iteration."]],"category":"Array","descp":[" Creates a slice of array with elements taken from the beginning. "," Elements are taken until predicate returns falsey. The predicate is "," invoked with three arguments: (value, index)."," "],"equivalent":"takeWhile","example":[" var users = ["," { 'user': 'barney', 'active': false },"," { 'user': 'fred', 'active': false },"," { 'user': 'pebbles', 'active': true }"," ]"," "," GD_.take_while(users, func (o,u): return !o.active )"," # => objects for ['barney', 'fred']"," "," # The `GD_.matches` iteratee shorthand."," GD_.take_while(users, { 'user': 'barney', 'active': false })"," # => objects for ['barney']"," "," # The `GD_.matchesProperty` iteratee shorthand."," GD_.take_while(users, ['active', false])"," # => objects for ['barney', 'fred']"," "," # The `GD_.property` iteratee shorthand."," GD_.take_while(users, 'active')"," # => [] "],"is_pending":false,"name":"take_while","returns":[" (Array)"," Returns the slice of array."]},{"arguments":[["[arrays] (...Array)","The arrays to inspect."]],"category":"Array","descp":[" Creates an array of unique values, in order, from all given arrays using "," == for equality comparisons."," "," "],"equivalent":"union","example":[" GD_.union([2], [1, 2])"," # => [2, 1]",""," GD_.union([1],[2],[3],[4],[5])"," # => [1,2,3,4,5]"],"is_pending":false,"name":"union","notes":[" >> Variable Arguments"," In js you can call an infinite amount of args using ellipses "," E.g. \"GD_.union([1],[2],[3],[4],[5],[6],[7],[\"as many as you want\"],[10])",""," But in GD_ you can call at most up to 10 args"," E.g. \"GD_.union([1],[2],[3],[4],[5],[6],[7],[8],[9],[10])"],"returns":[" (Array)"," Returns the new array of combined values."]},{"arguments":[["[arrays] (...Array)","The arrays to inspect."],["[iteratee=GD_.identity] (Function)","The iteratee invoked per element."]],"category":"Array","descp":[" This method is like GD_.union except that it accepts iteratee which "," is invoked for each element of each arrays to generate the criterion "," by which uniqueness is computed. Result values are chosen from "," the first array in which the value occurs. "," The iteratee is invoked with two arguments: (value , _UNUSED_)."," "," "],"equivalent":"unionBy","example":[" GD_.union_by([2.1], [1.2, 2.3], GD_.floor)"," # => [2.1, 1.2]"," "," # The `GD_.property` iteratee shorthand."," GD_.union_by([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x')"," # => [{ 'x': 1 }, { 'x': 2 }]"],"is_pending":false,"name":"union_by","returns":[" (Array)"," Returns the new array of combined values."]},{"arguments":[["[arrays] (...Array)","The arrays to inspect."],["[comparator] (Function)","The comparator invoked per element."]],"category":"Array","descp":[" This method is like GD_.union except that it accepts comparator "," which is invoked to compare elements of arrays. Result values are chosen "," from the first array in which the value occurs. The comparator is invoked "," with two arguments: (arrVal, othVal)."," "," "],"equivalent":"unionWith","example":[" var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]"," var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }]"," "," GD_.union_with(objects, others, GD_.is_equal)"," # => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }] "],"is_pending":false,"name":"union_with","returns":[" (Array)"," Returns the new array of combined values."]},{"arguments":[["array (Array)","The array to inspect."]],"category":"Array","descp":[" Creates a duplicate-free version of an array, using == for equality "," comparisons, in which only the first occurrence of each element is kept. "," The order of result values is determined by the order "," they occur in the array.",""," "],"equivalent":"uniq","example":[" GD_.uniq([2, 1, 2])"," # => [2, 1]"],"is_pending":false,"name":"uniq","returns":[" (Array)"," Returns the new duplicate free array."]},{"arguments":[["array (Array)","The array to inspect."],["[iteratee=GD_.identity] (Function)","The iteratee invoked per element."]],"category":"Array","descp":[" This method is like GD_.uniq except that it accepts iteratee which "," is invoked for each element in array to generate the criterion by "," which uniqueness is computed. The order of result values is determined "," by the order they occur in the array. The iteratee is invoked "," with two arguments : (value, _UNUSED_)."," "," "],"equivalent":"uniqBy","example":[" GD_.uniq_by([2.1, 1.2, 2.3], Math.floor)"," # => [2.1, 1.2]"," "," # The `GD_.property` iteratee shorthand."," GD_.uniq_by([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x')"," # => [{ 'x': 1 }, { 'x': 2 }]"],"is_pending":false,"name":"uniq_by","returns":[" (Array)"," Returns the new duplicate free array."]},{"arguments":[["array (Array)","The array to inspect."],["[comparator] (Function)","The comparator invoked per element."]],"category":"Array","descp":[" This method is like GD_.uniq except that it accepts comparator "," which is invoked to compare elements of array. The order of result values "," is determined by the order they occur in the array. The "," comparator is invoked with two arguments: (arrVal, othVal)."," "," "],"equivalent":"uniqWith","example":[" var objects = [{'x':1,'y':2},{'x':2,'y':1},{'x':1,'y':2}]"," GD_.uniq_with(objects, GD_.is_equal)"," # => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\t"],"is_pending":false,"name":"uniq_with","returns":[" (Array)"," Returns the new duplicate free array."]},{"category":"Array","descp":[],"equivalent":"unzip","is_pending":false,"name":"unzip"},{"category":"Array","descp":[],"equivalent":"unzipWith","is_pending":false,"name":"unzip_with"},{"arguments":[["array (Array)","The array to inspect."],["[values] (...*)","The values to exclude."]],"category":"Array","descp":[" Creates an array excluding all given values using == for equality comparisons."," "," Note: Unlike GD_.pull, this method returns a new array."," "," "],"equivalent":"without","example":[" GD_.without([2, 1, 2, 3], 1, 2)"," # => [3]"],"is_pending":false,"name":"without","returns":[" (Array)"," Returns the new array of filtered values."]},{"arguments":[["[arrays] (...Array)","The arrays to inspect."]],"category":"Array","descp":[" Creates an array of unique values that is the symmetric difference of the given arrays. The order of result values is determined by the order they occur in the arrays."," "],"equivalent":"xor","example":[" GD_.xor([2, 1], [2, 3])"," # => [1, 3] "],"is_pending":false,"name":"xor","notes":[" >> Variable Arguments"," In js you can call an infinite amount of args using ellipses "," E.g. _.xor([1], [2], [3],[4], ... , [100], [101])",""," But in GD_ you can call at most up to 10 args"," E.g. GD_.xor([1], [2], [3], ... , [10])"],"returns":[" (Array)"," Returns the new array of filtered values."]},{"arguments":[["[arrays] (...Array)","The arrays to inspect."],["[iteratee=_.identity] (Function)","The iteratee invoked per element."]],"category":"Array","descp":[" This method is like GD_.xor except that it accepts iteratee which is "," invoked for each element of each arrays to generate the criterion by which "," by which they're compared. The order of result values is determined by the "," order they occur in the arrays. The iteratee is invoked "," with two arguments: (value, _UNUSED_)."," "],"equivalent":"xorBy","example":[" GD_.xor_by([2.1, 1.2], [2.3, 3.4], GD_.floor)"," # => [1.2, 3.4]"," "," # The `GD_.property` iteratee shorthand."," GD_.xor_by([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x')"," # => [{ 'x': 2 }]"],"is_pending":false,"name":"xor_by","notes":[" >> Variable Arguments"," In js you can call an infinite amount of args using ellipses "," E.g. _.xor_by([1], [2], [3],[4], ... , [100], [101],'x')",""," But in GD_ you can call at most up to 10 args"," E.g. GD_.xor_by([1], [2], [3], ... , [10],'x')"],"returns":[" (Array)"," Returns the new array of filtered values."]},{"arguments":[["[arrays] (...Array)","The arrays to inspect."],["[comparator] (Function)","The comparator invoked per element."]],"category":"Array","descp":[" This method is like GD_.xor except that it accepts comparator which is "," invoked to compare elements of arrays. The order of result values is "," determined by the order they occur in the arrays. The comparator is invoked "," with two arguments: (arrVal, othVal)."," "],"equivalent":"xorWith","example":[" var a1 = [\"hello\",\"foo\"]"," var a2 = [\"bar\",\"homer\"]"," var comparator = func (a,b): return a[0] == b[0]",""," GD_.xor_wth(a1, a2, comparator)"," # => [\"foo\",\"bar\"]"],"is_pending":false,"name":"xor_with","notes":[" >> Variable Arguments"," In js you can call an infinite amount of args using ellipses "," E.g. _.xor_by([1], [2], [3],[4], ... , [100], [101],GD_.is_equal)",""," But in GD_ you can call at most up to 10 args"," E.g. GD_.xor_by([1], [2], [3], ... , [10],GD_.is_equal)"],"returns":[" (Array)"," Returns the new array of filtered values."]},{"arguments":[["[arrays] (...Array)","The arrays to process."]],"category":"Array","descp":[" Creates an array of grouped elements, the first of which contains the first elements of the "," given arrays, the second of which contains the second elements of the given arrays, and so on."," "," "],"equivalent":"zip","example":[" GD_.zip(['a', 'b'], [1, 2], [true, false])"," # => [['a', 1, true], ['b', 2, false]]"],"is_pending":false,"name":"zip","notes":[" >> Variable Arguments"," In js you can call an infinite amount of args using ellipses "," E.g. _.zip([1], [2], [3],[4], ... , [100], [101])",""," But in GD_ you can call at most up to 10 args"," E.g. GD_.zip([1], [2], [3], ... , [10])"],"returns":[" (Array)"," Returns the new array of grouped elements."]},{"arguments":[["[props=[]] (Array)","The property identifiers."],["[values=[]] (Array)","The property values."]],"category":"Array","descp":[" This method is like _.fromPairs except that it accepts two arrays, one of property identifiers and one of corresponding values."," "," "],"equivalent":"zipObject","example":[" GD_.zip_object(['a', 'b'], [1, 2])"," # => { 'a': 1, 'b': 2 }"],"is_pending":false,"name":"zip_object","notes":[" >> Numbers as keys"," In js you can call an infinite amount of args using ellipses "," E.g. _.zip([1], [2], [3],[4], ... , [100], [101])",""," But in GD_ you can call at most up to 10 args"," E.g. GD_.zip([1], [2], [3], ... , [10])"],"returns":[" (Object)"," Returns the new object."]},{"arguments":[["[props=[]] (Array)","The property identifiers."],["[values=[]] (Array)","The property values."]],"category":"Array","descp":[" This method is like _.zipObject except that it supports property paths."," "," "],"equivalent":"zipObjectDeep","example":["GD_.zip_object_deep(['a:b[0]:c', 'a:b[1]:d'], [1, 2])","# => { 'a': { 'b': {0:{'c':1},1:{'d':2}} } }"],"is_pending":false,"name":"zip_object_deep","notes":[" >> Regarding integer keys"," In js [\"0\", -0, 0] are \"the same keys\" when applied to an object"," e.g. declaring {\"0\":\"hello\",0:\"world\"} in JS results in {0:\"world\"}"," But in gdscript [\"0\"] is a different key from [-0,0]"," e.g. declaring {\"0\":\"hello\",0:\"world\"} in GODOT in {\"0\":\"hello\",0:\"world\"} "," "," Meaning in js"," _.zipObjectDeep( [\"0\"], [\"foo\"]) == _.zipObjectDeep( [-0], [\"foo\"]) == _.zipObjectDeep( [0], [\"foo\"])"," And in godot"," _.zip_object_deep( [\"0\"], [\"foo\"]) != _.zip_object_deep( [-0], [\"foo\"]) == _.zip_object_deep( [0], [\"foo\"])",""," You can specify if you want a numeric key to act as a string by wrapping"," it in a quoate (e.g. in th_.zip_object_deep( [\"0\"], [\"foo\"]) )"],"returns":[" (Object)"," Returns the new object."]},{"arguments":[["[arrays] (...Array)","The arrays to process."],["[iteratee=GD_.identity] (Function)","The function to combine grouped values."]],"category":"Array","descp":[" This method is like GD_.zip except that it accepts iteratee to "," specify how grouped values should be combined. The iteratee is "," invoked with the elements of each group: (...group)."," "," "],"equivalent":"zipWith","example":["var iteratee = func(a,b,c): return a + b + c"," GD_.zip_with([1, 2], [10, 20], [100, 200], iteratee)"," # => [111, 222]"],"is_pending":false,"name":"zip_with","returns":[" (Array)"," Returns the new array of grouped elements."]}]},{"category":"Collection","items":[{"arguments":[["collection (Array|Object)","The collection to iterate over."],["[iteratee=GD_.identity] (Function)","The iteratee to transform keys."]],"category":"Collection","descp":[" Creates a dictionary composed of keys generated from the results of "," running each element of collection thru iteratee. The corresponding value "," of each key is the number of times the key was returned by iteratee. "," The iteratee is invoked with two arguments: (value, _UNUSED_).","",""],"equivalent":"countBy","example":[" GD_.count_by([6.1, 4.2, 6.3], GD_.floor)"," # => { '4': 1, '6': 2 }"," "," # The `GD_.property` iteratee shorthand."," GD_.count_by(['one', 'two', 'three'], 'length')"," # => { '3': 2, '5': 1 }"],"is_pending":false,"name":"count_by","returns":[" (Object)"," Returns the composed aggregate object."]},{"category":"Collection","descp":[" Alias of for_each"],"equivalent":"each","is_pending":false,"name":"each"},{"arguments":[["collection (Array|Object)","The collection to iterate over."],["[iteratee=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Collection","descp":[" Iterates over elements of collection and invokes iteratee for each element. "," The iteratee is invoked with two arguments: (value, index|key). "," Iteratee functions may exit iteration early by explicitly returning false.","",""," Aliases"," GD_.each"],"equivalent":"forEach","example":[" GD_.for_each([1, 2], func (value,_index): print(value))"," # => Logs `1` then `2`."," "," GD_.for_each({ 'a': 1, 'b': 2 }, func (_value, key): print(key))"," # => Logs 'a' then 'b' (iteration order is not guaranteed)."],"is_pending":false,"name":"for_each","returns":[" (*)"," Returns collection."]},{"category":"Collection","equivalent":"eachRight","is_pending":true,"name":"each_right"},{"arguments":[["collection (Array|Object)","The collection to iterate over."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Collection","descp":[" Checks if predicate returns truthy for all elements of collection. "," Iteration is stopped once predicate returns falsey. The predicate is invoked with "," two arguments: (value, index|key)."," "," "],"equivalent":"every","example":[" GD_.every([true, 1, null, 'yes'])"," # => false"," "," var users = ["," { 'user': 'barney', 'age': 36, 'active': false },"," { 'user': 'fred', 'age': 40, 'active': false }"," ]"," "," # The `GD_.matches` iteratee shorthand."," GD_.every(users, { 'user': 'barney', 'active': false })"," # => false"," "," # The `GD_.matchesProperty` iteratee shorthand."," GD_.every(users, ['active', false])"," # => true"," "," # The `GD_.property` iteratee shorthand."," GD_.every(users, 'active')"," # => false","@TODO guarded method by map, every, filter, mapValues, reject, some"],"is_pending":false,"name":"every","returns":[" (boolean)"," Returns true if all elements pass the predicate check, else false."]},{"arguments":[["collection (Array|Object)","The collection to iterate over."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Collection","descp":[" Iterates over elements of collection, returning an array of all elements predicate returns truthy for. "," The predicate is invoked with two arguments (value, index|key).",""],"equivalent":"filter","example":[" var users = ["," { 'user': 'barney', 'age': 36, 'active': true },"," { 'user': 'fred', 'age': 40, 'active': false }"," ]"," "," GD_.filter(users, func(o,_index): return !o.active)"," # => objects for ['fred']"," "," # The `GD_.matches` iteratee shorthand."," GD_.filter(users, { 'age': 36, 'active': true })"," # => objects for ['barney']"," "," # The `GD_.matches_property` iteratee shorthand."," GD_.filter(users, ['active', false])"," # => objects for ['fred']"," "," # The `GD_.property` iteratee shorthand."," GD_.filter(users, 'active')"," # => objects for ['barney']"],"is_pending":false,"name":"filter","returns":[" (Array)"," Returns the new filtered array."]},{"arguments":[["collection (Array|Object)","The collection to inspect."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."],["[fromIndex=0] (number)","The index to search from."]],"category":"Collection","descp":[" Iterates over elements of collection, returning the first element predicate returns truthy for."," The predicate is invoked with two arguments: (value, index|key)."," "],"equivalent":"find","example":[" var users = ["," { 'user': 'barney', 'age': 36, 'active': true },"," { 'user': 'fred', 'age': 40, 'active': false },"," { 'user': 'pebbles', 'age': 1, 'active': true }"," ]"," "," GD_.find(users, func(o,_index): return o.age < 40)"," # => object for 'barney'"," "," # The `GD_.matches` iteratee shorthand."," GD_.find(users, { 'age': 1, 'active': true })"," # => object for 'pebbles'"," "," # The `GD_.matches_property` iteratee shorthand."," GD_.find(users, ['active', false])"," # => object for 'fred'"," "," # The `GD_.property` iteratee shorthand."," GD_.find(users, 'active')"," # => object for 'barney'"],"is_pending":false,"name":"find","returns":[" (*)"," Returns the matched element, else null."]},{"category":"Collection","equivalent":"findLast","is_pending":true,"name":"find_last"},{"category":"Collection","equivalent":"flatMap","is_pending":true,"name":"flat_map"},{"category":"Collection","equivalent":"flatMapDeep","is_pending":true,"name":"flat_map_deep"},{"category":"Collection","equivalent":"flatMapDepth","is_pending":true,"name":"flat_map_depth"},{"category":"Collection","equivalent":"forEachRight","is_pending":true,"name":"for_each_right"},{"arguments":[["collection (Array|Object)","The collection to iterate over."],["[iteratee=GD_.identity] (Function)","The iteratee to transform keys."]],"category":"Collection","descp":[" Creates a dictionary composed of keys generated from the results of "," running each element of collection thru iteratee. The order of grouped values is "," determined by the order they occur in collection. The corresponding value "," of each key is an array of elements responsible for generating the key. "," The iteratee is invoked with two arguments: (value, _UNUSED_).","",""],"equivalent":"groupBy","example":[" GD_.group_by([6.1, 4.2, 6.3], GD_.floor)"," # => { '4': [4.2], '6': [6.1, 6.3] }"," "," # The `_.property` iteratee shorthand."," GD_.group_by(['one', 'two', 'three'], 'length')"," # => { '3': ['one', 'two'], '5': ['three'] }"],"is_pending":false,"name":"group_by","returns":[" (Object)"," Returns the composed aggregate object."]},{"arguments":[["collection (Array|Object|string)","The collection to inspect."],["value (*)","The value to search for."],["[fromIndex=0] (number)","The index to search from."]],"category":"Collection","descp":[" Checks if value is in collection. If collection is a string, it's checked for "," a substring of value, otherwise == is used for equality comparisons. "," If fromIndex is negative, it's used as the offset from the end of collection."," "," "],"equivalent":"includes","example":[" GD_.includes([1, 2, 3], 1)"," # => true"," "," GD_.includes([1, 2, 3], 1, 2)"," # => false"," "," GD_.includes({ 'a': 1, 'b': 2 }, 1)"," # => true"," "," GD_.includes('abcd', 'bc')"," # => true"],"is_pending":false,"name":"includes","returns":[" (boolean)"," Returns true if value is found, else false."]},{"category":"Collection","equivalent":"invokeMap","is_pending":true,"name":"invoke_map"},{"category":"Collection","equivalent":"keyBy","is_pending":true,"name":"key_by"},{"arguments":[["collection (Array|Object)","The collection to iterate over."],["[iteratee=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Collection","descp":[" Creates an array of values by running each element in collection thru "," iteratee. The iteratee is invoked with two arguments: (value, index|key)."," The iteratee is invoked with two arguments: (value, index).",""],"equivalent":"map","example":[" func square(n, _index): return n * n"," "," GD_.map([4, 8], square)"," # => [16, 64]"," "," GD_.map({ 'a': 4, 'b': 8 }, square)"," # => [16, 64] (iteration order is not guaranteed)"," "," var users = ["," { 'user': 'barney' },"," { 'user': 'fred' }"," ]"," "," # The `GD_.property` iteratee shorthand."," GD_.map(users, 'user')"," # => ['barney', 'fred']"],"is_pending":false,"name":"map","returns":[" (Array)"," Returns the new mapped array."]},{"category":"Collection","equivalent":"orderBy","is_pending":true,"name":"order_by"},{"category":"Collection","equivalent":"partition","is_pending":true,"name":"partition"},{"arguments":[["collection (Array|Object)","The collection to iterate over."],["[iteratee=GD_.identity] (Function)","The function invoked per iteration."],["[accumulator] (*)","The initial value."]],"category":"Collection","descp":[" Reduces collection to a value which is the accumulated result of running "," each element in collection thru iteratee, where each successive invocation "," is supplied the return value of the previous. If accumulator is not given, "," the first element of collection is used as the initial value. "," The iteratee two arguments: (accumulator, {\"key\":key,\"value\":value})."," "],"equivalent":"reduce","example":[" var sum = func (accum, kv): return accum + kv.value"," GD_.reduce([1, 2], sum, 0)"," # => 3"," \t","var cb = func (result, kv):"," (result[kv.value] || (result[kv.value] = [])).push(kv.key)"," return result"," "," GD_.reduce({ 'a': 1, 'b': 2, 'c': 1 }, cb, {})"," # => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)"],"is_pending":false,"name":"reduce","notes":[" >> Callable Signature"," In GD_ we try to standardize callbacks into having 2 arguments"," So they can be chained together. Thats why we pass a dictionary down"," instead"],"returns":[" (*)"," Returns the accumulated value."]},{"arguments":[["collection (Array|Object)","The collection to iterate over."],["[iteratee=GD_.identity] (Function)","The function invoked per iteration."],["[accumulator] (*)","The initial value."]],"category":"Collection","descp":[" This method is like GD_.reduce except that it iterates over elements "," of collection from right to left."," "," "],"equivalent":"reduceRight","example":[" var array = [[0, 1], [2, 3], [4, 5]]"," ","var concat = func (flattened, kv): flattened.append_array(kv.value)"," GD_.reduce_right(array, concat, [])"," # => [4, 5, 2, 3, 0, 1]"],"is_pending":false,"name":"reduce_right","returns":[" (*)"," Returns the accumulated value."]},{"arguments":[["collection (Array|Object)","The collection to iterate over."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Collection","descp":[" The opposite of GD_.filter this method returns the elements of collection that "," predicate does not return truthy for. The iteratee is invoked "," with two args (value, index)"," "],"equivalent":"reject","example":[" var users = ["," { 'user': 'barney', 'age': 36, 'active': false },"," { 'user': 'fred', 'age': 40, 'active': true }"," ]","var not_active = func (o, i): "," return !o.active",""," GD_.reject(users, function(o) { return !o.active })"," # => objects for ['fred']"," "," # The `GD_.matches` iteratee shorthand."," GD_.reject(users, { 'age': 40, 'active': true })"," # => objects for ['barney']"," "," # The `GD_.matchesProperty` iteratee shorthand."," GD_.reject(users, ['active', false])"," # => objects for ['fred']"," "," # The `GD_.property` iteratee shorthand."," GD_.reject(users, 'active')"," # => objects for ['barney']"],"is_pending":false,"name":"reject","returns":[" (Array)"," Returns the new filtered array."]},{"category":"Collection","equivalent":"sample","is_pending":true,"name":"sample"},{"category":"Collection","equivalent":"sampleSize","is_pending":true,"name":"sample_size"},{"arguments":[["collection (Array|Object)","The collection to shuffle."]],"category":"Collection","descp":[" Creates an array of shuffled values, using a version of the Fisher-Yates shuffle."," This version can be used on any collection."],"equivalent":"shuffle","example":[" GD_.shuffle([1, 2, 3, 4]);"," # => [4, 1, 3, 2]"," "," GD_.shuffle(\"1234\")"," # => [4, 1, 3, 2]",""," GD_.shuffle({\"red\":1,\"green\":2,\"blue\":3,\"indigo\":4})"," # => [\"green\",\"indigo\",\"blue\",\"red\"]"],"is_pending":false,"name":"shuffle","returns":[" (Array)"," Returns the new shuffled array."]},{"arguments":[["collection (Array|Dictionary|String)","The collection to iterate over."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Collection","descp":[" Checks if predicate returns truthy for any element of collection. "," Iteration is stopped once predicate returns truthy. "," The predicate is invoked with two arguments: (value, index|key).",""],"equivalent":"some","example":[" GD_.some([null, 0, 'yes', false], Boolean)"," # => true"," "," var users = ["," { 'user': 'barney', 'active': true },"," { 'user': 'fred', 'active': false }"," ]"," "," # The `GD_.matches` iteratee shorthand."," GD_.some(users, { 'user': 'barney', 'active': false })"," # => false"," "," # The `GD_.matches_property` iteratee shorthand."," GD_.some(users, ['active', false])"," # => true"," "," # The `GD_.property` iteratee shorthand."," GD_.some(users, 'active')"," # => true"],"is_pending":false,"name":"some","notes":[" >> @TODO guarded method by map, every, filter, mapValues, reject, some"],"returns":[" (boolean)"," Returns true if any element passes the predicate check, else false."]},{"category":"Collection","equivalent":"sortBy","is_pending":true,"name":"sort_by"}]},{"category":"Date","items":[{"category":"Date","equivalent":"now","is_pending":true,"name":"now"}]},{"category":"Function","items":[{"arguments":[["n (number)","The number of calls before func is invoked."],["func (Function)","The function to restrict."]],"category":"Function","descp":[" The opposite of GD_.before; ",""," Creates a <a href=\"#what-are-commands\">command</a> that takes a callable and wraps it in a callable"," that only invokes said callable after it's called n or more times."," "],"equivalent":"after","example":[" var fn = func (): print(\"hello world\")"," var restricted = GD_.after(2, fn)"," "," for i in 5: restricted.exec() # Or restricted.exec.call()"," # => Only prints \"hello world\" 3 times (starting on the 3rd call)"],"is_pending":false,"name":"after","notes":[" >> JS Variations"," Theres a weird edge case where if you supply 1 as the number"," Then it doesnt execute atleast once. That behavior has not"," been replicated."," >> Memory Gotcha"," To implement this, GD_ keeps an internal record of how many times"," The passed in function has been called. That tracker cannot be"," garbage collected so use this function sparingly."],"returns":[" (Function)"," Returns a command you can execute via exec(...args) or execv([...args])."]},{"category":"Function","equivalent":"ary","is_pending":true,"name":"ary"},{"arguments":[["n (number)","The number of calls at which func is no longer invoked."],["func (Callable)","The function to restrict."]],"category":"Function","descp":[" Creates a <a href=\"#what-are-commands\">command</a> that takes a callable and wraps it in a callable"," that invokes func while it's called less than n times. "," Subsequent calls to the created function return the result of "," the last func invocation.",""],"equivalent":"before","example":[" var fn = func (): print(\"hello world\")"," var restricted = GD_.before(2, fn)"," "," for i in 5: restricted.exec() # Or restricted.exec.call()"," # => Only prints \"hello world\" twice"],"is_pending":false,"name":"before","notes":[" >> JS Variations"," Theres a weird edge case where if you supply 1 as the number"," Then it doesnt execute atleast once. That behavior has not"," been replicated."],"returns":[" (Function)"," Returns a command you can execute via exec(...args) or execv([...args])."]},{"category":"Function","equivalent":"bind","is_pending":true,"name":"bind"},{"category":"Function","equivalent":"bindKey","is_pending":true,"name":"bind_key"},{"arguments":[["[cb] (Callable)","The callable to execute"],["[args] (Array)","The arguments to supply to the callable"]],"category":"Function","descp":[" For gdscript v4.3 upwards it calls a callable, via callv "," and ensures that the arguments always fits the argument count."," On unsupported versions, this falls back to a regular callv.",""," This behavior is similar to how javascript executes calls."," "],"equivalent":false,"example":[" \t\tvar cb:Callable = func(a,b,c): return [a,b,c]"," \t\tGD_.callf(cb, [1])\t\t\t# returns [1,null,null]"," \t\tGD_.callf(cb, [1,2])\t\t# returns [1,2,null]"," \t\tGD_.callf(cb, [1,2,3])\t\t# returns [1,2,3]"," \t\tGD_.callf(cb, [1,2,3,4,5])\t# returns [1,2,3]"],"is_pending":false,"name":"callf","returns":["\t\t(Variant)"," Returns whatever [cb] returns"]},{"category":"Function","equivalent":"curry","is_pending":true,"name":"curry"},{"category":"Function","equivalent":"curryRight","is_pending":true,"name":"curry_right"},{"arguments":[["func (Function)","The callable to debounce."],["[wait=0] (number)","The number of seconds to delay."],["[options={}] (Object)","The options object."],["[options.leading=false] (boolean)","Specify invoking on the leading edge of the timeout."],["[options.maxWait=INF] (number)","The maximum time func is allowed to be delayed before it's invoked."],["[options.trailing=true] (boolean)","Specify invoking on the trailing edge of the timeout."]],"category":"Function","descp":[" Creates a <a href=\"#what-are-commands\">command</a> that takes a callable and wraps it in a callable"," that delays invoking func until after wait "," milliseconds have elapsed since the last time the debounced callable "," was invoked. The debounced callable comes with a cancel method to cancel "," delayed func invocations and a flush method to immediately invoke them. "," "," Provide options to indicate whether func should be invoked on the leading "," and/or trailing edge of the wait timeout. The func is invoked with the last "," arguments provided to the debounced callable. Subsequent calls to the debounced "," callable return the result of the last func invocation."," "," Note: If leading and trailing options are true, func is invoked on the "," trailing edge of the timeout only if the debounced callable is invoked more "," than once during the wait timeout."," "," If wait is 0 and leading is false, func invocation is deferred until to the "," next tick, similar to setTimeout with a timeout of 0."," "," See David Corbacho's article for details over the differences between _.debounce and _.throttle."],"equivalent":"debounce","example":[" var my_func = func(): print(\"hello\")"," var debounced = GD_.debounce(my_func, wait_time) ","\t\tdebounced.exec()"],"is_pending":false,"name":"debounce","returns":[" (Function)"," Returns a command you can execute via exec(...args) or execv([...args])."]},{"category":"Function","equivalent":"defer","is_pending":true,"name":"defer"},{"category":"Function","equivalent":"delay","is_pending":true,"name":"delay"},{"category":"Function","equivalent":"flip","is_pending":true,"name":"flip"},{"category":"Function","equivalent":"memoize","is_pending":true,"name":"memoize"},{"category":"Function","equivalent":"negate","is_pending":true,"name":"negate"},{"category":"Function","equivalent":"once","is_pending":true,"name":"once"},{"category":"Function","equivalent":"overArgs","is_pending":true,"name":"over_args"},{"category":"Function","equivalent":"partial","is_pending":true,"name":"partial"},{"category":"Function","equivalent":"partialRight","is_pending":true,"name":"partial_right"},{"category":"Function","equivalent":"rearg","is_pending":true,"name":"rearg"},{"category":"Function","equivalent":"rest","is_pending":true,"name":"rest"},{"category":"Function","equivalent":"spread","is_pending":true,"name":"spread"},{"category":"Function","equivalent":"throttle","is_pending":true,"name":"throttle"},{"category":"Function","equivalent":"unary","is_pending":true,"name":"unary"},{"category":"Function","equivalent":"wrapFunc","is_pending":true,"name":"wrap_func"}]},{"category":"Lang","items":[{"arguments":[["value (*)","The value to inspect."]],"category":"Lang","descp":[" Casts value as an array if it's not one.",""],"equivalent":"castArray","example":[" GD_.cast_array(1)"," # => [1]"," "," GD_.cast_array({ 'a': 1 })"," # => [{ 'a': 1 }]"," "," GD_.cast_array('abc')"," # => ['abc']"," "," GD_.cast_array(null)"," # => [null]"," "," GD_.cast_array(null)"," # => [null]"," "," GD_.cast_array()"," # => []"," "," var array = [1, 2, 3]"," print(GD_.cast_array(array) == array)"," # => true"],"is_pending":false,"name":"cast_array","returns":[" (Array)"," Returns the cast array."]},{"arguments":[["value (*)","The value to clone."]],"category":"Lang","descp":[" Creates a shallow clone for most values."," Creates a good-enough clone for values that cannot be cloned "," by conventional means."," "],"equivalent":"clone","example":[" var objects = [{ 'a': 1 }, { 'b': 2 }]"," "," var shallow = GD_.clone(objects)"," console.log(shallow[0] === objects[0])"," # true"],"is_pending":false,"name":"clone","notes":[" >> JS Comparison"," In javascript, everything is an object which makes cloning relatively"," simple, but in GDScript, some types are distinct. This makes cloning"," a bit harder so GD_ instead is more loose on \"how\" a thing is cloned"," preferring to rebuild a replica of an uncloneable class instead of"," what would have been a \"shallow\" clone in js"],"returns":[" (*)"," Returns the cloned value."]},{"category":"Lang","equivalent":"cloneDeep","is_pending":true,"name":"clone_deep"},{"category":"Lang","equivalent":"cloneDeepWith","is_pending":true,"name":"clone_deep_with"},{"category":"Lang","equivalent":"cloneWith","is_pending":true,"name":"clone_with"},{"category":"Lang","equivalent":"conformsTo","is_pending":true,"name":"conforms_to"},{"arguments":[["value (*)","The value to compare."],["other (*)","The other value to compare."]],"category":"Lang","descp":[" Basically a version of == that doesnt throw an error if the types"," are not matching",""],"equivalent":"eq","example":[" var object = { 'a': 1 };"," var other = { 'a': 1 };"," "," GD_.eq(object, object);"," # => true"," "," GD_.eq(object, other);"," # => true"," "," GD_.eq('a', 'a');"," # => true"," "," GD_.eq('a', &'a');"," # => true"],"is_pending":false,"name":"eq","returns":[" (boolean)"," Returns true if the values are equivalent, else false."]},{"arguments":[["value (*)","The value to compare."],["other (*)","The other value to compare."]],"category":"Lang","descp":[" Checks if value is greater than other.",""],"equivalent":"gt","example":[" GD_.gt(3, 1)"," # => true"," GD "," GD_.gt(3, 3)"," # => false"," GD "," GD_.gt(1, 3)"," # => false"],"is_pending":false,"name":"gt","returns":[" (boolean)"," Returns true if value is greater than other, else false."]},{"arguments":[["value (*)","The value to compare."],["other (*)","The other value to compare."]],"category":"Lang","descp":[" Checks if value is greater than other.","",""],"equivalent":"gte","example":[" GD_.gte(3, 1)"," # => true"," "," GD_.gte(3, 3)"," # => true"," "," GD_.gte(1, 3)"," # => false"],"is_pending":false,"name":"gte","returns":[" (boolean)"," Returns true if value is greater than or equal to other, else false."]},{"category":"Lang","descp":[" Same as has_method but checks the type first"],"equivalent":"hasMethodSafe","is_pending":false,"name":"has_method_safe"},{"category":"Lang","equivalent":"isArguments","is_pending":true,"name":"is_arguments"},{"arguments":[["value (*)","The value to check."]],"category":"Lang","descp":[" Checks if value is an Array or one of the PackedArray variants",""],"equivalent":"isArray","example":[" GD_.is_array([1,2,3,4])"," # => true",""," GD_.is_array(PackedByteArray([1,2,3,4]))"," # => true"," "," GD_.is_array({1:2,3:4})"," # => false"," "," GD_.is_array('abc')"," # => false"," "," GD_.is_array(GD_.noop)"," # => false"],"is_pending":false,"name":"is_array","notes":[" >> JS Comparison"," Theres are no \"Packed\" arrays in JS"],"returns":[" (boolean)"," Returns true if value is an array or packed array"]},{"category":"Lang","equivalent":"isArrayBuffer","is_pending":true,"name":"is_array_buffer"},{"arguments":[["value (*)","The value to check."]],"category":"Lang","descp":[" Checks if value implements a custom iterator."," See https://docs.godotengine.org/en/latest/tutorials/scripting/gdscript/gdscript_advanced.html#custom-iterators",""],"equivalent":false,"example":["class CustomIterator: # custom iterator implementation",""," GD_.is_array_like(CustomIterator.new())"," # => true",""," GD_.is_array([1,2,3,4])"," # => true"],"is_pending":false,"name":"is_custom_iterator","returns":[" (boolean)"," Returns true if value is a custom iterator"]},{"arguments":[["value (*)","The value to check."]],"category":"Lang","descp":[" Checks if value is array-like. A value is considered "," array-like if it can be used in a for loop."," "],"equivalent":"isArrayLike","example":[" GD_.is_array_like([1, 2, 3])"," # => true"," "," GD_.is_array_like('abc')"," # => true","","class CustomIterator: # custom iterator implementation"," GD_.is_array_like(CustomIterator.new()"," # => true",""," GD_.is_array_like(GD_.noop)","# => false"],"is_pending":false,"name":"is_array_like","returns":[" (boolean)"," Returns true if value is array-like, else false."]},{"category":"Lang","equivalent":"isArrayLikeObject","is_pending":true,"name":"is_array_like_object"},{"arguments":[["value (*)","The value to check."]],"category":"Lang","descp":[" Checks if value is classified as a boolean"," "],"equivalent":"isBoolean","example":[" GD_.is_boolean(false);"," # => true"," "," GD_.is_boolean(null);"," # => false"],"is_pending":false,"name":"is_boolean","returns":[" (boolean)"," Returns true if value is a boolean, else false."]},{"category":"Lang","equivalent":"isBuffer","is_pending":true,"name":"is_buffer"},{"arguments":[["value (*)","The value to check."]],"category":"Lang","descp":[" Checks if value is either an array, string, or dict."," These types can be used in a for loop."," "],"equivalent":false,"example":[" GD_.is_collection(\"yes\");"," # => true"," GD_.is_collection([1,2]);"," # => true"," "," GD_.is_collection(null);"," # => false "],"is_pending":false,"name":"is_collection","returns":[" (boolean)"," Returns true if value is an array, string or dict."]},{"category":"Lang","equivalent":"isDate","is_pending":true,"name":"is_date"},{"category":"Lang","equivalent":"isElement","is_pending":true,"name":"is_element"},{"arguments":[["value (*)","The value to check."]],"category":"Lang","descp":[" Checks if value is an empty object, collection, map, or set."," "," Objects are considered empty if they have no own enumerable string keyed properties."," "," Array-like values such as arguments objects, arrays, buffers, strings, or jQuery-like collections are considered empty if they have a length of 0. Similarly, maps and sets are considered empty if they have a size of 0."," "],"equivalent":"isEmpty","example":[" GD_.is_empty(null);"," # => true"," "," GD_.is_empty(true);"," # => true"," "," GD_.is_empty(1);"," # => true"," "," GD_.is_empty([1, 2, 3]);"," # => false"," "," GD_.is_empty({ 'a': 1 });"," # => false"],"is_pending":false,"name":"is_empty","returns":[" (boolean)"," Returns true if value is empty, else false."]},{"arguments":[["value (*)","The value to compare."],["other (*)","The other value to compare."]],"category":"Lang","descp":[" Performs a deep comparison between two values to determine if they are equivalent."," This equality method attempts to extract the \"underlying\" values of Variants"," "],"equivalent":"isEqual","example":[" GD_.is_equal(&\"foobar\", \"foobar\")"," # => true"," "," is_same(&\"foobar\", \"foobar\")"," # => false"],"is_pending":false,"name":"is_equal","notes":[" To get a \"value\" the method does the following:"," • (any number type) = compare as is"," • (string) = compare as is"," • (string name) = cast to str"," • (dict) = loop and compare"," • (array-like) = loop and compare"," • (*) = cast to str"],"returns":[" (boolean)"," Returns true if the values are equivalent, else false."]},{"category":"Lang","equivalent":"isEqualWith","is_pending":true,"name":"is_equal_with"},{"category":"Lang","equivalent":"isError","is_pending":true,"name":"is_error"},{"category":"Lang","equivalent":"isFunction","is_pending":true,"name":"is_function"},{"arguments":[["value (*)","The value to check."]],"category":"Lang","descp":[" Checks if the type is a mutable or an immutable type. A type is classified"," as immutable if a completely identical value of a certain type passes the"," is_same test.",""],"equivalent":false,"example":["GD_.is_immutable(\"foobar\")","# => true","","GD_.is_immutable([1,2,3,4])","# => false"],"is_pending":false,"name":"is_immutable","returns":[" (boolean)"," Returns true if value is immutable"]},{"category":"Lang","equivalent":"isInteger","is_pending":true,"name":"is_integer"},{"category":"Lang","equivalent":"isLength","is_pending":true,"name":"is_length"},{"category":"Lang","equivalent":"isMap","is_pending":true,"name":"is_map"},{"category":"Lang","equivalent":"isMatch","is_pending":true,"name":"is_match"},{"category":"Lang","equivalent":"isMatchWith","is_pending":true,"name":"is_match_with"},{"category":"Lang","equivalent":"isNative","is_pending":true,"name":"is_native"},{"category":"Lang","equivalent":"isNil","is_pending":true,"name":"is_nil"},{"category":"Lang","equivalent":"isNull","is_pending":true,"name":"is_null"},{"arguments":[["value (*)","The value to check."]],"category":"Lang","descp":[" "],"equivalent":"isNumber","example":[" GD_.is_number(3)"," # => true"," "," GD_.is_number(Number.MIN_VALUE)"," # => true"," "," GD_.is_number(Infinity)"," # => true"," "," GD_.is_number('3')"," # => false"],"is_pending":false,"name":"is_number","notes":[" To exclude Infinity, -Infinity, and NaN, which are classified "," as numbers, use the GD_.is_finite method."],"returns":[" (boolean)"," Returns true if value is a number, else false."]},{"category":"Lang","equivalent":"isObject","is_pending":true,"name":"is_object"},{"category":"Lang","equivalent":"isObjectLike","is_pending":true,"name":"is_object_like"},{"category":"Lang","equivalent":"isPlainObject","is_pending":true,"name":"is_plain_object"},{"arguments":[["value (*)","The value to check."]],"category":"Lang","descp":[" Checks if value is classified as a RegExp object."," "," Since"," 0.1.0"," "],"equivalent":"isRegexp","example":[" GD_.is_reg_exp(RegEx.create_from_string(\"\\\\w+\"))"," # => true"," "," GD_.is_reg_exp('\\\\w+');"," # => false"],"is_pending":false,"name":"is_regexp","returns":[" (boolean)"," Returns true if value is a regexp, else false."]},{"category":"Lang","equivalent":"isSafeInteger","is_pending":true,"name":"is_safe_integer"},{"category":"Lang","equivalent":"isSet","is_pending":true,"name":"is_set"},{"arguments":[["value (*)","The value to check."]],"category":"Lang","descp":[" Checks if value is classified as a String or a StringName",""],"equivalent":"isString","example":[" GD_.is_string('abc')"," # => true"," GD_.is_string(&'abc')"," # => true"," GD_.is_string(1)"," # => false"],"is_pending":false,"name":"is_string","returns":[" (boolean)"," Returns true if value is a string, else false."]},{"category":"Lang","equivalent":"isSymbol","is_pending":true,"name":"is_symbol"},{"category":"Lang","equivalent":"isTypedArray","is_pending":true,"name":"is_typed_array"},{"category":"Lang","equivalent":"isUndefined","is_pending":true,"name":"is_undefined"},{"arguments":[["[major] (int|float|String)","4, 4.3, \">4.3\""]],"category":"Lang","descp":[" Returns true if the version matches the parameters",""],"equivalent":false,"example":["\tif GD_.is_version(\">4\"): print(\"hello\")"],"is_pending":false,"name":"is_version","returns":[" (Array)"," Returns the new array of grouped elements."]},{"category":"Lang","equivalent":"isWeakMap","is_pending":true,"name":"is_weak_map"},{"category":"Lang","equivalent":"isWeakSet","is_pending":true,"name":"is_weak_set"},{"arguments":[["value (*)","The value to compare."],["other (*)","The other value to compare."]],"category":"Lang","descp":[" Checks if value is less than other."],"equivalent":"lt","example":[" GD_.lt(1, 3)"," # => true"," "," GD_.lt(3, 3)"," # => false"," "," GD_.lt(3, 1)"," # => false"],"is_pending":false,"name":"lt","returns":[" (boolean)"," Returns true if value is less than other, else false."]},{"category":"Lang","descp":[],"equivalent":"lte","is_pending":false,"name":"lte"},{"arguments":[["collection (Array|Object|string)","The collection to inspect."]],"category":"Lang","descp":[" Gets the size of collection by returning its length for array-like values "," or the number of own enumerable string keyed properties for objects."," ",""],"equivalent":"size","example":[" GD_.size([1, 2, 3])"," # => 3",""," GD_.size({ 'a': 1, 'b': 2 })"," # => 2",""," GD_.size('pebbles')"," # => 7"],"is_pending":false,"name":"size","notes":[" >> Collections in JS"," In js, anything can turn to a collection as long as it has the field"," length. In GD_, for as long as it implements length() or size() it"," size will use that and return it"," >> This is categorized as collection in lodash"],"returns":[" (number)"," Returns the collection size."]},{"arguments":[["value (*)","The value to convert."]],"category":"Lang","descp":[" Converts value to an array."," Works on any collection and custom iterators"," "],"equivalent":"toArray","example":[" GD_.to_array({ 'a': 1, 'b': 2 });"," # => [1, 2]"," "," GD_.to_array('abc');"," # => ['a', 'b', 'c']"," "," GD_.to_array(1);"," # => []"," "," GD_.to_array(null);"," # => []"],"is_pending":false,"name":"to_array","returns":[" (Array)"," Returns the converted array."]},{"arguments":[["value (*)","The value to convert."]],"category":"Lang","descp":[" Converts value to a finite number.",""],"equivalent":"toFinite","example":[" GD_.to_finite(3.2);"," # => 3.2"," "," GD_.to_finite(Infinity);"," # => 9223372036854775807"," "," GD_.to_finite('3.2');"," # => 3.2"],"is_pending":false,"name":"to_finite","returns":[" (number)"," Returns the converted number."]},{"category":"Lang","equivalent":"toInteger","is_pending":true,"name":"to_integer"},{"category":"Lang","equivalent":"toLength","is_pending":true,"name":"to_length"},{"arguments":[["value (*)","The value to process."]],"category":"Lang","descp":[" Converts value to a number."," "],"equivalent":"toNumber","example":[" GD_.to_number(2) # 2"," GD_.to_number(2.2) # 2.2"," GD_.to_number(-5) # -5"," GD_.to_number('500') # 500"," GD_.to_number('-3.9') # -3.9"," GD_.to_number(&'-4.2') # -4.2"," GD_.to_number(INF) # INF"],"is_pending":false,"name":"to_number","returns":[" (number)"," Returns the number."]},{"category":"Lang","equivalent":"toPlainObject","is_pending":true,"name":"to_plain_object"},{"category":"Lang","equivalent":"toSafeInteger","is_pending":true,"name":"to_safe_integer"},{"category":"Lang","descp":[],"equivalent":false,"is_pending":false,"name":"keyed_iterable"}]},{"category":"Math","items":[{"category":"Math","equivalent":"add","is_pending":true,"name":"add"},{"category":"Math","equivalent":"divide","is_pending":true,"name":"divide"},{"arguments":[["number (number)","The number to round down."],["[precision=0] (number)","The precision to round down to."]],"category":"Math","descp":[" Computes number rounded down to precision. This uses Godot's floor"," internally but precision can be added.","",""],"equivalent":"floor","example":[" GD_.floor(4.006)"," # => 4"," "," GD_.floor(0.046, 2)"," # => 0.04"," "," GD_.floor(4060, -2)"," # => 4000"],"is_pending":false,"name":"floor","returns":[" (number)"," Returns the rounded down number."]},{"category":"Math","equivalent":"maxBy","is_pending":true,"name":"max_by"},{"category":"Math","equivalent":"mean","is_pending":true,"name":"mean"},{"category":"Math","equivalent":"meanBy","is_pending":true,"name":"mean_by"},{"category":"Math","equivalent":"minBy","is_pending":true,"name":"min_by"},{"category":"Math","equivalent":"multiply","is_pending":true,"name":"multiply"},{"category":"Math","equivalent":"subtract","is_pending":true,"name":"subtract"},{"category":"Math","equivalent":"sum","is_pending":true,"name":"sum"},{"category":"Math","equivalent":"sumBy","is_pending":true,"name":"sum_by"}]},{"category":"Number","items":[{"category":"Number","equivalent":"inRange","is_pending":true,"name":"in_range"},{"arguments":[["[lower=0] (number)","The lower bound."],["[upper=1] (number)","The upper bound."],["floating (bool)","Specify returning a floating-point number."]],"category":"Number","descp":[" Produces a random number between the inclusive `lower` and `upper` bounds."," If only one argument is provided a number between `0` and the given number"," is returned. If `floating` is `true`, or either `lower` or `upper` are"," floats, a floating-point number is returned instead of an integer."," "],"equivalent":"random","example":[" random(0, 5)"," # => an integer between 0 and 5",""," random(5)"," # => also an integer between 0 and 5",""," random(5, true)"," # => a floating-point number between 0 and 5",""," random(1.2, 5.2)"," # => a floating-point number between 1.2 and 5.2"],"is_pending":false,"name":"random","notes":[" >> @TODO guarded method by map, every, filter, mapValues, reject, some"],"returns":[" (number)"," Returns the random number."]}]},{"category":"Object","items":[{"category":"Object","equivalent":"assign","is_pending":true,"name":"assign"},{"category":"Object","equivalent":"assignIn","is_pending":true,"name":"assign_in"},{"category":"Object","equivalent":"assignInWith","is_pending":true,"name":"assign_in_with"},{"category":"Object","equivalent":"assignWith","is_pending":true,"name":"assign_with"},{"arguments":[["object (Object)","The object to iterate over."],["[paths] (...(string|string[]))","The property paths to pick."]],"category":"Object","descp":[" Creates an array of values corresponding to paths of object."," "," "],"equivalent":"at","example":[" var object = { 'a': [{ 'b': { 'c': 3 } }, 4] }"," "," GD_.at(object, ['a[0].b.c', 'a[1]'])"," # => [3, 4]","","GD_.at(['a', 'b', 'c'], 0,2)","# => ['a','c']",""],"is_pending":false,"name":"at","notes":[" >> Variable Arguments"," In js you can call an infinite amount of args using ellipses "," E.g. _.at([], 1,2,3,4,5,6,7,\"as many as you want\",10)",""," But in GD_ you can call at most up to 10 args"," E.g. GD_.at([], 1,2,3,4,5,6,7,8,9)"],"returns":[" (Array)"," Returns the picked values."]},{"category":"Object","equivalent":"create","is_pending":true,"name":"create"},{"category":"Object","equivalent":"defaults","is_pending":true,"name":"defaults"},{"category":"Object","equivalent":"defaultsDeep","is_pending":true,"name":"defaults_deep"},{"category":"Object","equivalent":"toPairs","is_pending":true,"name":"to_pairs"},{"category":"Object","equivalent":"toPairsIn","is_pending":true,"name":"to_pairs_in"},{"arguments":[["object (Object)","The object to inspect."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Object","descp":[" This method is like GD_.find except that it returns "," the key of the first element predicate returns truthy for "," instead of the element itself.",""],"equivalent":"findKey","example":[" var users = {"," 'barney': { 'age': 36, 'active': true },"," 'fred': { 'age': 40, 'active': false },"," 'pebbles': { 'age': 1, 'active': true }"," }"," "," GD_.find_key(users, func(o, _o): return o.age < 40 )"," ## => 'barney' (iteration order is not guaranteed)"," "," ## The `GD_.matches` iteratee shorthand."," GD_.find_key(users, { 'age': 1, 'active': true })"," ## => 'pebbles'"," "," ## The `GD_.matchesProperty` iteratee shorthand."," GD_.find_key(users, ['active', false])"," ## => 'fred'"," "," ## The `GD_.property` iteratee shorthand."," GD_.find_key(users, 'active')"," ## => 'barney'"],"is_pending":false,"name":"find_key","returns":[" (*)"," Returns the key of the matched element, else undefined."]},{"arguments":[["object (Object)","The object to inspect."],["[predicate=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Object","descp":[" This method is like GD_.find_key except that it iterates over "," elements of a collection in the opposite order."," "],"equivalent":"findLastKey","example":[" var users = {"," 'barney': { 'age': 36, 'active': true },"," 'fred': { 'age': 40, 'active': false },"," 'pebbles': { 'age': 1, 'active': true }"," }"," "," GD_.find_last_key(users, func(o, _o): return o.age < 40 )"," ## => returns 'pebbles' assuming `GD_.find_key` returns 'barney'"," "," ## The `GD_.matches` iteratee shorthand."," GD_.find_last_key(users, { 'age': 36, 'active': true })"," ## => 'barney'"," "," ## The `GD_.matchesProperty` iteratee shorthand."," GD_.find_last_key(users, ['active', false])"," ## => 'fred'"," "," ## The `GD_.property` iteratee shorthand."," GD_.find_last_key(users, 'active')"," ## => 'pebbles'"],"is_pending":false,"name":"find_last_key","returns":[" (*)"," Returns the key of the matched element, else undefined."]},{"category":"Object","equivalent":"forIn","is_pending":true,"name":"for_in"},{"category":"Object","equivalent":"forInRight","is_pending":true,"name":"for_in_right"},{"category":"Object","equivalent":"forOwn","is_pending":true,"name":"for_own"},{"category":"Object","equivalent":"forOwnRight","is_pending":true,"name":"for_own_right"},{"category":"Object","equivalent":"functions","is_pending":true,"name":"functions"},{"category":"Object","equivalent":"functionsIn","is_pending":true,"name":"functions_in"},{"arguments":[["object (Object)","The object to query."],["path (Array|string)","The path of the property to get."],["[defaultValue] (*)","The value returned for null resolved values."]],"category":"Object","descp":[" Gets the value at path of object. If the resolved value is null, "," the defaultValue is returned in its place."," This is similar to lodash's get but renamed due to name clashes.","",""," When using string paths, delimit them with the \"/\" key e.g.\"a/b/c\""," Or use the index access notation \"a['b']['c']\"",""],"equivalent":"getProp","example":[" GD_.get_prop({ 'a': [{ 'b': { 'c': 3 } }] }, 'a/0/b/c')"," # => 3"," "," GD_.get_prop({ 'a': [{ 'b': { 'c': 3 } }] }, ['a', 0, 'b', 'c'])"," # => 3"," "," GD_.get_prop({ 'a': {}, 'a/b/c', 'default')"," # => 'default'","","GD_.get_prop([1,2,[3]], '2:1') ","# => 3","","GD_.get_prop([ {'120':'string', 120: 'number'} ], '0[120]')","# => number","","GD_.get_prop([ {'120':'string', 120: 'number'} ], '0['120']')","# => string",""],"is_pending":false,"name":"get_prop","notes":[" >> Regarding integer keys"," In js [\"0\", -0, 0] are \"the same keys\" when applied to an object"," e.g. declaring {\"0\":\"hello\",0:\"world\"} in JS results in {0:\"world\"}"," But in gdscript [\"0\"] is a different key from [-0,0]"," e.g. declaring {\"0\":\"hello\",0:\"world\"} in gdscript results in {\"0\":\"hello\",0:\"world\"} "," "," Meaning in js"," _.get( thing, \"0\") == _.get( thing, -0) == _.get( thing, 0)"," And in godot"," _.get_prop( thing, \"0\") != (_.get_prop( thing, -0) == _.get_prop( thing, 0))"],"returns":[" (*)"," Returns the resolved value."]},{"category":"Object","equivalent":"has","is_pending":true,"name":"has"},{"category":"Object","equivalent":"hasIn","is_pending":true,"name":"has_in"},{"category":"Object","equivalent":"invert","is_pending":true,"name":"invert"},{"category":"Object","equivalent":"invertBy","is_pending":true,"name":"invert_by"},{"category":"Object","equivalent":"invoke","is_pending":true,"name":"invoke"},{"category":"Object","equivalent":"keys","is_pending":true,"name":"keys"},{"category":"Object","equivalent":"keysIn","is_pending":true,"name":"keys_in"},{"category":"Object","equivalent":"mapKeys","is_pending":true,"name":"map_keys"},{"category":"Object","equivalent":"mapValues","is_pending":true,"name":"map_values"},{"category":"Object","equivalent":"merge","is_pending":true,"name":"merge"},{"category":"Object","equivalent":"mergeWith","is_pending":true,"name":"merge_with"},{"category":"Object","equivalent":"omit","is_pending":true,"name":"omit"},{"category":"Object","equivalent":"omitBy","is_pending":true,"name":"omit_by"},{"category":"Object","equivalent":"pick","is_pending":true,"name":"pick"},{"category":"Object","equivalent":"pickBy","is_pending":true,"name":"pick_by"},{"category":"Object","equivalent":"result","is_pending":true,"name":"result"},{"category":"Object","equivalent":"setWith","is_pending":true,"name":"set_with"},{"category":"Object","equivalent":"transform","is_pending":true,"name":"transform"},{"category":"Object","equivalent":"unset","is_pending":true,"name":"unset"},{"category":"Object","equivalent":"update","is_pending":true,"name":"update"},{"category":"Object","equivalent":"updateWith","is_pending":true,"name":"update_with"},{"arguments":[["v (Variant)","The value to query."]],"category":"Object","descp":[" Creates an array of values of a collection."," "],"equivalent":"values","example":[" GD_.values([1,2,3,4])"," # => [1,2,3,4]",""," GD_.values(\"1234\")"," # => [\"1\",\"2\",\"3\",\"4\"]"," "," var dict = {\"a\":1,\"b\":2,\"c\":3,\"d\":4}"," GD_.values(dict)"," # => [1,2,3,4]"],"is_pending":false,"name":"values","returns":[" (Array)"," Returns the array of property values."]},{"category":"Object","equivalent":"valuesIn","is_pending":true,"name":"values_in"}]},{"category":"String","items":[{"category":"String","equivalent":"camelCase","is_pending":true,"name":"camel_case"},{"category":"String","equivalent":"capitalize","is_pending":true,"name":"capitalize"},{"category":"String","equivalent":"deburr","is_pending":true,"name":"deburr"},{"category":"String","equivalent":"endsWith","is_pending":true,"name":"ends_with"},{"category":"String","equivalent":"escape","is_pending":true,"name":"escape"},{"category":"String","equivalent":"escapeRegExp","is_pending":true,"name":"escape_reg_exp"},{"category":"String","equivalent":"kebabCase","is_pending":true,"name":"kebab_case"},{"category":"String","equivalent":"lowerCase","is_pending":true,"name":"lower_case"},{"category":"String","equivalent":"lowerFirst","is_pending":true,"name":"lower_first"},{"category":"String","equivalent":"pad","is_pending":true,"name":"pad"},{"category":"String","equivalent":"padEnd","is_pending":true,"name":"pad_end"},{"category":"String","equivalent":"padStart","is_pending":true,"name":"pad_start"},{"category":"String","equivalent":"parseInt","is_pending":true,"name":"parse_int"},{"category":"String","equivalent":"repeat","is_pending":true,"name":"repeat"},{"category":"String","equivalent":"replace","is_pending":true,"name":"replace"},{"category":"String","equivalent":"snakeCase","is_pending":true,"name":"snake_case"},{"category":"String","equivalent":"split","is_pending":true,"name":"split"},{"category":"String","equivalent":"startCase","is_pending":true,"name":"start_case"},{"category":"String","equivalent":"startsWith","is_pending":true,"name":"starts_with"},{"category":"String","equivalent":"template","is_pending":true,"name":"template"},{"arguments":[["[string=''] (string)","The string to convert."]],"category":"String","descp":[" Wrapper for \"string\".to_lower()."],"equivalent":"toLower","example":[" GD_.to_lower('--Foo-Bar--');"," # => '--foo-bar--'"," "," GD_.to_lower('fooBar');"," # => 'foobar'"," "," GD_.to_lower('__FOO_BAR__');"," # => '__foo_bar__'"],"is_pending":false,"name":"to_lower","notes":[" >> Though similar this is different from GD_.lower_case"],"returns":[" (string)"," Returns the lower cased string."]},{"arguments":[["[string=''] (string)","The string to convert."]],"category":"String","descp":[" Wrapper for \"string\".to_upper()."],"equivalent":"toUpper","example":[" GD_.to_upper('--Foo-Bar--');"," # => '--foo-bar--'"," "," GD_.to_upper('fooBar');"," # => 'foobar'"," "," GD_.to_upper('__FOO_BAR__');"," # => '__foo_bar__'"],"is_pending":false,"name":"to_upper","notes":[" >> Though similar this is different from GD_.upper_case "],"returns":[" (string)"," Returns the lower cased string."]},{"category":"String","equivalent":"trim","is_pending":true,"name":"trim"},{"category":"String","equivalent":"trimEnd","is_pending":true,"name":"trim_end"},{"category":"String","equivalent":"trimStart","is_pending":true,"name":"trim_start"},{"category":"String","equivalent":"truncate","is_pending":true,"name":"truncate"},{"category":"String","equivalent":"unescape","is_pending":true,"name":"unescape"},{"category":"String","equivalent":"upperCase","is_pending":true,"name":"upper_case"},{"category":"String","equivalent":"upperFirst","is_pending":true,"name":"upper_first"},{"arguments":[["[string=''] (string)","The string to inspect."],["[pattern] (RegExp|string)","The pattern to match words."]],"category":"String","descp":[" Splits string into an array of its words."," "],"equivalent":"words","example":[" GD_.words('fred, barney, & pebbles');"," # => ['fred', 'barney', 'pebbles']"," "," GD_.words('fred, barney, & pebbles', \"[^, ]+\");"," # => ['fred', 'barney', '&', 'pebbles']"],"is_pending":false,"name":"words","notes":[" >> Regarding the default regex used"," This uses a less powerful version of lodash's regex but should"," match most uses cases. Please open a ticket if you find any"," cases where the function does not correctly split it into words"],"returns":[" (Array)"," Returns the words of string."]}]},{"category":"Util","items":[{"category":"Util","equivalent":"attempt","is_pending":true,"name":"attempt"},{"category":"Util","equivalent":"bindAll","is_pending":true,"name":"bind_all"},{"category":"Util","equivalent":"cond","is_pending":true,"name":"cond"},{"category":"Util","equivalent":"conforms","is_pending":true,"name":"conforms"},{"arguments":[["value (*)","The value to return from the new function."]],"category":"Util","descp":[" Creates a function that returns value."," "," "],"equivalent":"constant","example":[" var objects = GD_.map([0,0], GD_.constant({ 'a': 1 }))"," "," print(objects)"," # => [{ 'a': 1 }, { 'a': 1 }]"," "," print(objects[0] === objects[1])"," # => true"," "],"is_pending":false,"name":"constant","returns":[" (Function)"," Returns the new constant function."]},{"arguments":[["value (*)","The value to check."],["defaultValue (*)","The default value."]],"category":"Util","descp":[" Checks value to determine whether a default value should be returned "," in its place. The defaultValue is returned if value is NaN or null"," "],"equivalent":"defaultTo","example":[" GD_.default_to(1, 10)"," # => 1"," "," GD_.default_to(null, 10)"," # => 10"],"is_pending":false,"name":"default_to","returns":[" (*)"," Returns the resolved value."]},{"category":"Util","equivalent":"flow","is_pending":true,"name":"flow"},{"category":"Util","equivalent":"flowRight","is_pending":true,"name":"flow_right"},{"arguments":[["value (*)","Any value."]],"category":"Util","descp":[" This method returns the first argument it receives."," "],"equivalent":"identity","example":[" var object = { 'a': 1 }"," "," print(is_same(GD_.identity(object),object))"," # => true"],"is_pending":false,"name":"identity","returns":[" (*)"," Returns value."]},{"arguments":[["[func=GD_.identity] (*)","The value to convert to a callback."]],"category":"Util","descp":[" Converts shorthands to callables for use in other funcs",""],"equivalent":"iteratee","example":[" var users = ["," { 'user': 'barney', 'age': 36, 'active': true },"," { 'user': 'fred', 'age': 40, 'active': false }"," ]"," "," # The `GD_.matches` iteratee shorthand."," GD_.filter(users, GD_.iteratee({ 'user': 'barney', 'active': true }))"," # => [{ 'user': 'barney', 'age': 36, 'active': true }]"," "," # The `GD_.matches_property` iteratee shorthand."," GD_.filter(users, GD_.iteratee(['user', 'fred']))"," # => [{ 'user': 'fred', 'age': 40 }]"," "," # The `GD_.property` iteratee shorthand."," GD_.map(users, GD_.iteratee('user'))"," # => ['barney', 'fred']"],"is_pending":false,"name":"iteratee","returns":[" (Function)"," Returns the callback."]},{"arguments":[["source (Object)","The object of property values to match."]],"category":"Util","descp":[" Creates a function that perform a comparison between a "," given object and source, returning true if the given object has equivalent "," property values, else false.",""],"equivalent":"matches","example":[" var objects = ["," { 'a': 1, 'b': 2, 'c': 3 },"," { 'a': 4, 'b': 5, 'c': 6 }"," ]"," "," GD_.filter(objects, GD_.matches({ 'a': 4, 'c': 6 }))"," # => [{ 'a': 4, 'b': 5, 'c': 6 }]"],"is_pending":false,"name":"matches","returns":[" (Function)"," Returns the new spec function."]},{"arguments":[["path (Array|string)","The path of the property to get."],["srcValue (*)","The value to match."]],"category":"Util","descp":[" Creates a function that performs a partial deep comparison between "," the value at path of a given object to srcValue, returning true if the "," object value is equivalent, else false. Note: Partial comparisons will "," match empty array and empty object srcValue values against any array "," or object value, respectively. "," "],"equivalent":"matchesProperty","example":[" var objects = ["," { 'a': 1, 'b': 2, 'c': 3 },"," { 'a': 4, 'b': 5, 'c': 6 }"," ]"," "," GD_.find(objects, GD_.matches_property('a', 4))"," # => { 'a': 4, 'b': 5, 'c': 6 }"],"is_pending":false,"name":"matches_property","returns":[" (Function)"," Returns the new spec function."]},{"category":"Util","equivalent":"method","is_pending":true,"name":"method"},{"category":"Util","equivalent":"methodOf","is_pending":true,"name":"method_of"},{"category":"Util","equivalent":"mixin","is_pending":true,"name":"mixin"},{"category":"Util","equivalent":"noConflict","is_pending":true,"name":"no_conflict"},{"category":"Util","descp":[" This method returns null.","",""],"equivalent":"noop","example":[" GD_.times(2, GD_.noop)"," # => [null, null]"],"is_pending":false,"name":"noop"},{"category":"Util","equivalent":"nthArg","is_pending":true,"name":"nth_arg"},{"category":"Util","equivalent":"over","is_pending":true,"name":"over"},{"category":"Util","equivalent":"overEvery","is_pending":true,"name":"over_every"},{"category":"Util","equivalent":"overSome","is_pending":true,"name":"over_some"},{"arguments":[["path (Array|string)","The path of the property to get."]],"category":"Util","descp":[" Creates a function that returns the value at path of a given object.\t","",""],"equivalent":"property","example":[" var objects = ["," { 'a': { 'b': 2 } },"," { 'a': { 'b': 1 } }"," ]"," "," GD_.map(objects, GD_.property('a:b'))"," # => [2, 1]"," ","var node = Node2D.new()","node.global_position = Vector2(15,10)","var fn = GD_.property(\"global_position:x\")","fn.call(node) ","# => 15"],"is_pending":false,"name":"property","returns":[" (Function)"," Returns the new accessor function."]},{"category":"Util","equivalent":"propertyOf","is_pending":true,"name":"property_of"},{"category":"Util","equivalent":"rangeRight","is_pending":true,"name":"range_right"},{"category":"Util","equivalent":"runInContext","is_pending":true,"name":"run_in_context"},{"category":"Util","equivalent":"stubArray","is_pending":true,"name":"stub_array"},{"category":"Util","equivalent":"stubFalse","is_pending":true,"name":"stub_false"},{"category":"Util","equivalent":"stubObject","is_pending":true,"name":"stub_object"},{"category":"Util","equivalent":"stubString","is_pending":true,"name":"stub_string"},{"category":"Util","equivalent":"stubTrue","is_pending":true,"name":"stub_true"},{"arguments":[["n (number)","The number of times to invoke iteratee."],["[iteratee=GD_.identity] (Function)","The function invoked per iteration."]],"category":"Util","descp":[" Invokes the iteratee n times, returning an array of the results of "," each invocation. The iteratee is invoked with two args (index, _UNUSED_)"," "],"equivalent":"times","example":[" GD_.times(3, GD_.to_string)"," # => ['0', '1', '2']"," "," GD_.times(4, func (a,b): return 0)"," # => [0, 0, 0, 0]"],"is_pending":false,"name":"times","returns":[" (Array)"," Returns the array of results."]},{"category":"Util","equivalent":"toPath","is_pending":true,"name":"to_path"},{"arguments":[["[prefix=''] (string)","The value to prefix the ID with."]],"category":"Util","descp":[" Generates a unique ID. If prefix is given, the ID is appended to it.","",""],"equivalent":"uniqueId","example":[" GD_.unique_id('contact_')"," # => 'contact_104'"," "," GD_.unique_id()"," # => '105'"],"is_pending":false,"name":"unique_id","returns":[" (string)"," Returns the unique ID."]}]}]
</script>
<script src="./docs/main.js"></script>
</body>
</html>