bump

On Oct 14, 10:58 pm, Christian Fazzini <[email protected]>
wrote:
> Anyone have a solution to this problem?
>
> On Oct 12, 12:36 pm, Christian Fazzini <[email protected]>
> wrote:
>
> > My form submits the file. The custom processor I made for Paperclip
> > uses FFMPEG. My custom processor expects a style to be set so that it
> > can process the audio based on that value. So for example, in my form,
> > I set stream_type to 30, my custom processor would process the audio
> > file to 30 seconds.
>
> > Walter, in your example. You already have a style set as a fixed
> > string (has_attached_file :pdf,:styles => { :text => { :fake =>
> > 'variable' } },)
>
> > Your example is valid, because you are processing again after the file
> > is submitted. But, I don't want to reprocess. It would be a waste of
> > resources to do this twice. I want do it right the first time around.
>
> > On Oct 12, 12:17 pm, Walter Lee Davis <[email protected]> wrote:
>
> > > I built a system in Rails 2.3.8 that accepted PDF uploads and needed  
> > > to extract their text content using the venerable (read ancient)  
> > > pdftotext command-line utility. I had to jump through the following  
> > > hoops to make it work, and this might have some bearing on your  
> > > solution:
>
> > > #model
> > >    has_attached_file :pdf,:styles => { :text => { :fake =>  
> > > 'variable' } }, :processors => [:text]
> > >    after_post_process :extract_text
>
> > >    private
> > >    def extract_text
> > >      file = File.open("#{pdf.queued_for_write[:text].path}","r")
> > >      plain_text = ""
> > >      while (line = file.gets)
> > >        plain_text << Iconv.conv('ASCII//IGNORE', 'UTF8', line)
> > >      end
> > >      self.plain_text = plain_text
> > >    end
>
> > > #lib/paperclip_processors/text.rb
> > > module Paperclip
> > >    # Handles extracting plain text from PDF file attachments
> > >    class Text < Processor
>
> > >      attr_accessor :whiny
>
> > >      # Creates a Text extract from PDF
> > >      def make
> > >        src = @file
> > >        dst = Tempfile.new([...@basename, 'txt'].compact.join("."))
> > >        command = <<-end_command
> > >          "#{ File.expand_path(src.path) }"
> > >          "#{ File.expand_path(dst.path) }"
> > >        end_command
>
> > >        begin
> > >          success = Paperclip.run("/usr/bin/pdftotext -nopgbrk",  
> > > command.gsub(/\s+/, " "))
> > >          Rails.logger.info "Processing #{src.path} to #{dst.path} in  
> > > the text processor."
> > >        rescue PaperclipCommandLineError
> > >          raise PaperclipError, "There was an error processing the text  
> > > for #...@basename}" if @whiny
> > >        end
> > >        dst
> > >      end
> > >    end
> > > end
>
> > > Within the environs of Paperclip, you can write processors that do  
> > > pretty much anything, and usually result in a new file saved as a new  
> > > format in the attachments hierarchy. Once that process is done, you  
> > > can access the result file and do other stuff with it. But I'm not  
> > > sure if that answers your question at all, since you don't seem to be  
> > > facing the same problem I was.
>
> > > If your form posts a file to Paperclip, you don't get access to the  
> > > file parts of that form submission directly in your controller, unless  
> > > I'm missing something fundamental. But a processor can access them  
> > > directly, at a very low level.
>
> > > Walter
>
> > > On Oct 12, 2010, at 12:01 AM, Christian Fazzini wrote:
>
> > > > Walter Lee, I am trying to pass a value (stream_type) that was in
> > > > submitted in my form to :styles using proc.
>
> > > > Radhames, even if I do all this in the model, without a processor, I
> > > > am still not able to get the value of stream_type, that was passed
> > > > when the form tried to submit.
>
> > > > So Philip, this means I would need to reprocess the file and delete
> > > > the original? This means I will be processing the file twice? Isn't
> > > > this a waste of resources if I only want one processed file that is
> > > > adherent to the stream_type?
>
> > > > On Oct 12, 12:07 am, Philip Hallstrom <[email protected]> wrote:
> > > >> has_attached_file gets read when the class file is first read.  It  
> > > >> then sets up the various paperclip methods that do there stuff.  
> > > >> When it does that, 'instance' is a new/blank record.
>
> > > >> What you have below will work (if memory serves me right) if you  
> > > >> save the record, reload it, and then reprocess it.
>
> > > >> Something along those lines... it's been awhile since I ran into  
> > > >> this.
>
> > > >> -philip
>
> > > >> On Oct 10, 2010, at 1:22 PM, Christian Fazzini wrote:
>
> > > >>> anyone?? Been on this for days without a solution.... thinking  
> > > >>> that I
> > > >>> may have to switch to another gem just to get this feature to  
> > > >>> work...
>
> > > >>> On Oct 7, 3:16 pm, Christian Fazzini <[email protected]>
> > > >>> wrote:
> > > >>>> I have a stream_type field on my form. When the form submits,
> > > >>>> instance.stream_type is blank. To verify this, in my custom  
> > > >>>> processor
> > > >>>> (class ProcessAudio < Processor), I do puts options[:geometry].
>
> > > >>>>   has_attached_file :media,
> > > >>>>                     :styles => { :original => Proc.new { |instance|
> > > >>>> instance.stream_type } },
> > > >>>>                     :url => '/assets/artists/:artist_id/
> > > >>>> songs/:id/:style.:extension',
> > > >>>>                     :path => ':rails_root/public/assets/
> > > >>>> artists/:artist_id/songs/:id/:style.:extension',
> > > >>>>                     :processors => [:process_audio]
>
> > > >>>> If I provide a fixed string. For example:
>
> > > >>>>   has_attached_file :media,
> > > >>>>                     :styles => { :original => '30' },
> > > >>>>                     :url => '/assets/artists/:artist_id/
> > > >>>> songs/:id/:style.:extension',
> > > >>>>                     :path => ':rails_root/public/assets/
> > > >>>> artists/:artist_id/songs/:id/:style.:extension',
> > > >>>>                     :processors => [:process_audio]
>
> > > >>>> puts options[:geometry] = 30. Why does is it NOT work with proc?
>
> > > >>>> What is wrong?
>
> > > >>> --
> > > >>> You received this message because you are subscribed to the Google  
> > > >>> Groups "Ruby on Rails: Talk" group.
> > > >>> To post to this group, send email to [email protected]
> > > >>> .
> > > >>> To unsubscribe from this group, send email to 
> > > >>> [email protected]
> > > >>> .
> > > >>> For more options, visit this group 
> > > >>> athttp://groups.google.com/group/rubyonrails-talk?hl=en
> > > >>> .
>
> > > > --
> > > > You received this message because you are subscribed to the Google  
> > > > Groups "Ruby on Rails: Talk" group.
> > > > To post to this group, send email to rubyonrails-
> > > > [email protected].
> > > > To unsubscribe from this group, send email to 
> > > > [email protected]
> > > > .
> > > > For more options, visit this group 
> > > > athttp://groups.google.com/group/rubyonrails-talk?hl=en
> > > > .
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to