Tables_IO segregated into AAA

This commit is contained in:
Alejandro R Mosteo
2018-06-11 16:10:17 +02:00
parent cb4f146fc4
commit 500bb5376e
6 changed files with 8 additions and 127 deletions
+3
View File
@@ -4,3 +4,6 @@
[submodule "deps/simple_logging"] [submodule "deps/simple_logging"]
path = deps/simple_logging path = deps/simple_logging
url = https://github.com/alire-project/simple_logging.git url = https://github.com/alire-project/simple_logging.git
[submodule "deps/aaa"]
path = deps/aaa
url = https://github.com/mosteo/aaa.git
+1
View File
@@ -1,3 +1,4 @@
with "aaa";
with "semantic_versioning"; with "semantic_versioning";
with "simple_logging"; with "simple_logging";
Vendored Submodule
+1
Submodule deps/aaa added at 3b263b6cb8
+3 -3
View File
@@ -1,11 +1,11 @@
with AAA.Table_IO;
-- with Alire.Platform; -- with Alire.Platform;
with Alire.Platforms; with Alire.Platforms;
with Alire.Requisites.Booleans; with Alire.Requisites.Booleans;
with GNAT.IO; -- To keep preelaborable with GNAT.IO; -- To keep preelaborable
with Table_IO;
package body Alire.Releases is package body Alire.Releases is
use all type Alire.Properties.Labeled.Labels; use all type Alire.Properties.Labeled.Labels;
@@ -352,7 +352,7 @@ package body Alire.Releases is
if R.Origin.Is_Native then if R.Origin.Is_Native then
Put_Line ("Origin (native package):"); Put_Line ("Origin (native package):");
declare declare
Table : Table_IO.Table; Table : AAA.Table_IO.Table;
begin begin
for Dist in Platforms.Distributions loop for Dist in Platforms.Distributions loop
if R.Origin.Package_Name (Dist) /= Origins.Unavailable.Image then if R.Origin.Package_Name (Dist) /= Origins.Unavailable.Image then
-87
View File
@@ -1,87 +0,0 @@
with Ada.Containers;
with Ada.Strings.Fixed;
with GNAT.IO;
package body Table_IO is
use all type Ada.Containers.Count_Type;
------------
-- Append --
------------
procedure Append (T : in out Table; Cell : String) is
begin
if T.Rows.Is_Empty then
T.New_Row;
end if;
if Natural (T.Max_Widths.Length) < T.Next_Column then
T.Max_Widths.Append (Cell'Length);
else
T.Max_Widths (T.Next_Column) :=
Natural'Max (Cell'Length, T.Max_Widths (T.Next_Column));
end if;
T.Rows (Natural (T.Rows.Length)).Append (Cell);
T.Next_Column := T.Next_Column + 1;
end Append;
-------------
-- New_Row --
-------------
procedure New_Row (T : in out Table) is
begin
T.Next_Column := 1;
T.Rows.Append (String_Vectors.Empty_Vector);
end New_Row;
----------------
-- Put_Padded --
----------------
procedure Put_Padded (T : Table;
Col : Positive;
Text : String;
Align : Ada.Strings.Alignment)
is
Field : String (1 .. T.Max_Widths (Col));
begin
Ada.Strings.Fixed.Move (Text,
Field,
Drop => Ada.Strings.Error,
Justify => Align);
GNAT.IO.Put (Field);
end Put_Padded;
-----------
-- Print --
-----------
procedure Print (T : Table;
Separator : String := " ";
Align : Alignments := (1 .. 0 => <>))
is
use GNAT.IO;
begin
for Row of T.Rows loop
for I in 1 .. Natural (Row.Length) loop
Put_Padded (T,
I,
Row (I),
(if Align'Length >= I
then Align (I)
else Ada.Strings.Left));
if I < Natural (Row.Length) then
Put (Separator);
else
New_Line;
end if;
end loop;
end loop;
end Print;
end Table_IO;
-37
View File
@@ -1,37 +0,0 @@
with Ada.Containers.Indefinite_Vectors;
with Ada.Containers.Vectors;
with Ada.Strings;
package Table_IO with Preelaborate is
type Table is tagged private;
procedure Append (T : in out Table; Cell : String);
procedure New_Row (T : in out Table);
type Alignments is array (Positive range <>) of Ada.Strings.Alignment;
procedure Print (T : Table;
Separator : String := " ";
Align : Alignments := (1 .. 0 => <>));
private
package Natural_Vectors is new Ada.Containers.Vectors (Positive, Natural);
package String_Vectors is new Ada.Containers.Indefinite_Vectors (Positive,
String);
subtype Row is String_Vectors.Vector;
use all type Row;
package Row_Vectors is new Ada.Containers.Vectors (Positive, Row);
type Table is tagged record
Next_Column : Positive := 1;
Rows : Row_Vectors.Vector;
Max_Widths : Natural_Vectors.Vector;
end record;
end Table_IO;