I’d like to rewrite a plugin called paperclipped_assets that’s based on
paperclip and provides a central model keeping all attachments.
Unfortunately I need to require the class Attachment.rb of paperclip in
paperclipped_assets, which results in the following error
Is there something like a plugin_require which I could use to make
paperclipped_assets know the paperclip classes? Or do I have to join the
plugins to achieve this?
You shouldn’t need to do anything, beyond some documentation to remind
you (or others) that they need to install paperclip as well as your
plugin.
The lib directories of all plugins are available before any plugin’s
init.rb is evaluated, so your code should be able to refer to classes
in other plugins without having to do anything special. You could
certainly add a ‘require “attachment”’ statement somewhere in your
code, just to be explicit.
You shouldn’t need to do anything, beyond some documentation to remind
you (or others) that they need to install paperclip as well as your
plugin.
The lib directories of all plugins are available before any plugin’s
init.rb is evaluated, so your code should be able to refer to classes
in other plugins without having to do anything special. You could
certainly add a ‘require “attachment”’ statement somewhere in your
code, just to be explicit.
It’s not completely inconceivable that you might need paperclip to be
loaded first - if it ends being more than just requiring attachment.rb
you wouldn’t want to find yourself effectively rewriting paperclip’s
init.rb. If you explicitly name plugins then they are loaded in the
specified in that order eg
config.plugins = [:paperclip, :my_plugin]
maintaining such a list as you add plugins is annoying though (and I
found myself adding a new plugin and spending 5 minutes wondering why
it wasn’t working before remembering I hadn’t updated the list)
Luckily you can specify :all which represents all not explicitly named
plugins eg
config.plugins = [:all, :my_plugin] or
config.plugins = [:paperclip, :all]
Fred
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.