comparison Lib/IMPL/declare.pm @ 256:32aceba4ee6d

corrected ViewHandlers to handle cookies and headers. Dirty hacks to handle binary data RestController doesn't deal with file extensions anymore.
author sergey
date Wed, 12 Dec 2012 04:29:50 +0400
parents 34a3f8668b58
children 6253872024a4
comparison
equal deleted inserted replaced
255:827cf96faa1c 256:32aceba4ee6d
87 87
88 carp "Odd elements number in properties declaration of $caller" 88 carp "Odd elements number in properties declaration of $caller"
89 unless scalar(@$props) % 2 == 0; 89 unless scalar(@$props) % 2 == 0;
90 90
91 if (@$props) { 91 if (@$props) {
92 for ( my $i = 0 ; $i < @$props - 1 ; $i = $i + 2 ) { 92 $self->_implementProps($props,$caller);
93 my ( $prop, $spec ) = @{$props}[ $i, $i + 1 ]; 93 }
94 94
95 my $propInfo = IMPL::Class::PropertyInfo->new( 95 if ($args->{_implement}) {
96 { 96 $self->_implementProps($caller->abstractProps,$caller);
97 Name => $prop, 97 }
98 Mutators => $spec,
99 Class => $caller,
100 Access => $prop =~ /^_/
101 ? ACCESS_PRIVATE
102 : ACCESS_PUBLIC
103 }
104 );
105 $propInfo->Implement();
106 }
107 }
108 98
109 $IMPL::require::level--; 99 $IMPL::require::level--;
110 delete $IMPL::require::PENDING{$caller}; 100 delete $IMPL::require::PENDING{$caller};
101 }
102
103 sub _implementProps {
104 my ($self, $props, $caller) = @_;
105
106 for ( my $i = 0 ; $i < @$props - 1 ; $i = $i + 2 ) {
107 my ( $prop, $spec ) = @{$props}[ $i, $i + 1 ];
108
109 my $propInfo = IMPL::Class::PropertyInfo->new(
110 {
111 Name => $prop,
112 Mutators => $spec,
113 Class => $caller,
114 Access => $prop =~ /^_/
115 ? ACCESS_PRIVATE
116 : ACCESS_PUBLIC
117 }
118 );
119 $propInfo->Implement();
120 }
111 } 121 }
112 122
113 1; 123 1;
114 124
115 __END__ 125 __END__