| 
					
				 | 
			
			
				@@ -59,16 +59,23 @@ module Blazer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def parse_smart_variables(var, data_source) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      query = data_source.smart_variables[var] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if query.is_a? Hash 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        smart_var = query.map { |k,v| [v, k] } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      elsif query.is_a? Array 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        smart_var = query.map { |v| [v, v] } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      elsif query 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        result = data_source.run_statement(query) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        smart_var = result.rows.map { |v| v.reverse } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        error = result.error if result.error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      smart_var_data_source = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ([data_source] + Array(data_source.settings["inherit_smart_settings"]).map { |ds| Blazer.data_sources[ds] }).find { |ds| ds.smart_variables[var] } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if smart_var_data_source 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        query = smart_var_data_source.smart_variables[var] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if query.is_a? Hash 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          smart_var = query.map { |k,v| [v, k] } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        elsif query.is_a? Array 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          smart_var = query.map { |v| [v, v] } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        elsif query 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          result = smart_var_data_source.run_statement(query) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          smart_var = result.rows.map { |v| v.reverse } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          error = result.error if result.error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       [smart_var, error] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     end 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |