DoubleX RMVXA Object Trace

0 Members and 1 Guest are viewing this topic.

***
Scripter
Rep:
Level 33
Changelog
Code: [Select]
#    v1.02a(GMT 0100 27-10-2015):                                              |
#    1. Lets uers set the conditions and labels for tracing objects            |
#    v1.01b(GMT 1300 13-7-2015):                                               |
#    1. Fixed not tracing klass linked to klass linked to queried object bug   |
#    2. Fixed some Script Call Info and Implementation documentation typos     |
#    3. Added more info in Prerequisites and Script Call Info                  |
#    4. Increased this script's compactness                                    |
#    v1.01a(GMT 1300 6-7-2015):                                                |
#    1. Instance methods can be traced as well                                 |
#    2. Increased this script's compactness and readability                    |
#    v1.00b(GMT 0800 1-7-2015):                                                |
#    1. Fixed object having Range and/or Structs not tracing klass properly bug|
#    v1.00a(GMT 1200 27-6-2015):                                               |
#    1. 1st version of this script finished                                    |

Author
DoubleX

Credits
DoubleX(Optional)

Purpose
Traces all objects belonging to a queried class linked to a queried object
Designed as a bug diagnosis tool used by scripters with debug experience

Example
obj.inspect
200 Scripts 30 Scripters Inspect Example 1
obj.trace_obj(Proc); obj.obj_trace[Proc].inspect
200 Scripts 30 Scripters Obj Trace Proc Example 1

Configurations
Code: [Select]
    #--------------------------------------------------------------------------|
    #  Object Trace Condition Method                                           |
    #  - Setups cond used by trace_obj(cond, label)                            |
    #--------------------------------------------------------------------------|
    # cond must be the symbol of a method taking the currently traced object as
    # the only arguement
    # The below examples are added to help you setup your own cond methods

    # Checks if the currently traced object belongs to klass
    def self.cond_klass(obj)
        obj.is_a?(klass)
    end # cond_klass

    # Add your own cond methods here
   

    #--------------------------------------------------------------------------|
    #  Object Trace Label Method                                               |
    #  - Setups label used by trace_obj(cond, label)                           |
    #--------------------------------------------------------------------------|
    # label must be the symbol of a method taking the currently traced object as
    # the only arguement
    # The below examples are added to help you setup your own label methods

    # Labels all traced objects using their class symbol
    def self.label_klass(obj)
        :"#{obj.class}"
    end # label_klass

    # Add your own label methods here
   


Script Calls
Code: [Select]
#  * Object manipulations                                                      |
#    1. trace_obj(cond, label)                                                 |
#       - Traces all objects meeting cond method linked to this object         |
#       - Labels all traced objects using label method                         |
#       - cond and label are method symbols in Object Trace Condition Method   |
#         and Object Trace Label Method respectively                           |
#    2. obj_trace[cond]                                                        |
#       - Returns all traced objects meeting cond method linked to this object |
#       - cond is a method symbol in Object Trace Condition Method             |
#    3. (v1.01a+)trace_idef                                                    |
#       - Traces all instance methods linked to this object                    |
#    4. (v1.01a+)idef_trace                                                    |
#       - Returns the trace of all instance methods linked to this object      |

Prerequisites
Abilities:
1. Basic knowledge of inspecting objects in Ruby
2. Some RGSS3 scripting proficiency to fully utilize this script

Terms Of Use

You shall:
1. Keep this script's Script Info part's contents intact
You shalln't:
1. Claim that this script is written by anyone other than DoubleX or his aliases
None of the above applies to DoubleX or his/her aliases

Instructions
Open the script editor and put this script into an open slot between Materials and Main. Save to take effect.
« Last Edit: October 27, 2015, 10:19:28 AM by DoubleX »

*
Rep:
Level 97
2014 Best RPG Maker User - Engine2014 Most Unsung Member2013 Best RPG Maker User (Scripting)2012 Favorite Staff Member2012 Most Mature Member2012 Best RPG Maker User (Scripting)2012 Best MemberSecret Santa 2012 ParticipantProject of the Month winner for July 20092011 Best RPG Maker User (Scripting)2011 Best Veteran2011 Favourite Staff Member2011 Most Mature Member2011 Best Use of Avatar and Signature Space2010 Favourite Staff Member2010 Most Mature Member
It's always good to have scripts that help other scripters like this. Thanks for sharing DoubleX!

***
Scripter
Rep:
Level 33
Updates
Code: [Select]
#    v1.00b(GMT 0800 1-7-2015):                                                |
#    1. Fixed object having Range and/or Structs not tracing klass properly bug|

***
Scripter
Rep:
Level 33
Updates
Code: [Select]
#    v1.01a(GMT 1300 6-7-2015):                                                |
#    1. Instance methods can be traced as well                                 |
#    2. Increased this script's compactness and readability                    |

***
Scripter
Rep:
Level 33
Updates
Code: [Select]
#    v1.01b(GMT 1300 13-7-2015):                                               |
#    1. Fixed not tracing klass linked to klass linked to queried object bug   |
#    2. Fixed some Script Call Info and Implementation documentation typos     |
#    3. Added more info in Prerequisites and Script Call Info                  |
#    4. Increased this script's compactness                                    |

***
Scripter
Rep:
Level 33
Updates
Code: [Select]
#    v1.02a(GMT 0100 27-10-2015):                                              |
#    1. Lets uers set the conditions and labels for tracing objects            |