#!/usr/bin/perl
#
# This file is part of Config-Model
#
# This software is Copyright (c) 2014 by Dominique Dumont.
#
# This is free software, licensed under:
#
# The GNU Lesser General Public License, Version 2.1, February 1999
#
# Copyright (c) 2011-2014 Dominique Dumont.
#
# This file is part of Config-Model.
#
# Config-Model is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser Public License as
# published by the Free Software Foundation; either version 2.1 of
# the License, or (at your option) any later version.
#
# Config-Model is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser Public License for more details.
#
# You should have received a copy of the GNU Lesser Public License
# along with Config-Model; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
# 02110-1301 USA
use lib qw/lib/ ;
use strict;
use Path::Tiny ;
use Config::Model ; # to generate doc
my $model = Config::Model -> new(model_dir => "lib/Config/Model/models") ;
# this extension is run with 'cme gen-classpod'. cme will run 'do gen-class-pod'
# to keep @INC and @ARGV around. Hence @ARGV contains 'gen-class-pod'
shift @ARGV if $ARGV[0] and $ARGV[0] eq 'gen-class-pod' ;
my @models = @ARGV ? @ARGV :
map { /model\s*=\s*([\w:-]+)/; $1; }
grep { /^\s*model/; }
map { $_->lines; }
map { $_->children; }
path ("lib/Config/Model/")->children(qr/\.d$/);
map {
# this test avoid generating doc several times (generate_doc scan docs for
# classes referenced by the model with config_class_name paremeter)
if (not $model->model_exists($_)) {
print "Checking doc for model $_\n";
$model->load($_) ;
$model->generate_doc ($_,'lib') ;
}
} @models ;