Skip to content

Commit

Permalink
Merge pull request #409 from georgejecook/feat/adds_asLong
Browse files Browse the repository at this point in the history
Feat/adds as long
  • Loading branch information
georgejecook committed Oct 16, 2023
2 parents c74f008 + 4ede3b0 commit 4c15770
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 8 deletions.
3 changes: 3 additions & 0 deletions src/source/core/Global.bs
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ end function
function asFloat(value as dynamic, default = 0.0 as dynamic) as dynamic
return 0
end function
function asLong(value as dynamic, default = 0 as dynamic) as dynamic
return 0
end function
function asInteger(value as dynamic, default = 0 as dynamic) as dynamic
return 0
end function
Expand Down
29 changes: 21 additions & 8 deletions src/source/core/Utils.bs
Original file line number Diff line number Diff line change
Expand Up @@ -21,39 +21,43 @@ namespace mc
end function

function isArray(value as dynamic) as boolean
return type(value) <> "<uninitialized>" and value <> invalid and GetInterface(value, "ifArray") <> invalid
return type(value) <> "<uninitialized>" and value <> invalid and getInterface(value, "ifArray") <> invalid
end function

function isAACompatible(value as dynamic) as boolean
return type(value) <> "<uninitialized>" and value <> invalid and GetInterface(value, "ifAssociativeArray") <> invalid
return type(value) <> "<uninitialized>" and value <> invalid and getInterface(value, "ifAssociativeArray") <> invalid
end function

function isString(value as dynamic) as boolean
return type(value) <> "<uninitialized>" and GetInterface(value, "ifString") <> invalid
return type(value) <> "<uninitialized>" and getInterface(value, "ifString") <> invalid
end function

function isBoolean(value as dynamic) as boolean
return type(value) <> "<uninitialized>" and GetInterface(value, "ifBoolean") <> invalid
return type(value) <> "<uninitialized>" and getInterface(value, "ifBoolean") <> invalid
end function

function isFunction(value as dynamic) as boolean
return type(value) = "Function" or type(value) = "roFunction"
end function

function isInteger(value as dynamic) as boolean
return type(value) <> "<uninitialized>" and GetInterface(value, "ifInt") <> invalid
return type(value) <> "<uninitialized>" and getInterface(value, "ifInt") <> invalid
end function

function isDouble(value as dynamic) as boolean
return type(value) <> "<uninitialized>" and GetInterface(value, "ifDouble") <> invalid
return type(value) <> "<uninitialized>" and getInterface(value, "ifDouble") <> invalid
end function

function isNumber(value as dynamic) as boolean
return type(value) <> "<uninitialized>" and (GetInterface(value, "ifFloat") <> invalid or GetInterface(value, "ifInt") <> invalid or GetInterface(value, "ifDouble") <> invalid)
return type(value) <> "<uninitialized>" and (getInterface(value, "ifFloat") <> invalid or getInterface(value, "ifInt") <> invalid or getInterface(value, "ifDouble") <> invalid)
end function

function isFloat(value as dynamic) as boolean
return type(value) <> "<uninitialized>" and GetInterface(value, "ifFloat") <> invalid
return type(value) <> "<uninitialized>" and getInterface(value, "ifFloat") <> invalid
end function

function isLong(value as dynamic) as boolean
return type(value) <> "<uninitialized>" and (getInterface(value, "ifLongInt") <> invalid or getInterface(value, "ifDouble") or getInterface(value, "ifDouble") <> invalid or getInterface(value, "ifInt") <> invalid)
end function

function isPoint(value as dynamic) as boolean
Expand Down Expand Up @@ -297,6 +301,15 @@ namespace mc
return default
end function

function getLong(content as object, path = invalid as string, default = 0 as dynamic, disableIndexing = false as boolean) as dynamic
value = mc.getPath(content, path, invalid, disableIndexing)
if mc.isLong(value)
'any number is considered a long at this point
return value
end if
return default
end function

function getBoolean(content as object, path = invalid as string, default = false as dynamic, disableIndexing = false as boolean) as dynamic
value = mc.getPath(content, path, invalid, disableIndexing)
if mc.isBoolean(value)
Expand Down

0 comments on commit 4c15770

Please sign in to comment.