| rev | line source | 
| jbe@324 | 1 --[[-- | 
| jbe@324 | 2 translated_string =             -- translated string | 
| jbe@324 | 3 _( | 
| jbe@324 | 4   string_to_translate,          -- string to translate | 
| jbe@324 | 5   { | 
| jbe@324 | 6     placeholder_name1 = text1,  -- replace all occurrences of "#{placeholder_name1}" with the string text1 | 
| jbe@324 | 7     placeholder_name2 = text2,  -- replace all occurrences of "#{placeholder_name2}" with the string text2 | 
| jbe@324 | 8     ... | 
| jbe@324 | 9   } | 
| jbe@324 | 10 ) | 
| jbe@324 | 11 | 
| jbe@325 | 12 Translation function for localization. The "_" function translates a given string to the currently selected language (see locale.set{...}). If the translated string contains placeholders in the form #{name}, then those placeholders may be automatically replaced with a corresponding substring which is taken from the table passed as optional second argument. | 
| jbe@325 | 13 | 
| jbe@325 | 14 Hint: Lua's syntax rules allow to write _"text" as a shortcut for _("text"), or _'text' instead of _('text') respectivly. | 
| jbe@324 | 15 | 
| jbe@324 | 16 --]]-- | 
| jbe@324 | 17 | 
| jbe@324 | 18 function _G._(text, replacements) | 
| jbe/bsw@0 | 19   local text = locale._get_translation_table()[text] or text | 
| jbe/bsw@0 | 20   if replacements then | 
| jbe/bsw@0 | 21     return ( | 
| jbe/bsw@0 | 22       string.gsub( | 
| jbe/bsw@0 | 23         text, | 
| jbe/bsw@0 | 24         "#{(.-)}", | 
| jbe/bsw@0 | 25         function (placeholder) | 
| jbe/bsw@0 | 26           return replacements[placeholder] | 
| jbe/bsw@0 | 27         end | 
| jbe/bsw@0 | 28       ) | 
| jbe/bsw@0 | 29     ) | 
| jbe/bsw@0 | 30   else | 
| jbe/bsw@0 | 31     return text | 
| jbe/bsw@0 | 32   end | 
| jbe/bsw@0 | 33 end | 
| jbe@324 | 34 --//-- | 
| jbe@203 | 35 | 
| jbe@203 | 36 --[[-- | 
| jbe@203 | 37 cloned_table =  -- newly generated table | 
| jbe@203 | 38 table.new( | 
| jbe@203 | 39   table_or_nil  -- keys of a given table will be copied to the new table | 
| jbe@203 | 40 ) | 
| jbe@203 | 41 | 
| jbe@203 | 42 If a table is given, then a cloned table is returned. | 
| jbe@203 | 43 If nil is given, then a new empty table is returned. | 
| jbe@203 | 44 | 
| jbe@203 | 45 --]]-- | 
| jbe@203 | 46 function table.new(tbl) | 
| jbe@240 | 47   local new_tbl = {} | 
| jbe@203 | 48   if tbl then | 
| jbe@203 | 49     for key, value in pairs(tbl) do | 
| jbe@203 | 50       new_tbl[key] = value | 
| jbe@203 | 51     end | 
| jbe@203 | 52   end | 
| jbe@203 | 53   return new_tbl | 
| jbe@203 | 54 end | 
| jbe@203 | 55 --//-- | 
| jbe@203 | 56 | 
| jbe@495 | 57 --[[-- | 
| jbe@495 | 58 table.insert( | 
| jbe@495 | 59   t,           -- table | 
| jbe@495 | 60   index,       -- optional index | 
| jbe@495 | 61   value        -- value | 
| jbe@495 | 62 ) | 
| jbe@495 | 63 | 
| jbe@495 | 64 Custom implementation of Lua's table.insert(...) where table.insert(table, value) also respects metamethods in Lua 5.2 (this behavior is already supported by Lua 5.3). | 
| jbe@495 | 65 | 
| jbe@495 | 66 --]]-- | 
| jbe@498 | 67 if _VERSION == "Lua 5.2" then | 
| jbe@495 | 68   local old_insert = table.insert | 
| jbe@495 | 69   function table.insert(...) | 
| jbe@498 | 70     if select("#", ...) == 2 then | 
| jbe@495 | 71       local t, value = ... | 
| jbe@495 | 72       t[#t+1] = value | 
| jbe@495 | 73       return | 
| jbe@495 | 74     end | 
| jbe@495 | 75     return old_insert(...) | 
| jbe@495 | 76   end | 
| jbe@495 | 77 end | 
| jbe@495 | 78 --//-- | 
| jbe@495 | 79 | 
| jbe@352 | 80 -- load libraries | 
| jbe@352 | 81 -- (except "extos", which has to be loaded earlier, and "multirand", which must be loaded after forking) | 
| jbe@324 | 82 _G.nihil       = require 'nihil' | 
| jbe@324 | 83 _G.mondelefant = require 'mondelefant' | 
| jbe@324 | 84 _G.atom        = require 'atom' | 
| jbe@324 | 85 _G.json        = require 'json' | 
| jbe@203 | 86 require 'mondelefant_atom_connector' | 
| jbe@286 | 87 -- NOTE: "multirand" library is loaded in mcp.lua after forking | 
| jbe@203 | 88 | 
| jbe@295 | 89 -- setup mondelefant | 
| jbe@295 | 90 mondelefant.connection_prototype.error_objects = true | 
| jbe@295 | 91 function mondelefant.connection_prototype:sql_tracer(command) | 
| jbe@295 | 92   if trace.is_disabled() then | 
| jbe@295 | 93     return | 
| jbe@295 | 94   end | 
| jbe@295 | 95   local start_time = extos.monotonic_hires_time() | 
| jbe@295 | 96   return function(error_info) | 
| jbe@295 | 97     trace.sql{ | 
| jbe@295 | 98       command        = command, | 
| jbe@295 | 99       execution_time = extos.monotonic_hires_time() - start_time, | 
| jbe@295 | 100       error_position = error_info and error_info.position or nil | 
| jbe@295 | 101     } | 
| jbe@295 | 102   end | 
| jbe@295 | 103 end | 
| jbe@295 | 104 | 
| jbe@206 | 105 --[[-- | 
| jbe@206 | 106 config  -- table to store application configuration | 
| jbe@206 | 107 | 
| jbe@206 | 108 'config' is a global table, which can be modified by a config file of an application to modify the behaviour of that application. | 
| jbe@206 | 109 --]]-- | 
| jbe@324 | 110 _G.config = {} | 
| jbe@206 | 111 --//-- | 
| jbe@206 | 112 |