gpt4 book ai didi

ruby - 从 ruby​​ 模块调用 FaSTLane 操作

转载 作者:行者123 更新时间:2023-12-03 14:37:31 25 4
gpt4 key购买 nike

我正在尝试使用我在 Fastfile 中使用的一些辅助函数制作一个 ruby​​ 模块。它看起来如下:

lane :a do |options|
Utils.foo
end

module Utils
def self.foo
get_info_plist_value(...)
end
end
当我尝试运行车道时,我收到此错误: undefined method 'get_info_plist_value' for Utils:Module .
我尝试了以下方法来解决这个问题:
  • 添加 extend Utils模块定义后
  • 包括FastlaneFastlane::Actions进入模块

  • 这些对我没有帮助。
    还有其他方法可以解决问题吗?

    最佳答案

    我有一个这样的工具可以使用依赖注入(inject)来工作:

    lane :a do |options|
    Utils.call(self)
    end

    module Utils
    def initialize(lane)
    @lane = lane
    end

    def self.call(lane)
    new.execute(lane)
    end

    def execute
    @lane.get_info_plist_value(...)
    end
    end
    如果您查看声明的“车道”(例如 :a )的解剖结构,每个 Action (如 get_info_plist_value )都在 Fastlane::Lane's 内执行 block ,由 Fastfile 实例化.
    尽管可能,但应谨慎使用编写调用 FaSTLane 操作的实用程序。这似乎完全超出了 FaSTLane 的预期用途。我认为处理此类事情的“正确”方法实际上是 write a custom action (有点冗长,但可能是更易于维护的选项)。
    俗话说“不和框架争”!

    关于ruby - 从 ruby​​ 模块调用 FaSTLane 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64643712/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com