diff --git a/spec/dupekey_spec.lua b/spec/dupekey_spec.lua index d9990a5..7ac543a 100644 --- a/spec/dupekey_spec.lua +++ b/spec/dupekey_spec.lua @@ -1,7 +1,3 @@ --- .vscode/settings.json << --- "Lua.workspace.library": { --- "C:\\ProgramData\\chocolatey\\lib\\luarocks\\luarocks-2.4.4-win32\\systree\\share\\lua\\5.1": true --- }, local busted = require 'busted' local assert = require 'luassert' local yaml = require 'tinyyaml' @@ -66,4 +62,4 @@ busted.describe("duplicate keys", function() ) end) end) -end) \ No newline at end of file +end) diff --git a/spec/empty_spec.lua b/spec/empty_spec.lua new file mode 100644 index 0000000..5712455 --- /dev/null +++ b/spec/empty_spec.lua @@ -0,0 +1,23 @@ +-- .vscode/settings.json << +-- "Lua.workspace.library": { +-- "C:\\ProgramData\\chocolatey\\lib\\luarocks\\luarocks-2.4.4-win32\\systree\\share\\lua\\5.1": true +-- }, +local busted = require 'busted' +local assert = require 'luassert' +local yaml = require 'tinyyaml' + +busted.describe("empty", function() + + busted.it("empty:", function() + assert.same( + nil, + yaml.parse([[]]) + ) + assert.same( + nil, + yaml.parse([[ + #END + ]]) + ) + end) +end) diff --git a/spec/example_spec.lua b/spec/example_spec.lua index 5e530c5..a889f23 100644 --- a/spec/example_spec.lua +++ b/spec/example_spec.lua @@ -1,7 +1,3 @@ --- .vscode/settings.json << --- "Lua.workspace.library": { --- "C:\\ProgramData\\chocolatey\\lib\\luarocks\\luarocks-2.4.4-win32\\systree\\share\\lua\\5.1": true --- }, local busted = require 'busted' local assert = require 'luassert' local yaml = require 'tinyyaml' diff --git a/spec/map_spec.lua b/spec/map_spec.lua index 6f64bb6..811f460 100644 --- a/spec/map_spec.lua +++ b/spec/map_spec.lua @@ -1,7 +1,3 @@ --- .vscode/settings.json << --- "Lua.workspace.library": { --- "C:\\ProgramData\\chocolatey\\lib\\luarocks\\luarocks-2.4.4-win32\\systree\\share\\lua\\5.1": true --- }, local busted = require 'busted' local assert = require 'luassert' local yaml = require 'tinyyaml' @@ -58,7 +54,7 @@ busted.describe("map", function() }, yaml.parse([[ a: - - b: + - b: c: 1 ]]) ) diff --git a/spec/seq_spec.lua b/spec/seq_spec.lua index b4899a2..64b58f6 100644 --- a/spec/seq_spec.lua +++ b/spec/seq_spec.lua @@ -1,7 +1,3 @@ --- .vscode/settings.json << --- "Lua.workspace.library": { --- "C:\\ProgramData\\chocolatey\\lib\\luarocks\\luarocks-2.4.4-win32\\systree\\share\\lua\\5.1": true --- }, local busted = require 'busted' local assert = require 'luassert' local yaml = require 'tinyyaml' diff --git a/spec/string_spec.lua b/spec/string_spec.lua index 2b254de..fc90cf3 100644 --- a/spec/string_spec.lua +++ b/spec/string_spec.lua @@ -1,7 +1,3 @@ --- .vscode/settings.json << --- "Lua.workspace.library": { --- "C:\\ProgramData\\chocolatey\\lib\\luarocks\\luarocks-2.4.4-win32\\systree\\share\\lua\\5.1": true --- }, local busted = require 'busted' local assert = require 'luassert' local yaml = require 'tinyyaml' diff --git a/tinyyaml.lua b/tinyyaml.lua index c427a59..afd72da 100644 --- a/tinyyaml.lua +++ b/tinyyaml.lua @@ -717,7 +717,7 @@ end -- : (list)->dict local function parsedocuments(lines) lines = select(lines, function(s) return not isemptyline(s) end) - + if #lines == 0 then return nil end if sfind(lines[1], '^%%YAML') then tremove(lines, 1) end local root = {} @@ -781,7 +781,9 @@ local function parse(source) end local docs = parsedocuments(lines) - if #docs == 1 then + if docs == nil then + return nil + elseif #docs == 1 then return docs[1] end