3.19 (2017-01-04) - add SUPPORT by irc the official IRC channel #object-simple on irc.perl.org - remove DEPRECATED class_attr and dual_attr method These methods was planed to removed at 2017-01-01. 3.1801 (2016-09-12) - fix and improve document. 3.18 (2016-09-10) - support Mojo::Base compatible inheritance syntax. use Object::Simple 'Point'; 3.1703 (2016-09-09) - add FAQ "Really enough object-oriented programing with this few features?" - add FAQ "What is benefits comparing with Mojo::Base?" - add FAQ "Why Object::Simple is defferent from Mojo::Base in some points?" - add Class::Tiny to SEE ALSO 3.1702 (2016-09-02) - improve documents 3.1701 (2016-09-02) - improve documents - add FAQ 3.17 (2016-09-01) - add Object::Simple used projects - add "SEE ALSO" section - add benefits of Object::Simple - rename GUIDE to TUTORIAL - add benefits of Object::Simple in list style 3.16 (2016-05-14) - function exporintg of new, attr is DEPRECATED! - The syntax of multiple key-value arguments is DEPRECATED! has x => 1, y => 2; __PACAKGE__->attr(x => 1, y => 2); 3.15 - fix licence(This is same as Mojolicious) 3.14 - remove experimental with and role support this is buggy. - remove 5.10 feature on document. This hadn't work from now. 3.13 - fix super class namespace bug 3.12 - fix some role bug 3.11 - add with option and role support(EXPERIMENTAL) 3.10 - suppress warnings "Ambiguous use of *{-} resolved to -". after Perl 5.16 3.09 - use closure to suppress Perl 5.8 warnings 3.08 - improved document 3.07 - Carp module don't import any functions 3.0625 - fixed a little bug 3.0624 - changed BACKWARDS COMPATIBILITY POLICY If a functionality is DEPRECATED, you can know it by DEPRECATED warnings except for attribute method. You can check all DEPRECATED functionalities by document. DEPRECATED functionality is removed after five years, but if at least one person use the functionality and tell me that thing I extend one year each time he tell me it. EXPERIMENTAL functionality will be changed without warnings. - accessor and new method need more performance than userbility, so argument check logic is removed, sorry 3.0622 removed -base flag EXPERIMENTAL status added -base flag inherit feature. 3.0621 added EXPERIMENTAL import -base flag, has function is automatically imported 3.0620 improved portability 3.0619 improved error message 3.0618 updated document 3.0617 updated document 3.0616 can call attr from object can define accessor more easy 3.0615 updated dcoument 3.0614 updated document 3.0613 deprecated "class_attr" and "dual_attr" because having class variable is not good for Object Oriented programing. 3.0612 updated document 3.0611 updated document 3.0610 updated document 3.0609 cleanup to read code easily in degug improved error messages updated documentation 3.0608 updated documentation 3.0607 updated documentation 3.0606 improved error message 3.0605 improved error message 3.0604 improved error message 3.0603 update document 3.0602 update document I promised backward compatibility of version 3.0601 in this document. 3.0601 rename Object::Simple::Util to Object::Simple::Accessor. update document some cleanup 3.0501 expand accessors to sub reference expand class_attrs 3.0401 add error checking to new() and accessor 3.0303 fix inherit option bug 3.0302 fix class_attr inherit bug 3.0301 pack all file to one file move Object::Simple::Accessor export functionality to Object::Simple 3.0202 fix test bug 3.0201 remove 'Objet::Simple::Old' and 'Object::Simple::OldUtil' rename 'Object::Simple::Base' to 'Object::Simple', rename option name 'clone' to 'inherit' rename 'inherit' option value name 3.0101 'Object::Simple' rename to 'Object::Simple::Old'. 'Object::Simple' became just a name space.(not backword compatible) Simplified 'Object::Simple::Base'(not backword compatible) 2.1301 rename Object::Simple::Base 'hybrid_attr' to 'dual_attr' (not backword compatible) 2.1204 Object::Simple::Util is divided into Object::Simple::InternalUtil Update document 2.1203 Update document 2.1202 Update document 2.1201 Object::Simple::Accessor 'new' method moved to Object::Simple::Base 2.1101 add 'Object::Simple::Util::init_attrs' 2.1002 add 'new' function to 'Object::Simple::Accessor'; 2.1001 add 'build' option 'auto_build' is deprecated. 'initialize' option is deprecated. add 'clone' option 'ClassObjectAttr' us deprecated. it is renamed to 'HibridAttr'. Object::Simple::Util is departed to other file. add Object::Simple::Accessor add Object::Simple::Base 2.0901 add 'class_attr' method. discuraged 'delete_class_attr' method descuraged 'exists_class_attr' method update document 2.0803 update document 2.0802 delete document about Translate accessor and Output accessor, these will be deleted in future 2.0801 fix : when undef value is passed to new, default value is set change : trigger second argument receive old value(not backword compatible) 2.0702 fix initialize clone 'array' or 'hash' reference copy 2.0701 add initialize accessor option for ClassObjectAttr delete initialize_class_object_attr is deleted(not backward compatibility) 2.0603 initialize_class_object_attr accessor_name is automatically set. 2.0602 fix initialize_class_object_attr method is fail when accessor deref options is specified 2.0601 rename resist_attribute_info to resist_accessor_info add initialize_class_object_attr method 2.0502 fix bag that attribute is not initialize when created by ClassObjectAttr 2.0501 add ClassObjectAttr code attribute add exists_class_attr method add delete_class_attr method 2.0402 Mixin speed up by deparse method in need 2.0401 remixin is available call_super can be passed only method name(not Backward compatibility) 2.0301 delete Object::Simple::UPPER (not Backward compatibility) delete Object::Simple::MIXINS (not Backward compatibility ) delete MODIFY_CODE_ATTRIBUTE when build_class is called mixins SUPER keyword can work good add mixin_methods method add call_super method add call_mixin method 2.0201 add extend options add build_all_classes 2.0101 add resiste_attribute_info. If you call this method, resist attribute_info. you can specify class name at build_class method 2.0021 delete translate option. This change is not forward compatibile. add Translate code attribute. This replace translate option. add Output code attribute. This create accessor for output. 2.0020 refactoring Object::Simple::MIXINS::AUTOLOAD using closure refactoring Object::Simple::UPPER::AUTOLOAD using closure 2.0019 bag fix: meta information class_attr_option isn't merged when mixin class is included. 2.0018 add : Can use Class attribute accessor 2.0017 bag fix: translate accessor setter return $self. getter return value corresponding to context. 2.0016 change : setter return self by default. 2.0015 refactoring : remove some unnecesary code. 2.0014 baf fix : when accessor is called form class, paccakge variable is set. 2.0013 baf fix : Cannot build class when two package exists in a file 2.0012 change : MIXIN_method -> Object::Simple::MIXINS::method change : UPPER_method -> Object::Simple::UPPER::method 2.0011 document update 2.0010 remove : remove Object::Simple::Error, Object::Simple::Constraint from Build.pl requires 2.0009 add : method UPPER_***** 2.0008 bag fix: MIXINS_method can call super method 2.0007 add : add AUTOLOAD subroutine to call all mixin class method 2.0006 cahnge: add 'translate' option cahnge: remove alias, remove mixins_rename, trigger is after weaken 2.0005 bag fix: catch up with perl 5.10.0 2.0004 change: add 'trigger' accessor option change: to be flexible Base class do not load when import method call 2.0003 change method name 'end' to 'build_class' 2.0002 change: when attribute value having 'array' or 'hash' option is set undef value, undef value is set. change: mixin method search order is like Ruby. 1. this class, 2. Mixin class last 3. Mixin class first, 4 Base class 2.0001 add accessor option 'type', 'convert', 'deref' mixins option change like Moose role add 'mixins_rename' option 1.0003 bag fix: occur compile error if a class having auto_build option and its name contain :: is loaded, 1.0002 remove attroption name bag fix: not resist constructor if class name contain :: 1.0001 first stabule release 0.0209 add create_constructor. 0.0208 add unimport methods to difine user's MODIFY_CODE_ATTRIBUTES 0.0207 renamae $META hash key 0.0206 optimize new methods 0.0205 add mixins select options 0.0204 document is updated 0.0203 remove many options 'type', 'setter_return', 'required' remove method 'error' add options 'chained' 0.0202 mixin format is changed. remove _arrange_args and _init method 0.0201 first release 0.01_02 rename Object::Simple::Error attribute 'pkg' to 'class' delete attribute key before pass args to _init remove no need files _arrange_args return hash ref, not hash 0.01_01 (2008-01-01) first developer release