Name | Date | Size | #Lines | LOC | ||
---|---|---|---|---|---|---|
.. | 03-May-2022 | - | ||||
lib/Data/ | H | 03-May-2022 | - | 18,757 | 7,302 | |
t/ | H | 27-Apr-2020 | - | 8,419 | 5,089 | |
CHANGES | H A D | 27-Apr-2020 | 26 | 2 | 1 | |
INSTALL | H A D | 27-Apr-2020 | 2.2 KiB | 73 | 46 | |
LICENSE | H A D | 27-Apr-2020 | 17.9 KiB | 380 | 292 | |
META.json | H A D | 27-Apr-2020 | 2.4 KiB | 77 | 75 | |
META.yml | H A D | 27-Apr-2020 | 1.5 KiB | 52 | 51 | |
Makefile.PL | H A D | 27-Apr-2020 | 2.2 KiB | 82 | 71 | |
README | H A D | 27-Apr-2020 | 8.5 KiB | 488 | 259 | |
README.md | H A D | 27-Apr-2020 | 9.3 KiB | 485 | 257 | |
cpanfile | H A D | 27-Apr-2020 | 1.3 KiB | 38 | 34 |
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