[RGSS]RGStorage 1.00

2013 年 12 月 16 日

介绍

RGStorage实现了一个通用的存储类,统一接口,可以从以下实际或虚拟文件系统来读写文件资料

并可以通过可选的扩展来读写

同时在以上的基础上重定义了require方法,也可以混入Object,使它能像普通的Ruby的require一样工作,但不局限于require具体文件,比如:

基本用法:

把一个类似于文件路径的字符串叫做资源标识符(resource identifier, rsrc_id)。

因为可以通过RGStorage::Active来重新设定关联,以下的用法的举例与默认关联有关。

1.RGStorage.get rsrc_id

取得资源的内容

2. RGStorage.set rsrc_id, content

设置资源的内容

3. RGStorage.copyTo rsrc_id1, rsrc_id2

复制资源内容,相当于RGStorage.set(rsrc_id2, RGStorage.get(rsrc_id1))

基本设置:

默认设置是:

其中每一个设置的格式为,

[ 匹配条件, 文件系统, 转换器1, 转换器2, 转换器3,…]

匹配条件可以是正则表达式,范围,或者一个接受一个参数返回真假值的lambda/proc

文件系统是RGFileSystem类的实例,或者实现了get/set方法的对象,如果可以get/set一个rsrc_id,那么get/set的调用将返回一个lambda{|rsrc|}(get)或者lambda{|rsrc, content|}(set),否则应该返回nil,这是用来测试一个文件是否可读/可写

转换器也是实现了get/set方法的对象,或者RGFormatter类的实例,但get/set直接返回转换结果,比如MarshalFormatter的get方法是对输入(记为input)返回Marshal.load(input)的结果, 而set刚好相反。