| 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@324 | 12 Translation function for internationalization. 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@324 | 13 | 
| jbe@324 | 14 --]]-- | 
| jbe@324 | 15 | 
| jbe@324 | 16 function _G._(text, replacements) | 
| jbe/bsw@0 | 17   local text = locale._get_translation_table()[text] or text | 
| jbe/bsw@0 | 18   if replacements then | 
| jbe/bsw@0 | 19     return ( | 
| jbe/bsw@0 | 20       string.gsub( | 
| jbe/bsw@0 | 21         text, | 
| jbe/bsw@0 | 22         "#{(.-)}", | 
| jbe/bsw@0 | 23         function (placeholder) | 
| jbe/bsw@0 | 24           return replacements[placeholder] | 
| jbe/bsw@0 | 25         end | 
| jbe/bsw@0 | 26       ) | 
| jbe/bsw@0 | 27     ) | 
| jbe/bsw@0 | 28   else | 
| jbe/bsw@0 | 29     return text | 
| jbe/bsw@0 | 30   end | 
| jbe/bsw@0 | 31 end | 
| jbe@324 | 32 --//-- | 
| jbe@203 | 33 | 
| jbe@203 | 34 --[[-- | 
| jbe@203 | 35 cloned_table =  -- newly generated table | 
| jbe@203 | 36 table.new( | 
| jbe@203 | 37   table_or_nil  -- keys of a given table will be copied to the new table | 
| jbe@203 | 38 ) | 
| jbe@203 | 39 | 
| jbe@203 | 40 If a table is given, then a cloned table is returned. | 
| jbe@203 | 41 If nil is given, then a new empty table is returned. | 
| jbe@203 | 42 | 
| jbe@203 | 43 --]]-- | 
| jbe@203 | 44 function table.new(tbl) | 
| jbe@240 | 45   local new_tbl = {} | 
| jbe@203 | 46   if tbl then | 
| jbe@203 | 47     for key, value in pairs(tbl) do | 
| jbe@203 | 48       new_tbl[key] = value | 
| jbe@203 | 49     end | 
| jbe@203 | 50   end | 
| jbe@203 | 51   return new_tbl | 
| jbe@203 | 52 end | 
| jbe@203 | 53 --//-- | 
| jbe@203 | 54 | 
| jbe@286 | 55 -- load libraries (except "multirand", which must be loaded after forking) | 
| jbe@324 | 56 _G.extos       = require 'extos' | 
| jbe@324 | 57 _G.nihil       = require 'nihil' | 
| jbe@324 | 58 _G.mondelefant = require 'mondelefant' | 
| jbe@324 | 59 _G.atom        = require 'atom' | 
| jbe@324 | 60 _G.json        = require 'json' | 
| jbe@203 | 61 require 'mondelefant_atom_connector' | 
| jbe@286 | 62 -- NOTE: "multirand" library is loaded in mcp.lua after forking | 
| jbe@203 | 63 | 
| jbe@295 | 64 -- setup mondelefant | 
| jbe@295 | 65 mondelefant.connection_prototype.error_objects = true | 
| jbe@295 | 66 function mondelefant.connection_prototype:sql_tracer(command) | 
| jbe@295 | 67   if trace.is_disabled() then | 
| jbe@295 | 68     return | 
| jbe@295 | 69   end | 
| jbe@295 | 70   local start_time = extos.monotonic_hires_time() | 
| jbe@295 | 71   return function(error_info) | 
| jbe@295 | 72     trace.sql{ | 
| jbe@295 | 73       command        = command, | 
| jbe@295 | 74       execution_time = extos.monotonic_hires_time() - start_time, | 
| jbe@295 | 75       error_position = error_info and error_info.position or nil | 
| jbe@295 | 76     } | 
| jbe@295 | 77   end | 
| jbe@295 | 78 end | 
| jbe@295 | 79 | 
| jbe@206 | 80 --[[-- | 
| jbe@206 | 81 config  -- table to store application configuration | 
| jbe@206 | 82 | 
| jbe@206 | 83 '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 | 84 --]]-- | 
| jbe@324 | 85 _G.config = {} | 
| jbe@206 | 86 --//-- | 
| jbe@206 | 87 |