加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 创建自定义Sprockets处理器的文档?

发布时间:2020-12-16 21:39:27 所属栏目:百科 来源:网络整理
导读:我正在为Rails创建一个链轮预处理器,在资源管道中找到.png.rb文件,并使用它们在我的应用程序中生成各种页面的png截图. 我已经阅读了这个主题,但似乎找不到任何简单的文档,如何获得这个设置.请帮助? 这是我到目前为止 /initializers/sprockets.rb: require
我正在为Rails创建一个链轮预处理器,在资源管道中找到.png.rb文件,并使用它们在我的应用程序中生成各种页面的png截图.

我已经阅读了这个主题,但似乎找不到任何简单的文档,如何获得这个设置.请帮助?

这是我到目前为止

/initializers/sprockets.rb:

require 'screenshot_preprocessor'

Rails.application.assets.register_mime_type('screenshot/png','.png.rb')
Rails.application.assets.register_preprocessor('screenshot/png',ScreenshotPreprocessor)

/lib/screenshot_preprocessor.rb:

class ScreenshotPreprocessor
  # What API do I need to provide here?
  #   - What methods do I need to provide?
  #   - What parameters does Sprockets pass me?
  #   - What do I need to return to Sprockets?
end

解决方法

好的,我仍然不知道在哪里可以找到文档.但是,通过阅读Sprockets的源代码,使用撬动调试器,并从与Sprockets完成类似操作的人员阅读博客帖子,我可以想出这一点:

/initializers/sprockets.rb:

require 'screenshot_generator'

Rails.application.assets.register_engine('.screenshot',ScreenshotGenerator)

/lib/screenshot_generator.rb:

require_relative 'capybara_screenshot' # Don't worry about this,it's not
                                       # relevant to this question.

class ScreenshotGenerator < Sprockets::Processor
  def evaluate(context,locals)
    generator_class = ScreenshotGenerator.get_generator_class(context.pathname)

    return generator_class.new.generate
  end

  private

  def self.get_generator_class(generator_file)
    # This evaluates the Ruby code in the given file and returns a class that
    # can generate a binary string containing an image file.
    # (Code omitted for brevity)
  end
end

这对我来说现在工作正常,但是我更希望看到一些关于Sprockets预处理器,后处理器和引擎如何工作的真实文档.如果有人发现任何这样的文件,请发表一个答案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读