2016-06-21 05:52:44 +00:00
|
|
|
--- Utility functions, intended for internal use only.
|
|
|
|
--- @module util
|
|
|
|
--- @copyright Paul Liverman III (2015-2016)
|
|
|
|
--- @license The MIT License (MIT)
|
|
|
|
|
|
|
|
--- @function inheritsFromElement
|
2016-08-21 07:49:16 +00:00
|
|
|
--- @tparam table object MoonScript object to be checked for inheritence from
|
|
|
|
--- the "element" element.
|
|
|
|
--- @treturn boolean Is the table an object inherting from "element"?
|
|
|
|
--- @raise Can error if the table has a similar structure to a MoonScript object
|
|
|
|
--- without being the same structure.
|
|
|
|
--- @see Element
|
|
|
|
|
2016-06-21 05:52:44 +00:00
|
|
|
inheritsFromElement = (object) ->
|
2017-01-10 20:57:02 +00:00
|
|
|
if object and type(object) == "table" and object.__class
|
2016-06-21 05:52:44 +00:00
|
|
|
cls = object.__class
|
|
|
|
|
|
|
|
if cls.__name == "element"
|
|
|
|
return true
|
|
|
|
|
|
|
|
while cls.__parent
|
|
|
|
cls = cls.__parent
|
|
|
|
if cls.__name == "element"
|
|
|
|
return true
|
|
|
|
|
|
|
|
return false
|
|
|
|
|
|
|
|
return {
|
|
|
|
:inheritsFromElement
|
|
|
|
}
|