【问题标题】:Chef LWRP referencing relative resourceChef LWRP 引用相关资源
【发布时间】:2017-06-13 00:32:06
【问题描述】:

我正在尝试创建一个 LWRP 来扩展超市食谱“webpshere”。

在我的资源文件中,我正在尝试使用父食谱中的基类来扩展此类。

在下面的代码中,'WebsphereBase' 在父库'websphere_base' 中定义。我可以就如何引用它获得帮助吗? 谢谢

    #require 'websphere_base'
    module PIWebsphereCookBook
    class WebsphereJbdc < WebsphereBase
    require_relative 'helper'

【问题讨论】:

    标签: ruby chef-infra chef-recipe


    【解决方案1】:

    在source of the cookbook中可以看到WebsphereBase类是在WebsphereCookbook模块内部定义的。

    要从这个模块外部引用这个类,你必须命名嵌套,以便 Ruby 能够找到你所引用的类。在您的示例中,这可能类似于:

    module PIWebsphereCookBook
      class WebsphereJbdc < WebsphereCookbook::WebsphereBase
        require_relative 'helper'
        # ...
      end
    end
    

    【讨论】:

      【解决方案2】:

      你不需要来自上游食谱的东西,你也不能(除了我的怪人食谱)。您所依赖的所有食谱库都将在您的库文件运行时加载。

      【讨论】:

      • 对不起,我没有得到你的建议。在这里,我试图扩展行为(添加未处理的“jdbc”),因此扩展了 WebsphereBase 类以重用函数。在另一种情况下 - 我能够访问这些库(猜想它与您的建议相同)并且我只是使用它,如下所示。模块 ArtifactClientCookbook 模块 Helper 需要 'artifactory' 包含 Artifactory::Resource
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多