diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-20 14:24:56 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-02-20 19:28:52 +0200 |
commit | 4cd12d27f2ddf5c5a65f43d544f3cc126b5d1d98 (patch) | |
tree | d6bb78eaf9e0c27e7642cdc3e1919cdb1762e847 /acf2/model | |
parent | 5a77f59e3bdecd583963ca3eac2a6774214a580d (diff) | |
download | acf2-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.lua | 14 | ||||
-rw-r--r-- | acf2/model/model.lua | 10 |
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 |