• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

lib/Data/H03-May-2022-18,7577,302

t/H27-Apr-2020-8,4195,089

CHANGESH A D27-Apr-202026 21

INSTALLH A D27-Apr-20202.2 KiB7346

LICENSEH A D27-Apr-202017.9 KiB380292

META.jsonH A D27-Apr-20202.4 KiB7775

META.ymlH A D27-Apr-20201.5 KiB5251

Makefile.PLH A D27-Apr-20202.2 KiB8271

READMEH A D27-Apr-20208.5 KiB488259

README.mdH A D27-Apr-20209.3 KiB485257

cpanfileH A D27-Apr-20201.3 KiB3834

README

1NAME
2
3    Data::Object
4
5ABSTRACT
6
7    Object-Orientation for Perl 5
8
9SYNOPSIS
10
11      package main;
12
13      use Data::Object;
14
15      my $array = Box Array [1..4];
16
17      # my $iterator = $array->iterator;
18
19      # $iterator->next; # 1
20
21DESCRIPTION
22
23    This package automatically exports and provides constructor functions
24    for creating chainable data type objects from raw Perl data types.
25
26LIBRARIES
27
28    This package uses type constraints from:
29
30    Data::Object::Types
31
32FUNCTIONS
33
34    This package implements the following functions:
35
36 args
37
38      Args(HashRef $data) : InstanceOf["Data::Object::Args"]
39
40    The Args function returns a Data::Object::Args object.
41
42    Args example #1
43
44        package main;
45
46        use Data::Object 'Args';
47
48        my $args = Args; # [...]
49
50    Args example #2
51
52        package main;
53
54        my $args = Args {
55          subcommand => 0
56        };
57
58        # $args->subcommand;
59
60 array
61
62      Array(ArrayRef $data) : InstanceOf["Data::Object::Array"]
63
64    The Array function returns a Data::Object::Box which wraps a
65    Data::Object::Array object.
66
67    Array example #1
68
69        package main;
70
71        my $array = Array; # []
72
73    Array example #2
74
75        package main;
76
77        my $array = Array [1..4];
78
79 boolean
80
81      Boolean(Bool $data) : BooleanObject
82
83    The Boolean function returns a Data::Object::Boolean object
84    representing a true or false value.
85
86    Boolean example #1
87
88        package main;
89
90        my $boolean = Boolean;
91
92    Boolean example #2
93
94        package main;
95
96        my $boolean = Boolean 0;
97
98 box
99
100      Box(Any $data) : InstanceOf["Data::Object::Box"]
101
102    The Box function returns a Data::Object::Box object representing a data
103    type object which is automatically deduced.
104
105    Box example #1
106
107        package main;
108
109        my $box = Box;
110
111    Box example #2
112
113        package main;
114
115        my $box = Box 123;
116
117    Box example #3
118
119        package main;
120
121        my $box = Box [1..4];
122
123    Box example #4
124
125        package main;
126
127        my $box = Box {1..4};
128
129 code
130
131      Code(CodeRef $data) : InstanceOf["Data::Object::Code"]
132
133    The Code function returns a Data::Object::Box which wraps a
134    Data::Object::Code object.
135
136    Code example #1
137
138        package main;
139
140        my $code = Code;
141
142    Code example #2
143
144        package main;
145
146        my $code = Code sub { shift };
147
148 data
149
150      Data(Str $file) : InstanceOf["Data::Object::Data"]
151
152    The Data function returns a Data::Object::Data object.
153
154    Data example #1
155
156        package main;
157
158        use Data::Object 'Data';
159
160        my $data = Data;
161
162    Data example #2
163
164        package main;
165
166        my $data = Data 't/Data_Object.t';
167
168        # $data->contents(...);
169
170 error
171
172      Error(Str | HashRef) : InstanceOf["Data::Object::Exception"]
173
174    The Error function returns a Data::Object::Exception object.
175
176    Error example #1
177
178        package main;
179
180        use Data::Object 'Error';
181
182        my $error = Error;
183
184        # die $error;
185
186    Error example #2
187
188        package main;
189
190        my $error = Error 'Oops!';
191
192        # die $error;
193
194    Error example #3
195
196        package main;
197
198        my $error = Error {
199          message => 'Oops!',
200          context => { time => time }
201        };
202
203        # die $error;
204
205 false
206
207      False() : BooleanObject
208
209    The False function returns a Data::Object::Boolean object representing
210    a false value.
211
212    False example #1
213
214        package main;
215
216        my $false = False;
217
218 float
219
220      Float(Num $data) : InstanceOf["Data::Object::Float"]
221
222    The Float function returns a Data::Object::Box which wraps a
223    Data::Object::Float object.
224
225    Float example #1
226
227        package main;
228
229        my $float = Float;
230
231    Float example #2
232
233        package main;
234
235        my $float = Float '0.0';
236
237 hash
238
239      Hash(HashRef $data) : InstanceOf["Data::Object::Hash"]
240
241    The Hash function returns a Data::Object::Box which wraps a
242    Data::Object::Hash object.
243
244    Hash example #1
245
246        package main;
247
248        my $hash = Hash;
249
250    Hash example #2
251
252        package main;
253
254        my $hash = Hash {1..4};
255
256 name
257
258      Name(Str $data) : InstanceOf["Data::Object::Name"]
259
260    The Name function returns a Name::Object::Name object.
261
262    Name example #1
263
264        package main;
265
266        use Data::Object 'Name';
267
268        my $name = Name 'Example Title';
269
270        # $name->package;
271
272 number
273
274      Number(Num $data) : InstanceOf["Data::Object::Number"]
275
276    The Number function returns a Data::Object::Box which wraps a
277    Data::Object::Number object.
278
279    Number example #1
280
281        package main;
282
283        my $number = Number;
284
285    Number example #2
286
287        package main;
288
289        my $number = Number 123;
290
291 opts
292
293      Opts(HashRef $data) : InstanceOf["Data::Object::Opts"]
294
295    The Opts function returns a Data::Object::Opts object.
296
297    Opts example #1
298
299        package main;
300
301        use Data::Object 'Opts';
302
303        my $opts = Opts;
304
305    Opts example #2
306
307        package main;
308
309        my $opts = Opts {
310          spec => ['files|f=s']
311        };
312
313        # $opts->files; [...]
314
315 regexp
316
317      Regexp(RegexpRef $data) : InstanceOf["Data::Object::Regexp"]
318
319    The Regexp function returns a Data::Object::Box which wraps a
320    Data::Object::Regexp object.
321
322    Regexp example #1
323
324        package main;
325
326        my $regexp = Regexp;
327
328    Regexp example #2
329
330        package main;
331
332        my $regexp = Regexp qr/.*/;
333
334 scalar
335
336      Scalar(Ref $data) : InstanceOf["Data::Object::Scalar"]
337
338    The Scalar function returns a Data::Object::Box which wraps a
339    Data::Object::Scalar object.
340
341    Scalar example #1
342
343        package main;
344
345        my $scalar = Scalar;
346
347    Scalar example #2
348
349        package main;
350
351        my $scalar = Scalar \*main;
352
353 space
354
355      Space(Str $data) : InstanceOf["Data::Object::Space"]
356
357    The Space function returns a Data::Object::Space object.
358
359    Space example #1
360
361        package main;
362
363        use Data::Object 'Space';
364
365        my $space = Space 'Example Namespace';
366
367 string
368
369      String(Str $data) : InstanceOf["Data::Object::String"]
370
371    The String function returns a Data::Object::Box which wraps a
372    Data::Object::String object.
373
374    String example #1
375
376        package main;
377
378        my $string = String;
379
380    String example #2
381
382        package main;
383
384        my $string = String 'abc';
385
386 struct
387
388      Struct(HashRef $data) : InstanceOf["Data::Object::Struct"]
389
390    The Struct function returns a Data::Object::Struct object.
391
392    Struct example #1
393
394        package main;
395
396        use Data::Object 'Struct';
397
398        my $struct = Struct;
399
400    Struct example #2
401
402        package main;
403
404        my $struct = Struct {
405          name => 'example',
406          time => time
407        };
408
409 true
410
411      True() : BooleanObject
412
413    The True function returns a Data::Object::Boolean object representing a
414    true value.
415
416    True example #1
417
418        package main;
419
420        my $true = True;
421
422 undef
423
424      Undef() : InstanceOf["Data::Object::Undef"]
425
426    The Undef function returns a Data::Object::Undef object representing
427    the undefined value.
428
429    Undef example #1
430
431        package main;
432
433        my $undef = Undef;
434
435 vars
436
437      Vars() : InstanceOf["Data::Object::Vars"]
438
439    The Vars function returns a Data::Object::Vars object representing the
440    available environment variables.
441
442    Vars example #1
443
444        package main;
445
446        use Data::Object 'Vars';
447
448        my $vars = Vars;
449
450    Vars example #2
451
452        package main;
453
454        my $vars = Vars {
455          user => 'USER'
456        };
457
458        # $vars->user; # $USER
459
460AUTHOR
461
462    Al Newkirk, awncorp@cpan.org
463
464LICENSE
465
466    Copyright (C) 2011-2019, Al Newkirk, et al.
467
468    This is free software; you can redistribute it and/or modify it under
469    the terms of the The Apache License, Version 2.0, as elucidated in the
470    "license file"
471    <https://github.com/iamalnewkirk/data-object/blob/master/LICENSE>.
472
473PROJECT
474
475    Wiki <https://github.com/iamalnewkirk/data-object/wiki>
476
477    Project <https://github.com/iamalnewkirk/data-object>
478
479    Initiatives <https://github.com/iamalnewkirk/data-object/projects>
480
481    Milestones <https://github.com/iamalnewkirk/data-object/milestones>
482
483    Contributing
484    <https://github.com/iamalnewkirk/data-object/blob/master/CONTRIBUTE.md>
485
486    Issues <https://github.com/iamalnewkirk/data-object/issues>
487
488

README.md

1# NAME
2
3Data::Object
4
5# ABSTRACT
6
7Object-Orientation for Perl 5
8
9# SYNOPSIS
10
11    package main;
12
13    use Data::Object;
14
15    my $array = Box Array [1..4];
16
17    # my $iterator = $array->iterator;
18
19    # $iterator->next; # 1
20
21# DESCRIPTION
22
23This package automatically exports and provides constructor functions for
24creating chainable data type objects from raw Perl data types.
25
26# LIBRARIES
27
28This package uses type constraints from:
29
30[Data::Object::Types](https://metacpan.org/pod/Data::Object::Types)
31
32# FUNCTIONS
33
34This package implements the following functions:
35
36## args
37
38    Args(HashRef $data) : InstanceOf["Data::Object::Args"]
39
40The Args function returns a [Data::Object::Args](https://metacpan.org/pod/Data::Object::Args) object.
41
42- Args example #1
43
44        package main;
45
46        use Data::Object 'Args';
47
48        my $args = Args; # [...]
49
50- Args example #2
51
52        package main;
53
54        my $args = Args {
55          subcommand => 0
56        };
57
58        # $args->subcommand;
59
60## array
61
62    Array(ArrayRef $data) : InstanceOf["Data::Object::Array"]
63
64The Array function returns a [Data::Object::Box](https://metacpan.org/pod/Data::Object::Box) which wraps a
65[Data::Object::Array](https://metacpan.org/pod/Data::Object::Array) object.
66
67- Array example #1
68
69        package main;
70
71        my $array = Array; # []
72
73- Array example #2
74
75        package main;
76
77        my $array = Array [1..4];
78
79## boolean
80
81    Boolean(Bool $data) : BooleanObject
82
83The Boolean function returns a [Data::Object::Boolean](https://metacpan.org/pod/Data::Object::Boolean) object representing a
84true or false value.
85
86- Boolean example #1
87
88        package main;
89
90        my $boolean = Boolean;
91
92- Boolean example #2
93
94        package main;
95
96        my $boolean = Boolean 0;
97
98## box
99
100    Box(Any $data) : InstanceOf["Data::Object::Box"]
101
102The Box function returns a [Data::Object::Box](https://metacpan.org/pod/Data::Object::Box) object representing a data type
103object which is automatically deduced.
104
105- Box example #1
106
107        package main;
108
109        my $box = Box;
110
111- Box example #2
112
113        package main;
114
115        my $box = Box 123;
116
117- Box example #3
118
119        package main;
120
121        my $box = Box [1..4];
122
123- Box example #4
124
125        package main;
126
127        my $box = Box {1..4};
128
129## code
130
131    Code(CodeRef $data) : InstanceOf["Data::Object::Code"]
132
133The Code function returns a [Data::Object::Box](https://metacpan.org/pod/Data::Object::Box) which wraps a
134[Data::Object::Code](https://metacpan.org/pod/Data::Object::Code) object.
135
136- Code example #1
137
138        package main;
139
140        my $code = Code;
141
142- Code example #2
143
144        package main;
145
146        my $code = Code sub { shift };
147
148## data
149
150    Data(Str $file) : InstanceOf["Data::Object::Data"]
151
152The Data function returns a [Data::Object::Data](https://metacpan.org/pod/Data::Object::Data) object.
153
154- Data example #1
155
156        package main;
157
158        use Data::Object 'Data';
159
160        my $data = Data;
161
162- Data example #2
163
164        package main;
165
166        my $data = Data 't/Data_Object.t';
167
168        # $data->contents(...);
169
170## error
171
172    Error(Str | HashRef) : InstanceOf["Data::Object::Exception"]
173
174The Error function returns a [Data::Object::Exception](https://metacpan.org/pod/Data::Object::Exception) object.
175
176- Error example #1
177
178        package main;
179
180        use Data::Object 'Error';
181
182        my $error = Error;
183
184        # die $error;
185
186- Error example #2
187
188        package main;
189
190        my $error = Error 'Oops!';
191
192        # die $error;
193
194- Error example #3
195
196        package main;
197
198        my $error = Error {
199          message => 'Oops!',
200          context => { time => time }
201        };
202
203        # die $error;
204
205## false
206
207    False() : BooleanObject
208
209The False function returns a [Data::Object::Boolean](https://metacpan.org/pod/Data::Object::Boolean) object representing a
210false value.
211
212- False example #1
213
214        package main;
215
216        my $false = False;
217
218## float
219
220    Float(Num $data) : InstanceOf["Data::Object::Float"]
221
222The Float function returns a [Data::Object::Box](https://metacpan.org/pod/Data::Object::Box) which wraps a
223[Data::Object::Float](https://metacpan.org/pod/Data::Object::Float) object.
224
225- Float example #1
226
227        package main;
228
229        my $float = Float;
230
231- Float example #2
232
233        package main;
234
235        my $float = Float '0.0';
236
237## hash
238
239    Hash(HashRef $data) : InstanceOf["Data::Object::Hash"]
240
241The Hash function returns a [Data::Object::Box](https://metacpan.org/pod/Data::Object::Box) which wraps a
242[Data::Object::Hash](https://metacpan.org/pod/Data::Object::Hash) object.
243
244- Hash example #1
245
246        package main;
247
248        my $hash = Hash;
249
250- Hash example #2
251
252        package main;
253
254        my $hash = Hash {1..4};
255
256## name
257
258    Name(Str $data) : InstanceOf["Data::Object::Name"]
259
260The Name function returns a [Name::Object::Name](https://metacpan.org/pod/Name::Object::Name) object.
261
262- Name example #1
263
264        package main;
265
266        use Data::Object 'Name';
267
268        my $name = Name 'Example Title';
269
270        # $name->package;
271
272## number
273
274    Number(Num $data) : InstanceOf["Data::Object::Number"]
275
276The Number function returns a [Data::Object::Box](https://metacpan.org/pod/Data::Object::Box) which wraps a
277[Data::Object::Number](https://metacpan.org/pod/Data::Object::Number) object.
278
279- Number example #1
280
281        package main;
282
283        my $number = Number;
284
285- Number example #2
286
287        package main;
288
289        my $number = Number 123;
290
291## opts
292
293    Opts(HashRef $data) : InstanceOf["Data::Object::Opts"]
294
295The Opts function returns a [Data::Object::Opts](https://metacpan.org/pod/Data::Object::Opts) object.
296
297- Opts example #1
298
299        package main;
300
301        use Data::Object 'Opts';
302
303        my $opts = Opts;
304
305- Opts example #2
306
307        package main;
308
309        my $opts = Opts {
310          spec => ['files|f=s']
311        };
312
313        # $opts->files; [...]
314
315## regexp
316
317    Regexp(RegexpRef $data) : InstanceOf["Data::Object::Regexp"]
318
319The Regexp function returns a [Data::Object::Box](https://metacpan.org/pod/Data::Object::Box) which wraps a
320[Data::Object::Regexp](https://metacpan.org/pod/Data::Object::Regexp) object.
321
322- Regexp example #1
323
324        package main;
325
326        my $regexp = Regexp;
327
328- Regexp example #2
329
330        package main;
331
332        my $regexp = Regexp qr/.*/;
333
334## scalar
335
336    Scalar(Ref $data) : InstanceOf["Data::Object::Scalar"]
337
338The Scalar function returns a [Data::Object::Box](https://metacpan.org/pod/Data::Object::Box) which wraps a
339[Data::Object::Scalar](https://metacpan.org/pod/Data::Object::Scalar) object.
340
341- Scalar example #1
342
343        package main;
344
345        my $scalar = Scalar;
346
347- Scalar example #2
348
349        package main;
350
351        my $scalar = Scalar \*main;
352
353## space
354
355    Space(Str $data) : InstanceOf["Data::Object::Space"]
356
357The Space function returns a [Data::Object::Space](https://metacpan.org/pod/Data::Object::Space) object.
358
359- Space example #1
360
361        package main;
362
363        use Data::Object 'Space';
364
365        my $space = Space 'Example Namespace';
366
367## string
368
369    String(Str $data) : InstanceOf["Data::Object::String"]
370
371The String function returns a [Data::Object::Box](https://metacpan.org/pod/Data::Object::Box) which wraps a
372[Data::Object::String](https://metacpan.org/pod/Data::Object::String) object.
373
374- String example #1
375
376        package main;
377
378        my $string = String;
379
380- String example #2
381
382        package main;
383
384        my $string = String 'abc';
385
386## struct
387
388    Struct(HashRef $data) : InstanceOf["Data::Object::Struct"]
389
390The Struct function returns a [Data::Object::Struct](https://metacpan.org/pod/Data::Object::Struct) object.
391
392- Struct example #1
393
394        package main;
395
396        use Data::Object 'Struct';
397
398        my $struct = Struct;
399
400- Struct example #2
401
402        package main;
403
404        my $struct = Struct {
405          name => 'example',
406          time => time
407        };
408
409## true
410
411    True() : BooleanObject
412
413The True function returns a [Data::Object::Boolean](https://metacpan.org/pod/Data::Object::Boolean) object representing a true
414value.
415
416- True example #1
417
418        package main;
419
420        my $true = True;
421
422## undef
423
424    Undef() : InstanceOf["Data::Object::Undef"]
425
426The Undef function returns a [Data::Object::Undef](https://metacpan.org/pod/Data::Object::Undef) object representing the
427_undefined_ value.
428
429- Undef example #1
430
431        package main;
432
433        my $undef = Undef;
434
435## vars
436
437    Vars() : InstanceOf["Data::Object::Vars"]
438
439The Vars function returns a [Data::Object::Vars](https://metacpan.org/pod/Data::Object::Vars) object representing the
440available environment variables.
441
442- Vars example #1
443
444        package main;
445
446        use Data::Object 'Vars';
447
448        my $vars = Vars;
449
450- Vars example #2
451
452        package main;
453
454        my $vars = Vars {
455          user => 'USER'
456        };
457
458        # $vars->user; # $USER
459
460# AUTHOR
461
462Al Newkirk, `awncorp@cpan.org`
463
464# LICENSE
465
466Copyright (C) 2011-2019, Al Newkirk, et al.
467
468This is free software; you can redistribute it and/or modify it under the terms
469of the The Apache License, Version 2.0, as elucidated in the ["license
470file"](https://github.com/iamalnewkirk/data-object/blob/master/LICENSE).
471
472# PROJECT
473
474[Wiki](https://github.com/iamalnewkirk/data-object/wiki)
475
476[Project](https://github.com/iamalnewkirk/data-object)
477
478[Initiatives](https://github.com/iamalnewkirk/data-object/projects)
479
480[Milestones](https://github.com/iamalnewkirk/data-object/milestones)
481
482[Contributing](https://github.com/iamalnewkirk/data-object/blob/master/CONTRIBUTE.md)
483
484[Issues](https://github.com/iamalnewkirk/data-object/issues)
485