Removed old modpol/processes/ directory; processes now in modpol/orgs
This commit is contained in:
parent
2432633d55
commit
fe26d5322d
@ -1,121 +0,0 @@
|
||||
-- ===================================================================
|
||||
-- /processes.lua
|
||||
-- Process-related functions for Modular Politics
|
||||
-- Called by modpol.lua
|
||||
|
||||
-- ===================================================================
|
||||
-- modpol.processes, a high-level table of active processes
|
||||
-- Process table structure:
|
||||
-- [name]: unique name
|
||||
-- [org]: org
|
||||
-- [update_functions]: table of available update functions
|
||||
-- [state]: table of relevant data on the state of the function
|
||||
|
||||
modpol.processes = {}
|
||||
|
||||
|
||||
-- Function: modpol.list_processes
|
||||
-- output: a table of the names of processes
|
||||
function modpol.list_processes()
|
||||
local output = {}
|
||||
if modpol.processes then
|
||||
for k,v in ipairs(modpol.processes) do
|
||||
if v.name then
|
||||
table.insert(output,v.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
return output
|
||||
end
|
||||
|
||||
-- ===================================================================
|
||||
-- Function: modpol.register_process
|
||||
-- Adds a process to modpol.processes
|
||||
|
||||
-- ===================================================================
|
||||
-- Function: modpol.delegate_process
|
||||
-- Delegates a process from one org to another
|
||||
|
||||
-- ===================================================================
|
||||
-- Function: modpol.begin_process
|
||||
-- Params: user (string), org (string), action (string)
|
||||
-- Outputs: Checks the org for any policies related to a given action;
|
||||
-- Calls the modpol.initiate.* function(org) based on policy
|
||||
-- Defaults to modpol.initiate.consent()
|
||||
modpol.begin_process = function(user, org, action)
|
||||
if modpol.orgs[org]["policies"]
|
||||
and modpol.orgs[org]["policies"][routine] then
|
||||
-- check user org membership is satisfied
|
||||
-- register process
|
||||
-- start the appropriate process
|
||||
else
|
||||
-- register process (or does .initiate.* do that?)
|
||||
modpol.initiate.consent(org)
|
||||
end
|
||||
end
|
||||
|
||||
-- ===================================================================
|
||||
-- Function: modpol.update_process
|
||||
|
||||
-- ===================================================================
|
||||
-- Function: modpol.end_process
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- ===================================================================
|
||||
-- Basic decision functions
|
||||
-- ===================================================================
|
||||
|
||||
-- ===================================================================
|
||||
-- Function: modpol.consent
|
||||
-- Params: org (string), proposal (string)
|
||||
-- Outputs: boolean - true if consent achieved or false; nil on error
|
||||
-- Also includes a table of responses
|
||||
-- This is the default decision-making routine for Modular Politics
|
||||
-- Stops at the first "No" vote
|
||||
modpol.consent = function(org, query)
|
||||
-- Check that org exists
|
||||
if modpol.orgs[org] == nil then
|
||||
return nil, "Error: Org does not exist"
|
||||
end
|
||||
-- Poll all members
|
||||
local responses = {}
|
||||
for index, value in ipairs(modpol.orgs[org]["members"]) do
|
||||
local response = modpol.binary_poll_user(value, query)
|
||||
responses[value] = response
|
||||
if response == "No" then
|
||||
return false, responses
|
||||
end
|
||||
end
|
||||
return true, responses
|
||||
end
|
||||
|
||||
-- ===================================================================
|
||||
-- Function: modpol.approved
|
||||
-- A simple function for automatically approved processes
|
||||
-- Params: none
|
||||
-- Outputs: boolean - true
|
||||
modpol.approved = function()
|
||||
-- Check that org exists
|
||||
if modpol.orgs[org] == nil then
|
||||
return nil, "Error: Org does not exist"
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
-- ===================================================================
|
||||
-- Experimental
|
||||
-- ===================================================================
|
||||
|
||||
-- ===================================================================
|
||||
-- TKTK exploring modpol.initiate functions, which have no args
|
||||
-- Need to properly document these
|
||||
modpol.initiate = {}
|
||||
|
||||
modpol.initiate.consent = function(org)
|
||||
print("What is your query?")
|
||||
local query = io.read()
|
||||
return modpol.consent(org, query)
|
||||
end
|
Loading…
x
Reference in New Issue
Block a user