diff Lib/IMPL/Web/QueryHandler/JsonFormat.pm @ 194:4d0e1962161c

Replaced tabs with spaces IMPL::Web::View - fixed document model, new features (control classes, document constructor parameters)
author cin
date Tue, 10 Apr 2012 20:08:29 +0400
parents d1676be8afcc
children
line wrap: on
line diff
--- a/Lib/IMPL/Web/QueryHandler/JsonFormat.pm	Tue Apr 10 08:13:22 2012 +0400
+++ b/Lib/IMPL/Web/QueryHandler/JsonFormat.pm	Tue Apr 10 20:08:29 2012 +0400
@@ -7,31 +7,31 @@
 use JSON;
 
 sub Process {
-	my ($this,$action,$nextHandler) = @_;
-	
-	my $result;
-	
-	try {
-		$result = $nextHandler->();
-		$result = [$result] unless ref $result;
-	} otherwise {
-		my $err = shift;
-		$result = { error => $err };
-	};
-	
-	my $t = new IMPL::Transform::Json($action->context->{json});
-	
-	if ($action->context->{transactionType} and $action->context->{transactionType} eq 'form') {
-		delete @$result{qw(formData formSchema)};
-		my $errors = @$result{formErrors};
-		
-		$result->{formErrors} = [ map $_->Message, @$errors ] if $errors;
-	}
-	
-	$action->response->contentType('text/javascript');
-	
-	my $hout = $action->response->streamBody;
-	print $hout to_json( $t->Transform($result), {pretty => 1} );
+    my ($this,$action,$nextHandler) = @_;
+    
+    my $result;
+    
+    try {
+        $result = $nextHandler->();
+        $result = [$result] unless ref $result;
+    } otherwise {
+        my $err = shift;
+        $result = { error => $err };
+    };
+    
+    my $t = new IMPL::Transform::Json($action->context->{json});
+    
+    if ($action->context->{transactionType} and $action->context->{transactionType} eq 'form') {
+        delete @$result{qw(formData formSchema)};
+        my $errors = @$result{formErrors};
+        
+        $result->{formErrors} = [ map $_->Message, @$errors ] if $errors;
+    }
+    
+    $action->response->contentType('text/javascript');
+    
+    my $hout = $action->response->streamBody;
+    print $hout to_json( $t->Transform($result), {pretty => 1} );
 } 
 
 package IMPL::Transform::Json;
@@ -42,85 +42,85 @@
 use Scalar::Util qw(refaddr);
 
 BEGIN {
-	private _direct property _visited => prop_none;
+    private _direct property _visited => prop_none;
 }
 
 my %propListCache;
 
 our %CTOR = (
-	'IMPL::Transform' => sub {
-		my $options = shift;
-		(
-			$options ? %{$options} : ()
-		),
-		ARRAY => sub {
-			my ($this,$object) = @_;
-			
-			return [
-				map { $this->Transform($_) } @$object
-			];	
-		},
-		HASH => sub {
-			my ($this,$object) = @_;
-			
-			return {
-				map { $_, $this->Transform($object->{$_}) } keys %$object
-			};
-		},
-		'IMPL::Object::List' => sub {
-			my ($this,$object) = @_;
-			
-			return [
-				map { $this->Transform($_) } @$object
-			]; 
-		},
-		-plain => sub {
-			$_[1];
-		},
-		-default => sub {
-			my ($this,$object) = @_;
-			
-			return "$object" unless $object->isa('IMPL::Object::Abstract');
-			
-			if ( $object->isa(typeof IMPL::Exception) ) {
-				return {
-					type => $object->typeof,
-					message => $object->Message,
-					arguments => $this->Transform(scalar $object->Args)
-				};
-			}
-			
-			my $propList = $propListCache{ref $object};
-			unless ( $propList ) {
-				my %props = map {
-					$_->Name, (ref $_->Mutators ? 0 : ($_->Mutators & prop_list))
-				} $object->get_meta('IMPL::Class::PropertyInfo',sub { $_->Access == IMPL::Class::Member::MOD_PUBLIC and $_->Name !~ /^_/}, 1 );
-				
-				$propListCache{ref $object} = $propList = \%props;
-			}
-			
-			return {
-				map {
-					$_, $propList->{$_} ? $this->Transform([$object->$_()]) : $this->Transform(scalar $object->$_());
-				} keys %$propList
-			};
-		}
-	}
+    'IMPL::Transform' => sub {
+        my $options = shift;
+        (
+            $options ? %{$options} : ()
+        ),
+        ARRAY => sub {
+            my ($this,$object) = @_;
+            
+            return [
+                map { $this->Transform($_) } @$object
+            ];    
+        },
+        HASH => sub {
+            my ($this,$object) = @_;
+            
+            return {
+                map { $_, $this->Transform($object->{$_}) } keys %$object
+            };
+        },
+        'IMPL::Object::List' => sub {
+            my ($this,$object) = @_;
+            
+            return [
+                map { $this->Transform($_) } @$object
+            ]; 
+        },
+        -plain => sub {
+            $_[1];
+        },
+        -default => sub {
+            my ($this,$object) = @_;
+            
+            return "$object" unless $object->isa('IMPL::Object::Abstract');
+            
+            if ( $object->isa(typeof IMPL::Exception) ) {
+                return {
+                    type => $object->typeof,
+                    message => $object->Message,
+                    arguments => $this->Transform(scalar $object->Args)
+                };
+            }
+            
+            my $propList = $propListCache{ref $object};
+            unless ( $propList ) {
+                my %props = map {
+                    $_->Name, (ref $_->Mutators ? 0 : ($_->Mutators & prop_list))
+                } $object->get_meta('IMPL::Class::PropertyInfo',sub { $_->Access == IMPL::Class::Member::MOD_PUBLIC and $_->Name !~ /^_/}, 1 );
+                
+                $propListCache{ref $object} = $propList = \%props;
+            }
+            
+            return {
+                map {
+                    $_, $propList->{$_} ? $this->Transform([$object->$_()]) : $this->Transform(scalar $object->$_());
+                } keys %$propList
+            };
+        }
+    }
 );
 
 sub Transform {
-	my ($this,$object) = @_;
-	
-	# small hack to prevent cycling
-	
-	return $this->SUPER::Transform($object) unless ref $object;
-	
-	if (exists $this->{$_visited}{refaddr $object}) {
-		return $this->{$_visited}{refaddr $object};
-	} else {
-		$this->{$_visited}{refaddr $object} = undef;
-		return $this->{$_visited}{refaddr $object} = $this->SUPER::Transform($object);
-	}
+    my ($this,$object) = @_;
+    
+    # small hack to prevent cycling
+    
+    return $this->SUPER::Transform($object) unless ref $object;
+    
+    if (exists $this->{$_visited}{refaddr $object}) {
+        return $this->{$_visited}{refaddr $object};
+    } else {
+        $this->{$_visited}{refaddr $object} = undef;
+        return $this->{$_visited}{refaddr $object} = $this->SUPER::Transform($object);
+    }
 }
 
 1;