--- /dev/null
+package.path = "lua_modules/share/lua/5.1/?.lua;lua_modules/share/lua/5.1/?/init.lua;" .. package.path
+package.cpath = "lua_modules/lib/lua/5.1/?.so;" .. package.cpath
+
+local inifile = require "inifile"
+local serpent = require "serpent"
+
+function love.conf(t)
+ local data = inifile.parse("test.ini")
+
+ t.window.title = data.app.title or ""
+ t.window.width = data.app.width or 800
+ t.window.height = data.app.height or 600
+end
--- /dev/null
+package.path = "lua_modules/share/lua/5.1/?.lua;lua_modules/share/lua/5.1/?/init.lua;" .. package.path
+package.cpath = "lua_modules/lib/lua/5.1/?.so;" .. package.cpath
+
+local inifile = require "inifile"
+local serpent = require "serpent"
+require "xmlrpc.http"
+
+local ui = require "ui"
+local rpc = require "rpc"
+
+local app = nil
+local value = 0
+
+function love.load()
+ app = rpc.XMLRPCWrapper "http://localhost:8000/RPC2"
+
+ ui.register_component "test" {
+ test = function() end
+ }
+
+ value = app.get()
+
+ local data = inifile.parse("test.ini")
+ print(serpent.block(data))
+
+ local info = app.get_some_info()
+ for k, v in pairs(info) do print(k, v) end
+end
+
+
+local last_down = false
+function love.update(dt)
+ if love.keyboard.isDown "escape" then
+ love.event.quit()
+ end
+
+
+ local down = love.keyboard.isDown "space"
+ if down and not last_down then
+ value = app.add_and_get()
+ end
+
+ last_down = down
+end
+
+function love.draw()
+ love.graphics.print("Hello, World! " .. tostring(value), 100, 100)
+end
--- /dev/null
+
+require "xmlrpc.http"
+
+module (..., package.seeall)
+
+function XMLRPCWrapper(rpc_host)
+ local o = { }
+ setmetatable(o, {
+ __index = function(t, func_name)
+ return function(...)
+ local status, ok, res = pcall(xmlrpc.http.call, rpc_host, func_name, ...)
+
+ if not status then
+ print("RPC failed on " .. func_name)
+ print(ok)
+ end
+
+ return res
+ end
+ end;
+ })
+
+ return o
+end
--- /dev/null
+../test.ini
\ No newline at end of file
--- /dev/null
+
+local print = print
+
+local components = {}
+local function component_lookup(type_, name)
+ if not components[type_] then
+ error("Component " .. type_ .. " not found.")
+ end
+
+ if type(components[type_][name]) == "function" then
+ return components[type_][name]
+ end
+
+ if components[type_].extends then
+ local l = component_lookup(components[type_].extends, name)
+ if l then return l end
+ return false
+ end
+
+ return false
+end
+
+module(...)
+
+function register_component(name)
+ if components[name] ~= nil then
+ error("Component with name " .. name .. " already registered")
+ end
+
+ return function(component)
+ components[name] = component
+ end
+end
package = "pagos"
-version = "alpha0.0.1"
+version = "dev-1"
source = {
url = "*** please add URL for source tarball, zip or repository here ***"
}
"docs"
}
}
+dependencies = {
+ "inifile ~> 1.0",
+ "serpent ~> 0.28",
+ "luaxmlrpc ~> 1.2",
+}
--- /dev/null
+[server]
+host=0.0.0.0
+port=9243
+
+[app]
+title=Ice Shack Application
+width=800
+height=480
+
print("Sum: " .. app.sum({ 1, 2, 3, 4, 5 }))
+print("Primes")
local primes = app.get_some_primes()
for key, prime in ipairs(primes) do
print(prime[1], prime[2])
end
+
+print("Squares")
+local nums = { 1, 2, 3, 4, 5, 6, 7, 8 }
+for key, value in ipairs(app.square_some_numbers(nums)) do
+ print(key, value)
+end
from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
-class RequestHandler(SimpleXMLRPCRequestHandler):
- rpc_paths = ('/RPC2',)
-
class SomeState:
def __init__(self):
self.number = 0
+ def get(self):
+ return self.number
+
def add_and_get(self):
self.number += 1
return self.number
-with SimpleXMLRPCServer(('localhost', 8000), requestHandler=RequestHandler) as server:
+with SimpleXMLRPCServer(
+ ('localhost', 8000),
+ requestHandler=SimpleXMLRPCRequestHandler) as server:
server.register_introspection_functions()
@server.register_function()
def get_some_primes():
return [ (1, 2), (2, 3), (3, 5), (4, 7), (5, 11), (6, 13) , (7, 17) ]
+ @server.register_function()
+ def square_some_numbers(numbers):
+ if type(numbers) is dict:
+ numbers = numbers.values()
+
+ res = []
+ for x in numbers:
+ res.append(x * x)
+ return res
+
+ @server.register_function()
+ def get_some_info():
+ return {
+ "name": "Joe",
+ "age": 39,
+ "height": 100,
+ }
+
server.register_instance(SomeState())
server.serve_forever()