package codept-lib
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=50ad202bfaee10b0eed8f43154036f3ba20e363ae9d42a692d0c20fad3075f62
sha512=78b472d6aeb6554bd6d8a7f8886100141cc06fffa5b37bd38a9c7450a3bf83cffc2a0e51d8a601a6e2f732e3785e888373798f172afb2719ea4f5d60f941f869
doc/codept-lib/Unitname/index.html
Module UnitnameSource
The Unit name is the name of a module which can be represented by a file. The unit name transforms the given file path into a Modname.t and keep the file path internally.
By this way, an t as two views:
- as a file path (where the module is located into the file-system)
- as a module name
Type of an unit name.
modulize filename makes a new t which contains the given filename and modulize it: it removes the extension (if it exists), it capitalises the first letter of the filename's Filename.basename and replace any wrong characters by '_'.
For instance:
"foo.ml"=>"Foo""Foo"=>"Foo""foo'.ml"=>"Foo_""lib/foo.ml"=>"Foo""foo-bar.ml"=>"Foo-bar"
We assert that:
# let v = Unitname.modulize "foo.ml" ;;
# assert (Stdlib.compare v Unitname.(modulize (filepath v)) = 0) ;;filename v returns the filename of the given unit name. The filename is the Filename.basename of the filepath given to construct v with modulize.
filepath v returns the filepath of the given unit name. The file path is the one used to construct v with modulize.
compare_as_modnames a b compares a and b from their modname's views. For instance,
# let a = Unitname.modulize "foo/a.ml" ;;
# let b = Unitname.modulize "bar/a.ml" ;;
# Unitname.compare_as_modnames a b ;;
- : int = 0change_file_extension f t tries to replace the current extension of the given t (the filename view) by something else returned by f. If t has no extension, we return it unchanged. Otherwise, we call f and give to it the current extension.
NOTE: The modname view is unchanged in any cases:
# let v0 = Unitname.modulize "foo.ml" ;;
# let v1 = Unitname.change_file_extension (fun _ -> "mli") v0 ;;
# assert (Modname.compare (Unitname.modname v0) (Unitname.modname v1) = 0) ;;However, v0 and v1 are not equal anymore.