diff --git a/Build.PL b/Build.PL index ffe38e0..64dd45b 100644 --- a/Build.PL +++ b/Build.PL @@ -17,7 +17,7 @@ my %module_build_args = ( "Kent Fredric " ], "dist_name" => "MetaPOD", - "dist_version" => "0.1.2", + "dist_version" => "0.1.3", "license" => "perl", "module_name" => "MetaPOD", "recommends" => {}, diff --git a/Changes b/Changes index e367a7b..ef68006 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,10 @@ Release history for MetaPOD +0.1.3 2013-06-02T08:27:59Z + [Documentation] + - Add "What can we do for you" section. + - Add an image of example usage. + 0.1.2 2013-06-02T07:12:28Z [Bug Fix] - Update Moo dep to solve bug caused by builder + 1.000007 Moo diff --git a/META.json b/META.json index 29d4f70..fe016c3 100644 --- a/META.json +++ b/META.json @@ -72,35 +72,35 @@ "provides" : { "MetaPOD" : { "file" : "lib/MetaPOD.pm", - "version" : "v0.1.2" + "version" : "v0.1.3" }, "MetaPOD::Assembler" : { "file" : "lib/MetaPOD/Assembler.pm", - "version" : "v0.1.2" + "version" : "v0.1.3" }, "MetaPOD::Extractor" : { "file" : "lib/MetaPOD/Extractor.pm", - "version" : "v0.1.2" + "version" : "v0.1.3" }, "MetaPOD::Format::JSON" : { "file" : "lib/MetaPOD/Format/JSON.pm", - "version" : "v0.1.2" + "version" : "v0.1.3" }, "MetaPOD::JSON" : { "file" : "lib/MetaPOD/JSON.pm", - "version" : "v0.1.2" + "version" : "v0.1.3" }, "MetaPOD::Result" : { "file" : "lib/MetaPOD/Result.pm", - "version" : "v0.1.2" + "version" : "v0.1.3" }, "MetaPOD::Role::Format" : { "file" : "lib/MetaPOD/Role/Format.pm", - "version" : "v0.1.2" + "version" : "v0.1.3" }, "MetaPOD::Spec" : { "file" : "lib/MetaPOD/Spec.pm", - "version" : "v0.1.2" + "version" : "v0.1.3" } }, "release_status" : "stable", @@ -115,7 +115,7 @@ "web" : "https://github.com/kentfredric/MetaPOD" } }, - "version" : "0.1.2", + "version" : "0.1.3", "x_BuiltWith" : { "modules" : { "Carp" : "1.29", diff --git a/META.yml b/META.yml index ae5b034..4d21fb8 100644 --- a/META.yml +++ b/META.yml @@ -23,28 +23,28 @@ name: MetaPOD provides: MetaPOD: file: lib/MetaPOD.pm - version: v0.1.2 + version: v0.1.3 MetaPOD::Assembler: file: lib/MetaPOD/Assembler.pm - version: v0.1.2 + version: v0.1.3 MetaPOD::Extractor: file: lib/MetaPOD/Extractor.pm - version: v0.1.2 + version: v0.1.3 MetaPOD::Format::JSON: file: lib/MetaPOD/Format/JSON.pm - version: v0.1.2 + version: v0.1.3 MetaPOD::JSON: file: lib/MetaPOD/JSON.pm - version: v0.1.2 + version: v0.1.3 MetaPOD::Result: file: lib/MetaPOD/Result.pm - version: v0.1.2 + version: v0.1.3 MetaPOD::Role::Format: file: lib/MetaPOD/Role/Format.pm - version: v0.1.2 + version: v0.1.3 MetaPOD::Spec: file: lib/MetaPOD/Spec.pm - version: v0.1.2 + version: v0.1.3 requires: Carp: 0 Data::Dump: 0 @@ -62,7 +62,7 @@ resources: bugtracker: https://github.com/kentfredric/MetaPOD/issues homepage: https://github.com/kentfredric/MetaPOD repository: https://github.com/kentfredric/MetaPOD.git -version: 0.1.2 +version: 0.1.3 x_BuiltWith: modules: Carp: 1.29 diff --git a/README b/README index 6a57828..0189abe 100644 --- a/README +++ b/README @@ -2,7 +2,7 @@ NAME MetaPOD - An evolution of POD VERSION - version 0.1.2 + version 0.1.3 What is MetaPOD 1. Documentation About Documentation @@ -25,6 +25,18 @@ What is MetaPOD * Show pretty graphs and things showing how classes are related to each other +What can MetaPOD do for me + At present, there is not much built on top of the MetaPOD "API", so it + is marginally limited. + + And at present, there is not much on "CPAN" with MetaPOD annotations, so + any such functionality is presently limited by that. + + However, for a taste of what we might see with widespread use of + MetaPOD, here is what we can easily determine from the present "API", + with the existing annotations in within MetaPOD itself: + http://kentfredric.github.io/MetaPOD/media/self_structure.png + People who are writing MetaPOD Eventually, the goal is to have the MetaPOD itself able to be generated via tools during development, so that the meta-layer information is diff --git a/examples/self_structure.dot b/examples/self_structure.dot index 62b3ce7..aa2fd99 100644 --- a/examples/self_structure.dot +++ b/examples/self_structure.dot @@ -1,5 +1,7 @@ digraph test { + rankdir=LR; ratio="fill"; + node [shape="box"]; MetaPOD [label="MetaPOD"]; node1 [label="MetaPOD::Assembler"]; node2 [label="Moo::Object"]; @@ -10,9 +12,9 @@ digraph test { node7 [label="MetaPOD::Spec"]; node8 [label="MetaPOD::Format::JSON"]; node9 [label="MetaPOD::Role::Format"]; - node1 -> node2 [label="inherits"]; - node3 -> node4 [label="inherits"]; - node8 -> node9 [label="does"]; - node8 -> node2 [label="inherits"]; - node6 -> node2 [label="inherits"]; + node1 -> node2 [color="red", dir="forward", label="inherits"]; + node3 -> node4 [color="red", dir="forward", label="inherits"]; + node8 -> node9 [color="blue", dir="forward", label="does"]; + node8 -> node2 [color="red", dir="forward", label="inherits"]; + node6 -> node2 [color="red", dir="forward", label="inherits"]; } diff --git a/examples/self_structure.pl b/examples/self_structure.pl index 8b70409..209a99c 100644 --- a/examples/self_structure.pl +++ b/examples/self_structure.pl @@ -16,14 +16,18 @@ my $it = $rule->iter("$root"); my $assembler = MetaPOD::Assembler->new(); -my $g = GraphViz->new(); +my $g = GraphViz->new( + rankdir => 'LR', + + # ratio => 'compress', + node => { 'shape' => 'box' }, +); while ( my $file = $it->() ) { my $result = $assembler->assemble_file($file); $g->add_node( $result->namespace ); - $g->add_edge( $result->namespace, $_, label => 'inherits' ) for $result->inherits; - $g->add_edge( $result->namespace, $_, label => 'does' ) for $result->does; - + $g->add_edge( $result->namespace, $_, label => 'inherits', color => 'red', dir => 'forward' ) for $result->inherits; + $g->add_edge( $result->namespace, $_, label => 'does', color => 'blue', dir => 'forward' ) for $result->does; } print $g->as_debug; diff --git a/examples/self_structure.png b/examples/self_structure.png index 630bda1..9f10698 100644 Binary files a/examples/self_structure.png and b/examples/self_structure.png differ diff --git a/lib/MetaPOD.pm b/lib/MetaPOD.pm index 223bba1..72e595b 100644 --- a/lib/MetaPOD.pm +++ b/lib/MetaPOD.pm @@ -6,7 +6,7 @@ BEGIN { $MetaPOD::AUTHORITY = 'cpan:KENTNL'; } { - $MetaPOD::VERSION = '0.1.2'; + $MetaPOD::VERSION = '0.1.3'; } # ABSTRACT: An evolution of POD @@ -27,7 +27,7 @@ MetaPOD - An evolution of POD =head1 VERSION -version 0.1.2 +version 0.1.3 =begin MetaPOD::JSON v1.0.0 @@ -54,6 +54,18 @@ MetaPOD also is a system by which one can express relationships about code, code =back +=head1 What can MetaPOD do for me + +At present, there is not much built on top of the MetaPOD C, so it is marginally limited. + +And at present, there is not much on C with MetaPOD annotations, so any such functionality is presently limited by that. + +However, for a taste of what we might see with widespread use of MetaPOD, here is what we can easily determine from the present C, with the existing annotations in within MetaPOD itself: http://kentfredric.github.io/MetaPOD/media/self_structure.png + +=for html
+ +=for markdown ![Graphviz Graph of MetaPOD](http://kentfredric.github.io/MetaPOD/media/self_structure.png) + =head1 People who are writing MetaPOD Eventually, the goal is to have the MetaPOD itself able to be generated via tools during development, so that the meta-layer information is cemented into the POD itself, before, or during release. diff --git a/lib/MetaPOD/Assembler.pm b/lib/MetaPOD/Assembler.pm index 8de92b1..c9e0921 100644 --- a/lib/MetaPOD/Assembler.pm +++ b/lib/MetaPOD/Assembler.pm @@ -6,7 +6,7 @@ BEGIN { $MetaPOD::Assembler::AUTHORITY = 'cpan:KENTNL'; } { - $MetaPOD::Assembler::VERSION = '0.1.2'; + $MetaPOD::Assembler::VERSION = '0.1.3'; } # ABSTRACT: Glue layer that dispatches segments to a constructed Result @@ -119,7 +119,7 @@ MetaPOD::Assembler - Glue layer that dispatches segments to a constructed Result =head1 VERSION -version 0.1.2 +version 0.1.3 =head1 SYNOPSIS diff --git a/lib/MetaPOD/Extractor.pm b/lib/MetaPOD/Extractor.pm index 1f1d9bf..39b15a6 100644 --- a/lib/MetaPOD/Extractor.pm +++ b/lib/MetaPOD/Extractor.pm @@ -6,7 +6,7 @@ BEGIN { $MetaPOD::Extractor::AUTHORITY = 'cpan:KENTNL'; } { - $MetaPOD::Extractor::VERSION = '0.1.2'; + $MetaPOD::Extractor::VERSION = '0.1.3'; } # ABSTRACT: Extract MetaPOD declarations from a file. @@ -252,7 +252,7 @@ MetaPOD::Extractor - Extract MetaPOD declarations from a file. =head1 VERSION -version 0.1.2 +version 0.1.3 =head1 METHODS diff --git a/lib/MetaPOD/Format/JSON.pm b/lib/MetaPOD/Format/JSON.pm index d331ba4..e60b6f4 100644 --- a/lib/MetaPOD/Format/JSON.pm +++ b/lib/MetaPOD/Format/JSON.pm @@ -6,7 +6,7 @@ BEGIN { $MetaPOD::Format::JSON::AUTHORITY = 'cpan:KENTNL'; } { - $MetaPOD::Format::JSON::VERSION = '0.1.2'; + $MetaPOD::Format::JSON::VERSION = '0.1.3'; } # ABSTRACT: Reference implementation of a C based MetaPOD Format @@ -117,7 +117,7 @@ MetaPOD::Format::JSON - Reference implementation of a C based MetaPOD Form =head1 VERSION -version 0.1.2 +version 0.1.3 =head1 SYNOPSIS diff --git a/lib/MetaPOD/JSON.pm b/lib/MetaPOD/JSON.pm index 9871f0f..177459e 100644 --- a/lib/MetaPOD/JSON.pm +++ b/lib/MetaPOD/JSON.pm @@ -8,7 +8,7 @@ BEGIN { $MetaPOD::JSON::AUTHORITY = 'cpan:KENTNL'; } { - $MetaPOD::JSON::VERSION = '0.1.2'; + $MetaPOD::JSON::VERSION = '0.1.3'; } @@ -28,7 +28,7 @@ MetaPOD::JSON - The C Formatted MetaPOD Spec =head1 VERSION -version 0.1.2 +version 0.1.3 =head1 SYNOPSIS diff --git a/lib/MetaPOD/Result.pm b/lib/MetaPOD/Result.pm index 9073a4c..3898b40 100644 --- a/lib/MetaPOD/Result.pm +++ b/lib/MetaPOD/Result.pm @@ -7,7 +7,7 @@ BEGIN { $MetaPOD::Result::AUTHORITY = 'cpan:KENTNL'; } { - $MetaPOD::Result::VERSION = '0.1.2'; + $MetaPOD::Result::VERSION = '0.1.3'; } # ABSTRACT: Compiled aggregate result object for MetaPOD @@ -97,7 +97,7 @@ MetaPOD::Result - Compiled aggregate result object for MetaPOD =head1 VERSION -version 0.1.2 +version 0.1.3 =head1 METHODS diff --git a/lib/MetaPOD/Role/Format.pm b/lib/MetaPOD/Role/Format.pm index 18aec84..57241dc 100644 --- a/lib/MetaPOD/Role/Format.pm +++ b/lib/MetaPOD/Role/Format.pm @@ -7,7 +7,7 @@ BEGIN { $MetaPOD::Role::Format::AUTHORITY = 'cpan:KENTNL'; } { - $MetaPOD::Role::Format::VERSION = '0.1.2'; + $MetaPOD::Role::Format::VERSION = '0.1.3'; } # ABSTRACT: Base role for common format routines @@ -55,7 +55,7 @@ MetaPOD::Role::Format - Base role for common format routines =head1 VERSION -version 0.1.2 +version 0.1.3 =head1 METHODS diff --git a/lib/MetaPOD/Spec.pm b/lib/MetaPOD/Spec.pm index 7465959..977e651 100644 --- a/lib/MetaPOD/Spec.pm +++ b/lib/MetaPOD/Spec.pm @@ -6,7 +6,7 @@ BEGIN { $MetaPOD::Spec::AUTHORITY = 'cpan:KENTNL'; } { - $MetaPOD::Spec::VERSION = '0.1.2'; + $MetaPOD::Spec::VERSION = '0.1.3'; } # ABSTRACT: The Specification of the MetaPOD format @@ -26,7 +26,7 @@ MetaPOD::Spec - The Specification of the MetaPOD format =head1 VERSION -version 0.1.2 +version 0.1.3 =begin MetaPOD::JSON v1.0.0 diff --git a/t/self-extract.t b/t/self-extract.t index c8be47d..fcb500a 100644 --- a/t/self-extract.t +++ b/t/self-extract.t @@ -21,11 +21,15 @@ while ( my $file = $it->() ) { my $result; subtest "$rpath" => sub { - is(exception { - $result = $assembler->assemble_file($file); - }, undef, 'Can assemble ' . path($file)->relative($root)); - isa_ok( $result, 'MetaPOD::Result'); - is( $result->namespace , $rpath , "MetaPOD.namespace == $rpath" ); + is( + exception { + $result = $assembler->assemble_file($file); + }, + undef, + 'Can assemble ' . path($file)->relative($root) + ); + isa_ok( $result, 'MetaPOD::Result' ); + is( $result->namespace, $rpath, "MetaPOD.namespace == $rpath" ); }; }