Project

General

Profile

Feature #27705 » support_gem_plugin.patch

Sho HASHIMOTO, 2017-12-02 13:25

View differences:

lib/redmine/plugin.rb
143 143
    end
144 144

  
145 145
    def self.load
146
      # load plugins from bundle installed gems.
147
      Gem.loaded_specs.each do |gem_name, gem_spec|
148
        initializer = File.join(gem_spec.full_gem_path, 'init.rb')
149
        is_redmine_plugin = true # TODO: detect redmine plugin
150
        if File.file?(initializer) && is_redmine_plugin
151
          # TODO: Set plugin.directory to gem root.
152
          require initializer
153

  
154
          # Make pointer to reduce confusing for redmine maintainer
155
          path = File.join(Redmine::Plugin.directory, gem_name)
156
          if !File.exists?(path)
157
            File.open(path, 'w') do |f|
158
              f.write(<<EOS)
159
This plugin was installed as gem wrote to Gemfile* instead of putting Redmine's plugin directory.
160
See #{gem_name} gem installed directory.
161
EOS
162
            end
163
          end
164
        end
165
      end
166

  
167
      # Keep current plugin loading method.
146 168
      Dir.glob(File.join(self.directory, '*')).sort.each do |directory|
147 169
        if File.directory?(directory)
148 170
          lib = File.join(directory, "lib")
(1-1/6)