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预处理器,后处理器和引擎如何工作的真实文档.如果有人发现任何这样的文件,请发表一个答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- JSONModel解析数据成Model
- c# – 将memorystream对象序列化为字符串
- Flex DateField TypeError 1009 stringToDate 异常解决
- ruby-on-rails – 如何使用Rails通过Web服务以JSON格式公开
- c – 存储在堆栈/堆变量的内存中的变量/引用名称或类型在哪
- react-native – 域错误 – _constructor必须是’function’
- 学会使用C#异常
- c# – 在MonoTouch.Dialog上,EntryElement可以是多行吗?
- 正则表达式总结(\nml,\nm,\un,\xn/i等等
- c – 编译器错误:“无法使用初始化列表初始化非聚合.”