深入理解轻量级资源与提供者(LWRP)及其内部机制
1. LWRP 资源定义中的属性验证与方法
在 LWRP 资源定义中,有一些重要的属性验证选项和方法值得关注。
- :respond_to 选项 :该选项允许指定某个属性必须具有特定的方法。例如,我们可以允许一个属性为实现了 to_s 方法的任何类,而无需将该属性限制为特定的类类型列表。这些验证选项作为参数用于 attribute 方法,示例如下:
attribute :working_dir, :kind_of => String, :default => "/tmp/awesomeator"
使用属性验证选项能让我们对允许赋予 LWRP 的属性进行大量控制,这样就无需在提供者中实现属性验证,因为资源中使用的属性验证选项会为我们完成此任务。
- attr_accessor 方法 :虽然它不是严格意义上的 LWRP 资源 DSL 的一部分,但在资源定义中经常使用。与本节列出的其他方法不同, attr_accessor 方法由 Ruby 本身定义。在 LWRP 中,当提供者可能需要对属性进行读写操作时,会频繁使用该方法。可以将对 attribute 方法的调用视为定义一个只读参数传递给提供者,而对 attr_accessor 方法的调用则定义了一个资源上的属性,提供者可以对其进行读写操作。
超级会员免费看
订阅专栏 解锁全文
2076

被折叠的 条评论
为什么被折叠?



