vanstyn / RapidApp

Turnkey ajaxy webapps
http://rapi.io
Other
48 stars 15 forks source link

Some of the lib/ modules do not load standalone, but they should #156

Open ribasushi opened 9 years ago

ribasushi commented 9 years ago

Running the following emits a number of weird exceptions (ignoring deprecations):

rabbit@Ahasver:~/devel/rapidapp$ find lib/ -name '*.pm' -exec perl -Ilib -e '
  (my $mod = substr(q({}), 4, -3 )) =~ s!/!::!g;
  eval "require $mod" or print "\n\n\nLoading $mod failed:\n$@\n"
' \; 2>/dev/null
Loading RapidApp::Module failed:
The method 'apply_init_modules' was not found in the inheritance hierarchy for RapidApp::RootModule at /home/rabbit/perl5/perlbrew/perls/5.16.2/lib/site_perl/5.16.2/x86_64-linux-thread-multi-ld/Moose/Exporter.pm line 419
    Moose::around('apply_init_modules', 'CODE(0x27aaaf8)') called at lib/RapidApp/RootModule.pm line 50
    require RapidApp/RootModule.pm at lib/RapidApp/Util.pm line 61
    RapidApp::Util::BEGIN at lib/RapidApp/RootModule.pm line 0
    eval {...} at lib/RapidApp/RootModule.pm line 0
    require RapidApp/Util.pm at lib/RapidApp/JSONFunc.pm line 10
    RapidApp::JSONFunc::BEGIN at lib/RapidApp/RootModule.pm line 0
    eval {...} at lib/RapidApp/RootModule.pm line 0
    require RapidApp/JSONFunc.pm at lib/RapidApp/Module.pm line 18
    RapidApp::Module::BEGIN at lib/RapidApp/RootModule.pm line 0
    eval {...} at lib/RapidApp/RootModule.pm line 0
    require RapidApp/Module.pm at (eval 1) line 2
    eval 'require RapidApp::Module
;' at -e line 3
Loading RapidApp::Template::Context failed:
Bareword "Template::Constants::ERROR_PLUGIN" not allowed while "strict subs" in use at lib/RapidApp/Template/Context.pm line 213.
Compilation failed in require at (eval 1) line 2.
Loading RapidApp::Template::Provider failed:
Bareword "Template::Constants::STATUS_ERROR" not allowed while "strict subs" in use at lib/RapidApp/Template/Provider.pm line 200.
Compilation failed in require at (eval 1) line 2.

Generally things should be loadable on their own, it avoids a whole class of difficult-to-track load-order bugs.