赞 | 2 |
VIP | 341 |
好人卡 | 22 |
积分 | 6 |
经验 | 66602 |
最后登录 | 2024-5-19 |
在线时间 | 1243 小时 |
Lv2.观梦者 (管理员) 八云紫的式神
- 梦石
- 0
- 星屑
- 609
- 在线时间
- 1243 小时
- 注册时间
- 2008-1-1
- 帖子
- 4282
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
- def read_class(object)
- classname = object.class.to_s
- methods = "
- instance_variables
- public_methods
- private_methods
- protected_methods
- singleton_methods
- constants
- nesting
- ancestors
- class_variables
- constants
- included_modules
- public_instance_methods
- private_instance_methods
- protected_instance_methods
- global_variables
- "
- error = "以下方法执行失败"
- sucsess = "以下方法执行成功,结果保存在#{classname}文件夹"
- null = "以下方法返回值为空"
- result = {}
- Dir.mkdir(classname) rescue Dir.foreach(classname){|file|File.delete(classname + file)rescue nil}
- methods = methods.split("\n")
- methods.delete("")
- methods.each do |method|
- method.delete(" ")
- str = eval("object." + method) rescue eval(classname + method) rescue false
- if str == false
- error += "\n" + method
- elsif str.nil? or str.empty?
- null += "\n" + method
- else
- File.open(classname + "/" + method + ".txt", "wb") do |file|
- str = str.inspect
- file.write(str)
- sucsess += "\n" + method
- result[method] = str
- end
- end
- end
- print (error + "\n\n" + sucsess + "\n\n" + null)
- result.each {|key,value| print key + "\n\n" + value}
- end
复制代码
使用方法:read_class(实例)
example: read_class(Tilemap.new)
提取类中的方法等资料
也许可以用来分析RGSS内建类
Ruby手册研究中
根据Ruby手册貌似可以把方法转成实例,这样似乎能输出方法的定义了{/fd} |
|