动态地向ruby

时间:2015-05-17 11:41:55

标签: ruby dynamic instance-variables

我希望动态地为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添加非常新的,并且几乎是自学,所以请纠正任何愚蠢的错误或错误的想法。

1 个答案:

答案 0 :(得分:0)

我为你的需要写了一个非常未经抛光的宝石:class_builder。 它不安全(容易受到代码注入)并且可能是错误的,我不会支持它。只是对你有所了解。

请参阅测试以了解其用法。