📄 useroption.pm
字号:
# vim:ts=4 sw=4# ----------------------------------------------------------------------------------------------------# Name : ETL::Pequel3::Type::Section::UserOption.pm# Created : 12 April 2007# Author : Mario Gaffiero (gaffie)## Copyright 1999-2007 Mario Gaffiero.# # This file is part of Pequel(TM).# # Pequel is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; version 2 of the License.# # Pequel 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 General Public License for more details.# # You should have received a copy of the GNU General Public License# along with Pequel; if not, write to the Free Software# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA# ----------------------------------------------------------------------------------------------------# Modification History# When Version Who What# ----------------------------------------------------------------------------------------------------package ETL::Pequel3::Type::Section::UserOption;require 5.005_62;use strict;use warnings;use ETL::Pequel3::Type::Section;# ----------------------------------------------------------------------------------------------------{ package ETL::Pequel3::Type::Section::UserOption; use base qw(ETL::Pequel3::Type::Section::Abstract); use Class::STL::ClassMembers Class::STL::ClassMembers::DataMember->new(name => 'target_mem_name', default => 'section_name'), Class::STL::ClassMembers::DataMember->new(name => 'section_name', default => 'user_option'), Class::STL::ClassMembers::DataMember->new(name => 'required', default => 0), Class::STL::ClassMembers::DataMember->new(name => 'item_type', default => 'ETL::Pequel3::Type::Section::UserOption::Item'), Class::STL::ClassMembers::DataMember->new(name => 'element_type', default => "@{[ __PACKAGE__ ]}"), Class::STL::ClassMembers::DataMember->new(name => 'description', default => 'Create command line options. These command-line options will be available to the executing generated program. Their runtime value may be accessed with the F<&user_option()> macro call.'); use Class::STL::ClassMembers::Constructor; sub new_extra { my $self = shift; return $self; } sub prepare { my $self = shift; } sub setup { my $self = shift; $self->select(); # create default configuration; } package ETL::Pequel3::Type::Section::UserOption::Item; use base qw(ETL::Pequel3::Type::Section::Item::Abstract); use Class::STL::ClassMembers; use Class::STL::ClassMembers::Constructor; sub new_extra { my $self = shift; $self->attributes()->push_back( $self->attributes()->factory(name => 'long_name', required => 1), $self->attributes()->factory(name => 'short_name', required => 0), $self->attributes()->factory(name => 'default', required => 0), $self->attributes()->factory(name => 'description', required => 0),#< $self->attributes()->factory(name => 'prop_name', required => 0), #??? $self->attributes()->factory(name => 'flag', required => 0, default => '0'), ); }}# ----------------------------------------------------------------------------------------------------1;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -