The boss‘s mission:
写一个类宏,功能与attr_accessor类似,但会创建经过校验的属性,名字attr_checked。
需求:
- 接受属性名,和block。block用于校验属性,如果对一个属性赋值,非true就报错。
- 只给特定的类用,所以不要放到标准库中。只有当类加了CheckedAttributes模块,才拥有这个功能。
A Development Plan:
开发计划:
- 使用eval方法快速编写内核方法add_checked_attribute,用来为类添加一个校验属性。
- 重构这个方法,不用eval.
- 通过代码块来校验属性。
- 把这个方法修改为名为attr_checked的类宏,让它对所有类可用。
- 写一个模块,通过hook method为指定的类添加attr_checked方法。