summaryrefslogtreecommitdiffstats
path: root/acf2/model
diff options
context:
space:
mode:
authorKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-02-20 14:24:56 +0200
committerKaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>2014-02-20 19:28:52 +0200
commit4cd12d27f2ddf5c5a65f43d544f3cc126b5d1d98 (patch)
treed6bb78eaf9e0c27e7642cdc3e1919cdb1762e847 /acf2/model
parent5a77f59e3bdecd583963ca3eac2a6774214a580d (diff)
downloadacf2-4cd12d27f2ddf5c5a65f43d544f3cc126b5d1d98.tar.bz2
acf2-4cd12d27f2ddf5c5a65f43d544f3cc126b5d1d98.tar.xz
model: accept '_' in place of '-' in field conditions and filters
Diffstat (limited to 'acf2/model')
-rw-r--r--acf2/model/field.lua14
-rw-r--r--acf2/model/model.lua10
2 files changed, 12 insertions, 12 deletions
diff --git a/acf2/model/field.lua b/acf2/model/field.lua
index a610b29..dbd98eb 100644
--- a/acf2/model/field.lua
+++ b/acf2/model/field.lua
@@ -43,13 +43,15 @@ function M.Member:meta(context)
end
+function M.normalize_name(name) return name:gsub('_', '-') end
+
function M.conv_filter(filter)
- return filter and map(
- function(values)
- return type(values) == 'table' and values or {values}
- end,
- filter
- ) or nil
+ if not filter then return end
+ local res = {}
+ for k, v in pairs(filter) do
+ res[M.normalize_name(k)] = type(v) == 'table' and v or {v}
+ end
+ return res
end
diff --git a/acf2/model/model.lua b/acf2/model/model.lua
index 2472a3c..55fe95f 100644
--- a/acf2/model/model.lua
+++ b/acf2/model/model.lua
@@ -11,6 +11,7 @@ local fld = require('acf2.model.field')
local Field = fld.Field
local Member = fld.Member
local Model = fld.Model
+local normalize_name = fld.normalize_name
local node = require('acf2.model.node')
local BoundMember = node.BoundMember
@@ -45,9 +46,6 @@ function M.to_field(obj, params)
end
-local function normalize_key(key) return key:gsub('_', '-') end
-
-
M.Action = class(Member)
function M.Action:init(params)
@@ -87,7 +85,7 @@ function M.new(base)
function mt.__newindex(t, k, v)
assert(v)
- k = normalize_key(k)
+ k = normalize_name(k)
local override = t[k]
if type(v) == 'table' then v = to_member(v) end
@@ -145,7 +143,7 @@ function M.Model:init(context)
function mt.load(k, options)
local v = mt.class[k]
- k = normalize_key(k)
+ k = normalize_name(k)
if not v then v = mt.class[k] end
if isinstance(v, Field) then
@@ -185,7 +183,7 @@ function M.Model:init(context)
function mt.mmeta(name) return mt.member(name):meta() end
function mt.save(k, v)
- k = normalize_key(k)
+ k = normalize_name(k)
mt.check_removable(k, v)
return mt.member(k, false, Field):save(v)
end