diff options
author | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-01-17 14:47:54 +0200 |
---|---|---|
committer | Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi> | 2014-01-17 15:34:53 +0200 |
commit | c0be1f26ec77439770ded5482142f1e3237eb4e6 (patch) | |
tree | 50d021ee38e980e4e9fbcb05177ca99b665029ed /acf2/model/model.lua | |
parent | 1ea210d97969bc8da465c0f35b2abd3678af08e3 (diff) | |
download | aconf-0.2.1.tar.bz2 aconf-0.2.1.tar.xz |
model: make '_' and '-' interchangeable in model field namesv0.2.1
Diffstat (limited to 'acf2/model/model.lua')
-rw-r--r-- | acf2/model/model.lua | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/acf2/model/model.lua b/acf2/model/model.lua index 6ff398a..2472a3c 100644 --- a/acf2/model/model.lua +++ b/acf2/model/model.lua @@ -45,6 +45,9 @@ 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) @@ -84,6 +87,7 @@ function M.new(base) function mt.__newindex(t, k, v) assert(v) + k = normalize_key(k) local override = t[k] if type(v) == 'table' then v = to_member(v) end @@ -141,6 +145,8 @@ function M.Model:init(context) function mt.load(k, options) local v = mt.class[k] + k = normalize_key(k) + if not v then v = mt.class[k] end if isinstance(v, Field) then return BoundMember(self, k, v):load(options) @@ -179,6 +185,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) mt.check_removable(k, v) return mt.member(k, false, Field):save(v) end |