Use Class::XSAccessor
This commit is contained in:
parent
cab51d4581
commit
0feef890b1
1
Build.PL
1
Build.PL
@ -26,6 +26,7 @@ my $build = Module::Build->new(
|
||||
'IO::Scalar' => '0.10',
|
||||
},
|
||||
recommends => {
|
||||
'Class::XSAccessor' => '0',
|
||||
'Growl::GNTP' => '0.15',
|
||||
'Net::DBus' => '0',
|
||||
'XML::SAX::ExpatXS' => '0',
|
||||
|
@ -991,7 +991,11 @@ END
|
||||
};
|
||||
|
||||
# generate accessors
|
||||
{
|
||||
if (eval "use Class::XSAccessor; 1") {
|
||||
Class::XSAccessor->import(
|
||||
getters => { map { $_ => $_ } keys %$Options },
|
||||
);
|
||||
} else {
|
||||
no strict 'refs';
|
||||
for my $opt_key (keys %$Options) {
|
||||
*{$opt_key} = sub { $_[0]{$opt_key} };
|
||||
|
@ -38,6 +38,21 @@ sub depth_layers { $_[0][S_DEPTH_LAYERS] } # this integer represents the thic
|
||||
sub bridge_angle { $_[0][S_BRIDGE_ANGLE] = $_[1] if defined $_[1]; $_[0][S_BRIDGE_ANGLE] }
|
||||
sub extra_perimeters { $_[0][S_EXTRA_PERIMETERS] = $_[1] if defined $_[1]; $_[0][S_EXTRA_PERIMETERS] }
|
||||
|
||||
if (eval "use Class::XSAccessor::Array; 1") {
|
||||
Class::XSAccessor::Array->import(
|
||||
getters => {
|
||||
expolygon => S_EXPOLYGON,
|
||||
},
|
||||
accessors => {
|
||||
surface_type => S_SURFACE_TYPE,
|
||||
depth_layers => S_DEPTH_LAYERS,
|
||||
bridge_angle => S_BRIDGE_ANGLE,
|
||||
extra_perimeters => S_EXTRA_PERIMETERS,
|
||||
},
|
||||
replace => 1,
|
||||
);
|
||||
}
|
||||
|
||||
# delegate handles
|
||||
sub encloses_point { $_[0]->expolygon->encloses_point }
|
||||
sub lines { $_[0]->expolygon->lines }
|
||||
|
Loading…
Reference in New Issue
Block a user