Browse Source

Create introspection.md

Marco Bambini 6 years ago
parent
commit
b824caab2f
1 changed files with 24 additions and 0 deletions
  1. 24 0
      docs/introspection.md

+ 24 - 0
docs/introspection.md

@@ -0,0 +1,24 @@
+### Introspection
+
+Type introspection is a core feature of Gravity. In Gravity, the Object class (ancestor of every class) provides methods for checking the instance's class.
+
+All Objects now responds to the following methods:
+```swift
+	Object.introspection();
+	Object.methods();
+	Object.properties();
+```
+
+Each method support two optional parameters:
+* param1 a Bool value (default false), if set to true returns extended information
+* param2 a Bool value (default false), if set to true it scan super classes hierarchy
+Result can be a List or a Map (in case of param1 set to true).
+
+Examples:
+```
+	List.introspection();
+  // returns: [sort,reduce,loop,sorted,contains,filter,count,reverse,iterate,push,remove,pop,storeat,loadat,reversed,indexOf,next,map,join]
+  
+  List.introspection(true);
+  // returns: [sorted:[isvar:false,name:sorted],next:[isvar:false,name:next],sort:[isvar:false,name:sort],filter:[isvar:false,name:filter],storeat:[isvar:false,name:storeat],map:[isvar:false,name:map],indexOf:[isvar:false,name:indexOf],reversed:[isvar:false,name:reversed],contains:[isvar:false,name:contains],loop:[isvar:false,name:loop],reduce:[isvar:false,name:reduce],count:[isvar:true,name:count,readonly:true],loadat:[isvar:false,name:loadat],iterate:[isvar:false,name:iterate],remove:[isvar:false,name:remove]...
+```