Troubleshooting revIgniter library functions

Keith Clarke keith.clarke at me.com
Fri Nov 30 12:26:54 EST 2018


Thanks Ralf. Renaming the library got past that library load error. However, the view page is listing other errors, which may hint at other mistakes I’ve made.

The key page markup is below - I’d appreciate any advice.

**********************************************

The testlib.lc library content is just the prototype with a “Hello World” test return in the example handler...

<?rev
put gBASEPATH into gBASEPATH

if gBASEPATH is "gBASEPATH" then
	put "No direct script access allowed."
	exit to top
end if

# LOGGING
rigLogMessage "debug", "Your Library Loaded"

# DECLARE LOCAL VARIABLES


# PROTOTYPE OF THE FOLLOWING HANDLER NAME: rigRunInitialLibrarynameConfig
command rigRunInitialYourlibConfig
	--Run initial configuration procedures. Don't remove this handler, even if it does nothing.
end rigRunInitialYourlibConfig

command someHandler
	return "Hello World"
end someHandler

************************************************

The home.lc controller seeks to load the testlib library & add the "Hello World" return value to the global data array…

<?rev

# PUT ALL HANDLER NAMES WHICH ARE LIKELY TO SERVE AS URI SEGMENTS
# INTO THE GLOBAL gControllerHandlers AS A COMMA SEPARATED LIST
put "home,index" into gControllerHandlers

# WRITE INITIAL STATEMENTS INTO THE CONTROLLER HANDLER
command home
	# SAVE PAGE IN CACHE DIRECTORY WITH AN EXPIRATION TIME OF n MINUTES
	# NOTE: THIS IS NOT MANDATORY, DON'T USE CACHING WHILE WORKING ON THE CODE,
	# OTHERWISE YOU WON'T SEE YOUR CHANGES IMMEDIATELY
	rigOutputCache 3
	rigLoaderLoadLibrary "testlib"
	put somehandler() into gData["testlib"]
end home

# THIS COMMAND WILL BE CALLED IF NONE IS SPECIFIED IN THE URI
command index
	# REMEMBER TO PUT ALL THE VARIABLES TO BE MERGED WITH VIEWS INTO THE ARRAY VARIABLE gData
	# SET PAGE TITLE
	put "Welcome to the Knowledge Base" into gData["pageTitle"]
	
	put RIVERSION && RISTATE into gData["revIgniterVersion"]
	put the version into gData["serverVersion"]
	
	# LOAD THE VIEW FILE
	get rigLoadView("home")
end index

****************************************

The home view is a copy of the welcome.lc view with one line added to show the "Hello World” test

<p>[[gData["testlib"] ]]</p>

****************************************

The inline error list override of the view page may provide some clues (paths truncated with ‘…' ) ...
file “/.../system/application/config/autoload.lc"
file “/.../system/libraries/Controller.lc"
file “/.../system/libraries/Loader.lc"
file “/.../system/libraries/Language.lc"
file “/.../system/libraries/Output.lc"
file “/.../system/application/config/routes.lc"
file “/.../system/libraries/Input.lc"
file “/.../system/libraries/Router.lc"
file “/.../system/libraries/Config.lc"
file “/.../system/libraries/URI.lc"
file “/.../system/libraries/Log.lc"
file “/.../system/libraries/Hooks.lc"
file “/.../system/libraries/Benchmark.lc"
file “/.../system/application/config/config.lc"
file “/.../system/revigniter/Common.lc"
file “/.../system/application/config/constants.lc"
file “/.../system/revigniter/RevIgniter.lc"
file “/.../index.lc"
file “/.../system/application/config/config.lc"
  row 1822, col 1: Handler: can't find handler (rigRunInitialtestlibConfig)
  row 1823, col 1: do: error in statement (rigRunInitialtestlibConfig "")
  row 1823, col 1: if-then: error in statement
  row 1819, col 1: Handler: error in statement (_rigRiInitLibrary)
  row 1284, col 1: Handler: can't find handler (_rigRiInitLibrary)
  row 1284, col 1: repeat: error in statement
  row 1284, col 1: repeat: error in statement
  row 1187, col 1: Handler: error in statement (_rigLoadLibrary)
  row 106, col 1: Handler: can't find handler (_rigLoadLibrary)
  row 106, col 1: if-then: error in statement
  row 106, col 1: if-then: error in statement
  row 95, col 1: Handler: error in statement (rigLoaderLoadLibrary)
file “/.../system/revigniter/RevIgniter.lc"
  row 13, col 1: Handler: can't find handler (rigLoaderLoadLibrary)
  row 13, col 1: Handler: error in statement (home)
file “/.../system/application/controllers/home.lc"
  row 399, col 1: Handler: can't find handler (home)
  row 400, col 1: do: error in statement (home)
  row 400, col 1: if-then: error in statement
  row 400, col 1: if-then: error in statement
  row 387, col 1: Handler: error in statement (_rigDo)
  row 273, col 1: Handler: can't find handler (_rigDo)
file “/.../system/application/libraries/testlib.lc"
Best,
Keith

> On 30 Nov 2018, at 16:14, Ralf Bitter via use-livecode <use-livecode at lists.runrev.com> wrote:
> 
> Hi Keith,
> 
> if you change the name of your library to Testlib.lc
> and if you adjust the name in your controller respectively
> all should work as expected.
> There is a naming convention for library files, i.e.
> camel case is not allowed, but it seems this is not
> mentioned in the user guide.
> Sorry for the hassle. Will fix that.
> 
> 
> Ralf
> 
>> On 30. Nov 2018, at 15:23, Keith Clarke via use-livecode <use-livecode at lists.runrev.com> wrote:
>> 
>> Thanks Ralf (& Andre) for the responses.
>> 
>> I have read the user guide and understood more than I expected, given my basic HTML + jQuery + CSS background! I’ve also been learning more as I build my app out using user guide worked examples where they exist.
>> 
>> Thanks for the syntax for processing the response returned from the library - I know understand the central role of the controller page and how that call & response should work. 
>> 
>> Thanks also for the tip regarding the log, as that has proven more revealing… errors when attempting to load library files into any controllers.
>> 
>> Stripping back to basics, I have created a testLib.lc library file in the default system/application/libraries folder that contains just the prototype markup from the user guide.
>> 
>> My default controller is home.lc (copied from welcome.lc) which throws an error "Unable to load the requested library:Testlib” if I add 'rigLoaderLoadLibrary “testLib” ‘ to the home or index handler markup.
>> 
>> Any clues as to what I may have missed?  
>> Thanks
>> Keith
> 
> 
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode




More information about the use-livecode mailing list