]> git.madduck.net Git - etc/awesome.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

luatz/parse: On a non-conforming string, return `nil, err` instead of throwing an...
authordaurnimator <quae@daurnimator.com>
Wed, 21 Oct 2015 19:05:20 +0000 (15:05 -0400)
committerdaurnimator <quae@daurnimator.com>
Wed, 21 Oct 2015 19:05:20 +0000 (15:05 -0400)
Closes #6

doc/parse.md
luatz/parse.lua
spec/parse_spec.lua

index 39529dd1308b50350e7ebe53523c343217c0b346..649ee8121c8c56244ad1177893acba9c75dd6f9b 100644 (file)
@@ -6,4 +6,7 @@ Functions take the source string and an optional initial postition.
 
 ### `rfc_3339 ( string [, init] )`
 
-Returns a luatz timetable and the (optional) time zone offset in seconds
+If the string is a valid RFC-3339 timestamp,
+returns a luatz timetable and the (optional) time zone offset in seconds.
+
+Otherwise returns `nil` and an error message
index 0b3b2ddcb0b488fdc84be8078b9759334b505c92..8de9a365bd2bfe305e3840f9b0797575db1c4c2b 100644 (file)
@@ -8,7 +8,7 @@ local new_timetable = require "luatz.timetable".new
 local function rfc_3339 ( str , init )
        local year , month , day , hour , min , sec , patt_end = str:match ( "^(%d%d%d%d)%-(%d%d)%-(%d%d)[Tt](%d%d%.?%d*):(%d%d):(%d%d)()" , init )
        if not year then
-               error ( "Invalid RFC 3339 timestamp" )
+               return nil, "Invalid RFC 3339 timestamp"
        end
        year  = tonumber ( year )
        month = tonumber ( month )
index 37d37a08c25cc80839b314c41cc2950f152db06e..89c9a26c5a445137d482f359c2b2600e7777fbbc 100644 (file)
@@ -10,5 +10,8 @@ describe ( "Time parsing library" , function ( )
 
                -- Missing offsets parse
                assert.same ( timetable.new(2013,10,22,14,17,02) , (parse.rfc_3339 "2013-10-22T14:17:02") )
+
+               -- Invalid
+               assert.same(nil, (parse.rfc_3339 "an invalid timestamp"))
        end )
 end )