Closed mboremski closed 1 year ago
Hint from @liaham -> Zeitwerk changed some things on loading files. So I tried some changes
init.rb
- require_dependency 'redmine_workload'
+ require File.dirname(__FILE__) + '/lib/redmine_workload'
lib/redmine_workload.rb
- require 'redmine_workload/extensions/user_patch'
- require 'redmine_workload/group_workload_preparer'
- require 'redmine_workload/user_workload_preparer'
- require 'redmine_workload/wl_csv_exporter'
- require 'redmine_workload/wl_date_tools'
- require 'redmine_workload/wl_issue_query'
- require 'redmine_workload/wl_user_data_finder'
- require 'redmine_workload/wl_user_data_defaults'
+ require File.dirname(__FILE__) + '/redmine_workload/extensions/user_patch'
+ require File.dirname(__FILE__) + '/redmine_workload/group_workload_preparer'
+ require File.dirname(__FILE__) + '/redmine_workload/user_workload_preparer'
+ require File.dirname(__FILE__) + '/redmine_workload/wl_csv_exporter'
+ require File.dirname(__FILE__) + '/redmine_workload/wl_date_tools'
+ require File.dirname(__FILE__) + '/redmine_workload/wl_issue_query'
+ require File.dirname(__FILE__) + '/redmine_workload/wl_user_data_finder'
+ require File.dirname(__FILE__) + '/redmine_workload/wl_user_data_defaults'
They now lead too:
Zeitwerk::NameError: expected file /opt/redmine-5.0/plugins/redmine_workload/lib/redmine_workload/group_workload_preparer.rb to define constant RedmineWorkload::GroupWorkloadPreparer, but didn't
You need also wrap all classes and modules in lib/redmine_workload/
with a 'namespace' - module named RedmineWorkload
if not already done.
Calling the respective modules and classes throughout the code needs also to be adjusted by using RedmineWorkload::<class_or_module_name_here>
.
Please make sure that all tests run as expected and rubocop won't complain offences.
Hello @liaham , can you be more specific on "calling respective classes & modules " in code ? being a non ruby person , i having a hard time what to "look & replace " in the code. Is there any progress on making this fine plugin RM5.x ready ?
Hi @Astral-ator ,
Let's assume you have the following module in your Redmine Plugin lib
directory:
# lib/my_plugin/my_utility_module.rb
module MyUtilityModule
def self.my_utility_method
# your code here
end
end
When you called the method in Redmine 4 like this: MyUtilityModule.my_utility_method
and you have wrapped the module for Redmine 5 into a namespace corresponding to the file path like so:
# lib/my_plugin/my_utility_module.rb
module MyPlugin
module MyUtilityModule
def self.my_utility_method
# your code here
end
end
end
then you need to use the module in Redmine 5 this way: MyPlugin::MyUtilityModule.my_utility_method
.
That is what I tried to explain above.
Hope it helps. :)
Best Regards, liaham
Is there any progress on making this fine plugin RM5.x ready ?
We had some time to test a newer version that is ready for redmine5.x Will Realease it soon. Maybe already this week.
Installing this plugin in redmine 5.0 leads to
LoadError: cannot load such file -- redmine_workload
Enviroment
Full cmd-log
run
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
leads to