summaryrefslogtreecommitdiff
path: root/Data/Libraries/LDoc/tests/usage/usage.lua
diff options
context:
space:
mode:
Diffstat (limited to 'Data/Libraries/LDoc/tests/usage/usage.lua')
-rw-r--r--Data/Libraries/LDoc/tests/usage/usage.lua87
1 files changed, 87 insertions, 0 deletions
diff --git a/Data/Libraries/LDoc/tests/usage/usage.lua b/Data/Libraries/LDoc/tests/usage/usage.lua
new file mode 100644
index 0000000..ba05136
--- /dev/null
+++ b/Data/Libraries/LDoc/tests/usage/usage.lua
@@ -0,0 +1,87 @@
+--[[--------
+A simple module with examples.
+
+Even without markdown formatting, blank lines are respected.
+
+@module usage
+]]
+
+local usage = {}
+
+local helper
+
+--- a local helper function.
+-- @local
+function helper ()
+end
+
+----------
+-- A simple vector class.
+--
+-- Supports arithmetic operations.
+-- @usage
+-- v = Vector.new {10,20,30}
+-- assert (v == Vector{10,20,30})
+-- @type Vector
+
+local Vector = {}
+usage.Vector = {}
+
+
+----------
+-- Create a vector from an array `t`.
+-- `Vector` is also callable!
+function Vector.new (t)
+end
+
+-- note that @function may have modifiers. Currently
+-- we aren't doing anything with them, but LDoc no longer
+-- complains (issue #45). Note also that one needs
+-- explicit @param tags with explicit @function; 'static'
+-- methods must have a @constructor or a @static tag.
+
+----------
+-- Create a vector from a string.
+-- @usage
+-- v = Vector.parse '[1,2,3]'
+-- assert (v == Vector.new {1,2,3})
+-- @function[kind=ctor] parse
+-- @static
+-- @param s
+function Vector.parse (s)
+end
+
+--------
+-- Compare two vectors for equality.
+function Vector:__eq (v)
+end
+
+----------
+-- Add another vector, array or scalar `v` to this vector.
+-- Returns new `Vector`
+-- @usage assert(Vector.new{1,2,3}:add(1) == Vector{2,3,4})
+function Vector:add (v)
+end
+
+----------
+-- set vector options. `opts` is a `Vector.Opts` table.
+function Vector:options (opts)
+end
+
+--[[-----------------
+@table Vector.Opts
+Options table format for `Vector:options`
+
+ * `autoconvert`: try to convert strings to numbers
+ * `adder`: function used to perform addition and subtraction
+ * `multiplier`: function used to perform multiplication and division
+
+@usage
+ v = Vector {{1},{2}}
+ v:options {adder = function(x,y) return {x[1]+y[1]} end}
+ assert(v:add(1) == Vector{{2},{3}})
+]]
+
+return usage
+
+