我希望动态地为ruby中的变量添加约束。我正在从一个文件中读取一个基本的类规范,该文件定义了类名,属性和有关属性的任何约束。例如,它可能是:
Class: Car
Attributes: model, String
Attributes: price, Fixnum
Constraint: model, model != nil
Constraint: price, price > 0
所以我编写了以下创建类的行,以及属性的attr_accessors: -
eval('class ClassName; attr_accessor:var_1; def test() puts "Test class"; end end')
但有没有人对添加约束有任何建议?我不确定是否比attr_accessors更好地拥有可以附加约束的完整getter / setter方法?
编辑:应该为ruby添加非常新的,并且几乎是自学,所以请纠正任何愚蠢的错误或错误的想法。
答案 0 :(得分:0)
我为你的需要写了一个非常未经抛光的宝石:class_builder。 它不安全(容易受到代码注入)并且可能是错误的,我不会支持它。只是对你有所了解。
请参阅测试以了解其用法。