| 
									
										
										
										
											2012-09-04 04:31:27 +00:00
										 |  |  | class Preview | 
					
						
							|  |  |  |   include Mongoid::Document | 
					
						
							|  |  |  |   include Mongoid::Timestamps | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-07 09:55:59 +00:00
										 |  |  |   # field :object_f, :type => Hash | 
					
						
							|  |  |  |   field :object, :type=> Hash | 
					
						
							| 
									
										
										
										
											2012-09-04 04:31:27 +00:00
										 |  |  |   field :preview_at_link | 
					
						
							|  |  |  |   field :expired_at , :type => DateTime | 
					
						
							|  |  |  |   field :link_args, :type => Array | 
					
						
							|  |  |  |   field :object_class_type | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2012-09-07 09:55:59 +00:00
										 |  |  |   has_many :preview_files, :autosave => true, :dependent => :destroy | 
					
						
							| 
									
										
										
										
											2012-09-10 06:19:39 +00:00
										 |  |  |   has_many :preview_associations, :autosave => true, :dependent => :destroy | 
					
						
							| 
									
										
										
										
											2012-09-07 09:55:59 +00:00
										 |  |  |   # def object=(params) | 
					
						
							|  |  |  |   #   save_upload_temp_link(params,"news_bulletin_files_attributes") #unless params[] | 
					
						
							|  |  |  |   #   self.object_f = params | 
					
						
							|  |  |  |   # end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # def object | 
					
						
							|  |  |  |   #   return object_f | 
					
						
							|  |  |  |   # end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # def save_upload_temp_link(params,field_name = "bulletin_files_attributes") | 
					
						
							|  |  |  |   #   image = preview_files.build(:file=>params[:image]) | 
					
						
							|  |  |  |   #   params[:image] = image.id | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   #   params[field_name].each_with_index do |item,index| | 
					
						
							|  |  |  |   #     bfa = preview_files.build(:file=>params[field_name][index.to_s][:file]) | 
					
						
							|  |  |  |   #     params[field_name][index.to_s] = bfa.id | 
					
						
							|  |  |  |   #   end unless  params[field_name].nil? | 
					
						
							|  |  |  |   # end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # def dig_in_hash(hash,paths_ary) | 
					
						
							|  |  |  |   #    hash.each_pair do |key,in_hash| | 
					
						
							|  |  |  |   #       if in_hash.kind_of? Array  | 
					
						
							|  |  |  |   #         dig_in_array(hash,paths_ary) | 
					
						
							|  |  |  |   #       elsif in_hash.kind_of? Hash | 
					
						
							|  |  |  |   #         dig_in_hash(hash,paths_ary) | 
					
						
							|  |  |  |   #       else | 
					
						
							|  |  |  |   #         puts("\n End Node: \t #{paths_ary.join } #{in_hash.class} : #{key}##{in_hash}") | 
					
						
							|  |  |  |   #       end | 
					
						
							|  |  |  |   #    end | 
					
						
							|  |  |  |   # end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # def dig_in_array(array,paths_ary) | 
					
						
							|  |  |  |   #   array.each do |item| | 
					
						
							|  |  |  |   #       if item.kind_of? Array  | 
					
						
							|  |  |  |   #         dig_in_array(hash,paths_ary) | 
					
						
							|  |  |  |   #       elsif item.kind_of? Hash | 
					
						
							|  |  |  |   #         dig_in_hash(hash,paths_ary) | 
					
						
							|  |  |  |   #       else | 
					
						
							|  |  |  |   #         puts("\n End Node: \t #{paths_ary.join } #{item.class} : {item}") | 
					
						
							|  |  |  |   #       end | 
					
						
							|  |  |  |   #    end | 
					
						
							|  |  |  |   # end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   # def dig_in_hash_old(hash,paths_ary) | 
					
						
							|  |  |  |   #   hash.each_pair do |k,in_hash| | 
					
						
							|  |  |  |   #     if (!in_hash.kind_of? Array and !in_hash.kind_of? Hash) | 
					
						
							|  |  |  |   #       #p "UploadedFile : #{in_hash.is_a? ActionDispatch::Http::UploadedFile}" | 
					
						
							|  |  |  |   #       #in_hash = "no file" if in_hash.is_a? ActionDispatch::Http::UploadedFile | 
					
						
							|  |  |  |   #       #in_hash.select{|key,hash| hash.is_a? ActionDispatch::Http::UploadedFile} | 
					
						
							|  |  |  |   #       puts("\n End Node:# \n") | 
					
						
							|  |  |  |   #       p "#{paths_ary.join } #{in_hash.class} : #{in_hash}" | 
					
						
							|  |  |  |   #       #p "UploadedFile(#{in_hash}) : #{in_hash.is_a? ActionDispatch::Http::UploadedFile}" | 
					
						
							|  |  |  |   #     else | 
					
						
							|  |  |  |   #       if (!in_hash.first.kind_of? Array and !in_hash.first.kind_of? Hash) | 
					
						
							|  |  |  |   #         paths_ary << "[#{in_hash.first}]"  | 
					
						
							|  |  |  |   #       end | 
					
						
							|  |  |  |   #       puts("\n Go Down [#{in_hash.first}]\n") | 
					
						
							|  |  |  |   #       dig_in_hash(in_hash,paths_ary) | 
					
						
							|  |  |  |   #       puts("\n Go Out \n") | 
					
						
							|  |  |  |   #     end | 
					
						
							|  |  |  |   #       puts "This is last" | 
					
						
							|  |  |  |   #       paths_ary.pop   | 
					
						
							|  |  |  |   #   end | 
					
						
							|  |  |  |   # end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-09-04 04:31:27 +00:00
										 |  |  |   def get_arg_hash | 
					
						
							|  |  |  |     object.slice(*link_args).inject({}){|la,(k,v)| la[k.to_sym] = v; la} | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def get_preview_link | 
					
						
							|  |  |  |     ap = Rails.application.routes.url_helpers | 
					
						
							|  |  |  |     ap.send preview_at_link,({:id=>id,:preview=>true}.merge get_arg_hash) | 
					
						
							|  |  |  |     #func = eval("Rails.application.routes.url_helpers.#{preview_at_link}").send  | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def get_virtual_object | 
					
						
							| 
									
										
										
										
											2012-09-07 09:55:59 +00:00
										 |  |  |     virtual_object = eval(self.object_class_type).new object | 
					
						
							|  |  |  |     preview_files.each do |file| | 
					
						
							|  |  |  |       if file.file_in_array | 
					
						
							|  |  |  |           eval("virtual_object.#{file.field_name_for_rebuild}.build  :file=>file.file")  | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |           eval("virtual_object.#{file.field_name_for_rebuild} = file.file")      | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2012-09-10 06:19:39 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     preview_associations.each do |local_object| | 
					
						
							|  |  |  |       if local_object.object_in_array | 
					
						
							|  |  |  |           eval("virtual_object.#{local_object.field_name_for_rebuild}.build  local_object.object")  | 
					
						
							|  |  |  |         else | 
					
						
							|  |  |  |           eval("virtual_object.#{local_object.field_name_for_rebuild} = local_object.object")      | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2012-09-07 09:55:59 +00:00
										 |  |  |     virtual_object | 
					
						
							| 
									
										
										
										
											2012-09-04 04:31:27 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | end |