Fix cross_todo example

This commit is contained in:
def
2015-02-15 00:05:16 +01:00
parent 6244cc2e4f
commit d19a4ca827
6 changed files with 15 additions and 15 deletions

View File

@@ -13,7 +13,7 @@ type
text*: string ## Description of the task to do.
priority*: int ## The priority can be any user defined integer.
isDone*: bool ## Done todos are still kept marked.
modificationDate: TTime ## The modification time can't be modified from
modificationDate: Time ## The modification time can't be modified from
## outside of this module, use the
## getModificationDate accessor.
@@ -64,7 +64,7 @@ proc openDatabase*(path: string): TDbConn =
# - Procs related to TTodo objects
#
proc initFromDB(id: int64; text: string; priority: int, isDone: bool;
modificationDate: TTime): TTodo =
modificationDate: Time): TTodo =
## Returns an initialized TTodo object created from database parameters.
##
## The proc assumes all values are right. Note this proc is NOT exported.
@@ -81,7 +81,7 @@ proc getId*(todo: TTodo): int64 =
return todo.id
proc getModificationDate*(todo: TTodo): TTime =
proc getModificationDate*(todo: TTodo): Time =
## Returns the last modification date of a TTodo entry.
return todo.modificationDate
@@ -99,14 +99,14 @@ proc update*(todo: var TTodo; conn: TDbConn): bool =
FROM Todos WHERE id = ?"""
try:
let rows = conn.GetAllRows(query, $todo.id)
let rows = conn.getAllRows(query, $todo.id)
if len(rows) < 1:
return
assert(1 == len(rows), "Woah, didn't expect so many rows")
todo.text = rows[0][0]
todo.priority = rows[0][1].parseInt
todo.isDone = rows[0][2].parseBool
todo.modificationDate = TTime(rows[0][3].parseInt)
todo.modificationDate = Time(rows[0][3].parseInt)
result = true
except:
echo("Something went wrong selecting for id " & $todo.id)
@@ -202,12 +202,12 @@ proc getPagedTodos*(conn: TDbConn; params: TPagedParams;
#echo("Query " & string(query))
#echo("args: " & args.join(", "))
var newId: biggestInt
var newId: BiggestInt
for row in conn.fastRows(query, args):
let numChars = row[0].parseBiggestInt(newId)
assert(numChars > 0, "Huh, couldn't parse identifier from database?")
result.add(initFromDB(int64(newId), row[1], row[2].parseInt,
row[3].parseBool, TTime(row[4].parseInt)))
row[3].parseBool, Time(row[4].parseInt)))
proc getTodo*(conn: TDbConn; todoId: int64): ref TTodo =

View File

@@ -1,4 +1,4 @@
This directory contains the nimrod backend code for the todo cross platform
This directory contains the nim backend code for the todo cross platform
example.
Unlike the cross platform calculator example, this backend features more code,
@@ -8,7 +8,7 @@ The test is not embedded directly in the backend.nim file to avoid being able
to access internal data types and procs not exported and replicate the
environment of client code.
In a bigger project with several people you could run `nimrod doc backend.nim`
In a bigger project with several people you could run `nim doc backend.nim`
(or use the doc2 command for a whole project) and provide the generated html
documentation to another programer for her to implement an interface without
having to look at the source code.

View File

@@ -1,4 +1,4 @@
# Nimrod configuration file.
# The file is used only to add the path of the backend to the compiler options.
path="../nimrod_backend"
path="../nim_backend"

View File

@@ -69,11 +69,11 @@ template parseTodoIdAndSetCommand(newCommand: TCommand): stmt =
## Helper to parse a big todo identifier into todoId and set command.
try:
let numChars = val.parseBiggestInt(newId)
if numChars < 1: raise newException(EInvalidValue, "Empty string?")
if numChars < 1: raise newException(ValueError, "Empty string?")
result.command = newCommand
result.todoId = newId
except EOverflow:
raise newException(EInvalidValue, "Value $1 too big" % val)
except OverflowError:
raise newException(ValueError, "Value $1 too big" % val)
template verifySingleCommand(actions: stmt): stmt =
@@ -111,7 +111,7 @@ proc parseCmdLine(): TParamConfig =
usesListParams = false
p = initOptParser()
key, val: TaintedString
newId: biggestInt
newId: BiggestInt
result.initDefaults
@@ -178,7 +178,7 @@ proc parseCmdLine(): TParamConfig =
abort("Unexpected option '$1'." % [key], 6)
of cmdEnd:
break
except EInvalidValue:
except ValueError:
abort("Invalid integer value '$1' for parameter '$2'." % [val, key], 7)
if not specifiedCommand: