social_stream-documents 0.17.0 → 0.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/controllers/documents_controller.rb +1 -0
- data/app/models/audio.rb +3 -3
- data/app/models/document.rb +1 -3
- data/app/models/picture.rb +4 -7
- data/app/models/video.rb +2 -9
- data/app/views/videos/_video_show.html.erb +1 -1
- data/db/migrate/{20120109155431_create_social_stream_documents.rb → 20120208143721_create_social_stream_documents.rb} +0 -2
- data/lib/delayed_paperclip/social_stream-documents.rb +7 -12
- data/lib/generators/social_stream/documents/install_generator.rb +4 -0
- data/lib/generators/social_stream/documents/templates/initializer.rb +26 -0
- data/lib/social_stream-documents.rb +29 -0
- data/lib/social_stream/documents/dependencies.rb +0 -1
- data/lib/social_stream/documents/version.rb +1 -1
- data/social_stream-documents.gemspec +4 -4
- data/spec/dummy/config/initializers/devise.rb +4 -4
- metadata +19 -19
- data/db/migrate/20120208143721_documents_group_title_and_description_in_activity_object.rb +0 -28
- data/lib/paperclip/social_stream-documents.rb +0 -62
    
        data/app/models/audio.rb
    CHANGED
    
    | @@ -1,9 +1,9 @@ | |
| 1 1 | 
             
            class Audio < Document  
         | 
| 2 2 | 
             
              has_attached_file :file, 
         | 
| 3 | 
            -
                                :url => '/:class/:id.: | 
| 3 | 
            +
                                :url => '/:class/:id.:content_type_extension',
         | 
| 4 4 | 
             
                                :path => ':rails_root/documents/:class/:id_partition/:style',
         | 
| 5 | 
            -
                                :styles =>  | 
| 6 | 
            -
                                 | 
| 5 | 
            +
                                :styles => SocialStream::Documents.audio_styles,
         | 
| 6 | 
            +
                                :processors => [ :ffmpeg ]
         | 
| 7 7 |  | 
| 8 8 | 
             
              process_in_background :file    
         | 
| 9 9 |  | 
    
        data/app/models/document.rb
    CHANGED
    
    | @@ -4,7 +4,7 @@ class Document < ActiveRecord::Base | |
| 4 4 | 
             
              IMAGE_FORMATS = ["doc","ppt","xls","rar","zip","mpeg","plain","pdf"]
         | 
| 5 5 |  | 
| 6 6 | 
             
              has_attached_file :file, 
         | 
| 7 | 
            -
                                :url => '/:class/:id.: | 
| 7 | 
            +
                                :url => '/:class/:id.:content_type_extension',
         | 
| 8 8 | 
             
                                :path => ':rails_root/documents/:class/:id_partition/:style/:filename.:extension'
         | 
| 9 9 |  | 
| 10 10 | 
             
              paginates_per 20
         | 
| @@ -82,5 +82,3 @@ class Document < ActiveRecord::Base | |
| 82 82 | 
             
                self.title = file_file_name if self.title.blank?
         | 
| 83 83 | 
             
              end
         | 
| 84 84 | 
             
            end
         | 
| 85 | 
            -
             | 
| 86 | 
            -
            ActiveSupport.run_load_hooks(:document, Document) 
         | 
    
        data/app/models/picture.rb
    CHANGED
    
    | @@ -1,13 +1,8 @@ | |
| 1 1 | 
             
            class Picture < Document
         | 
| 2 2 | 
             
              has_attached_file :file, 
         | 
| 3 | 
            -
                                :url => '/:class/:id.: | 
| 3 | 
            +
                                :url => '/:class/:id.:content_type_extension',
         | 
| 4 4 | 
             
                                :path => ':rails_root/documents/:class/:id_partition/:style',
         | 
| 5 | 
            -
                                :styles =>  | 
| 6 | 
            -
                                            :thumbwall => ["130x97#"],
         | 
| 7 | 
            -
                                            # midwall preserves A4 proportion: 210x297
         | 
| 8 | 
            -
                                            :midwall => ["80x113#"],
         | 
| 9 | 
            -
                                            :preview => ["500>"]
         | 
| 10 | 
            -
                                           }                              
         | 
| 5 | 
            +
                                :styles => SocialStream::Documents.picture_styles
         | 
| 11 6 |  | 
| 12 7 | 
             
              define_index do
         | 
| 13 8 | 
             
                activity_object_index
         | 
| @@ -28,6 +23,8 @@ class Picture < Document | |
| 28 23 | 
             
                    helper.picture_path self, :format => format, :style => 'thumbwall'
         | 
| 29 24 | 
             
                  when 500
         | 
| 30 25 | 
             
                    helper.picture_path self, :format => format, :style => 'preview'
         | 
| 26 | 
            +
                  when 1000
         | 
| 27 | 
            +
                    helper.picture_path self, :format => format, :style => 'original'
         | 
| 31 28 | 
             
                end
         | 
| 32 29 | 
             
              end
         | 
| 33 30 |  | 
    
        data/app/models/video.rb
    CHANGED
    
    | @@ -1,16 +1,9 @@ | |
| 1 1 | 
             
            class Video < Document  
         | 
| 2 2 | 
             
              has_attached_file :file, 
         | 
| 3 | 
            -
                                :url => '/:class/:id.: | 
| 3 | 
            +
                                :url => '/:class/:id.:content_type_extension',
         | 
| 4 4 | 
             
                                :default_url => 'missing_:style.png',
         | 
| 5 5 | 
             
                                :path => ':rails_root/documents/:class/:id_partition/:style',
         | 
| 6 | 
            -
                                :styles =>  | 
| 7 | 
            -
                                  :webm => {:format => 'webm'},
         | 
| 8 | 
            -
                                  :flv  => {:format => 'flv'},
         | 
| 9 | 
            -
                                  :mp4  => {:format => 'mp4'},
         | 
| 10 | 
            -
                                  :poster  => {:format => 'png', :time => 5},
         | 
| 11 | 
            -
                                  :thumb48sq  => {:geometry => "48x48" , :format => 'png', :time => 5},
         | 
| 12 | 
            -
                                  :thumbwall => {:geometry => "130x97#", :format => 'png', :time => 5}
         | 
| 13 | 
            -
                                },
         | 
| 6 | 
            +
                                :styles => SocialStream::Documents.video_styles,
         | 
| 14 7 | 
             
                                :processors => [:ffmpeg]
         | 
| 15 8 |  | 
| 16 9 | 
             
              process_in_background :file
         | 
| @@ -53,7 +53,7 @@ | |
| 53 53 | 
             
                  ready: function () {
         | 
| 54 54 | 
             
                    $(this).jPlayer("setMedia", {
         | 
| 55 55 | 
             
                      webmv: "<%= video_url(video, :format => 'webm' ) %>", // Defines the webm url
         | 
| 56 | 
            -
                      flv:   "<%= video_url(video, :format => 'flv') %>"
         | 
| 56 | 
            +
                      flv:   "<%= video_url(video, :format => 'flv') %>",
         | 
| 57 57 | 
             
                      mp4:   "<%= video_url(video, :format => 'mp4') %>"
         | 
| 58 58 | 
             
                    });
         | 
| 59 59 | 
             
                  },
         | 
| @@ -10,8 +10,6 @@ class CreateSocialStreamDocuments < ActiveRecord::Migration | |
| 10 10 | 
             
                  t.string   "file_content_type"
         | 
| 11 11 | 
             
                  t.string   "file_file_size"
         | 
| 12 12 | 
             
                  t.boolean  "file_processing"
         | 
| 13 | 
            -
                  t.string   "title"
         | 
| 14 | 
            -
                  t.text     "description"
         | 
| 15 13 | 
             
                end
         | 
| 16 14 |  | 
| 17 15 | 
             
                add_index "documents", ["activity_object_id"], :name => "index_documents_on_activity_object_id"
         | 
| @@ -1,18 +1,13 @@ | |
| 1 | 
            -
            # Monkey-patch https://github.com/jstorimer/delayed_paperclip/ | 
| 1 | 
            +
            # Monkey-patch https://github.com/jstorimer/delayed_paperclip/issues/67
         | 
| 2 2 | 
             
            #
         | 
| 3 | 
            -
            # Remove with delayed_paperclip > 2.4.5. | 
| 3 | 
            +
            # Remove with delayed_paperclip > 2.4.5.2 ???
         | 
| 4 4 | 
             
            require 'delayed_paperclip'
         | 
| 5 5 |  | 
| 6 6 | 
             
            module DelayedPaperclip::Attachment::InstanceMethods
         | 
| 7 | 
            -
              def  | 
| 8 | 
            -
                 | 
| 9 | 
            -
             | 
| 10 | 
            -
                 | 
| 11 | 
            -
             | 
| 12 | 
            -
                #instance.update_column("#{name}_processing", false) if instance.respond_to?(:"#{name}_processing?")
         | 
| 13 | 
            -
                if instance.respond_to?(:"#{name}_processing?")
         | 
| 14 | 
            -
                  instance.send("#{name}_processing=", false)
         | 
| 15 | 
            -
                  instance.class.update_all({ "#{name}_processing" => false }, instance.class.primary_key => instance.id)
         | 
| 16 | 
            -
                end
         | 
| 7 | 
            +
              def process_delayed!
         | 
| 8 | 
            +
                self.job_is_processing = true
         | 
| 9 | 
            +
                self.post_processing = true
         | 
| 10 | 
            +
                reprocess!
         | 
| 11 | 
            +
                self.job_is_processing = false
         | 
| 17 12 | 
             
              end
         | 
| 18 13 | 
             
            end
         | 
| @@ -3,6 +3,10 @@ class SocialStream::Documents::InstallGenerator < Rails::Generators::Base | |
| 3 3 |  | 
| 4 4 | 
             
              source_root File.expand_path('../templates', __FILE__)
         | 
| 5 5 |  | 
| 6 | 
            +
              def create_initializer_file
         | 
| 7 | 
            +
                template 'initializer.rb', 'config/initializers/social_stream-documents.rb'
         | 
| 8 | 
            +
              end
         | 
| 9 | 
            +
             | 
| 6 10 | 
             
              def create_migration_file
         | 
| 7 11 | 
             
                require 'rake'
         | 
| 8 12 | 
             
                Rails.application.load_tasks
         | 
| @@ -0,0 +1,26 @@ | |
| 1 | 
            +
            SocialStream::Documents.setup do |config| 
         | 
| 2 | 
            +
              # Configure picture thumbnails
         | 
| 3 | 
            +
              #
         | 
| 4 | 
            +
              # config.picture_styles = {
         | 
| 5 | 
            +
              #    :thumb48sq  => ["48x48"],
         | 
| 6 | 
            +
              #    :thumbwall => ["130x97#"],
         | 
| 7 | 
            +
              #    # midwall preserves A4 proportion: 210x297
         | 
| 8 | 
            +
              #    :midwall => ["80x113#"],
         | 
| 9 | 
            +
              #    :preview => ["500>"]
         | 
| 10 | 
            +
              #  }
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              # Configure audio thumbnails
         | 
| 13 | 
            +
              #
         | 
| 14 | 
            +
              # config.audio_styles = { :webma => {:format => 'webm'} }
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              # Configure video thumbnails
         | 
| 17 | 
            +
              #
         | 
| 18 | 
            +
              #  @@video_styles = {
         | 
| 19 | 
            +
              #    :webm => { :format => 'webm' },
         | 
| 20 | 
            +
              #    :flv  => { :format => 'flv' },
         | 
| 21 | 
            +
              #    :mp4  => { :format => 'mp4' },
         | 
| 22 | 
            +
              #    :poster  => { :format => 'png', :time => 5 },
         | 
| 23 | 
            +
              #    :thumb48sq  => { :geometry => "48x48" , :format => 'png', :time => 5 },
         | 
| 24 | 
            +
              #    :thumbwall => { :geometry => "130x97#", :format => 'png', :time => 5 }
         | 
| 25 | 
            +
              #  }
         | 
| 26 | 
            +
            end
         | 
| @@ -8,6 +8,35 @@ module SocialStream | |
| 8 8 | 
             
              end
         | 
| 9 9 |  | 
| 10 10 | 
             
              module Documents
         | 
| 11 | 
            +
                # Picture thumbnails
         | 
| 12 | 
            +
                mattr_accessor :picture_styles
         | 
| 13 | 
            +
                @@picture_styles = {
         | 
| 14 | 
            +
                  :thumb48sq  => ["48x48"],
         | 
| 15 | 
            +
                  :thumbwall => ["130x97#"],
         | 
| 16 | 
            +
                  # midwall preserves A4 proportion: 210x297
         | 
| 17 | 
            +
                  :midwall => ["80x113#"],
         | 
| 18 | 
            +
                  :preview => ["500>"]
         | 
| 19 | 
            +
                }
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                mattr_accessor :audio_styles
         | 
| 22 | 
            +
                @@audio_styles = { :webma => {:format => 'webm'} }
         | 
| 23 | 
            +
             | 
| 24 | 
            +
                mattr_accessor :video_styles
         | 
| 25 | 
            +
                @@video_styles = {
         | 
| 26 | 
            +
                  :webm => { :format => 'webm' },
         | 
| 27 | 
            +
                  :flv  => { :format => 'flv' },
         | 
| 28 | 
            +
                  :mp4  => { :format => 'mp4' },
         | 
| 29 | 
            +
                  :poster  => { :format => 'png', :time => 5 },
         | 
| 30 | 
            +
                  :thumb48sq  => { :geometry => "48x48" , :format => 'png', :time => 5 },
         | 
| 31 | 
            +
                  :thumbwall => { :geometry => "130x97#", :format => 'png', :time => 5 }
         | 
| 32 | 
            +
                }
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                class << self
         | 
| 35 | 
            +
                  def setup
         | 
| 36 | 
            +
                    yield self
         | 
| 37 | 
            +
                  end
         | 
| 38 | 
            +
                end
         | 
| 39 | 
            +
             | 
| 11 40 | 
             
                # Add :document to SocialStream.objects and SocialStream.activity_forms by default
         | 
| 12 41 | 
             
                # It can be configured by users at application's config/initializers/social_stream.rb
         | 
| 13 42 | 
             
                [ :picture, :video, :audio, :document].each do |o|
         | 
| @@ -12,10 +12,10 @@ Gem::Specification.new do |s| | |
| 12 12 | 
             
              s.files = `git ls-files`.split("\n")
         | 
| 13 13 |  | 
| 14 14 | 
             
              # Gem dependencies
         | 
| 15 | 
            -
              s.add_runtime_dependency('social_stream-base', '~> 0. | 
| 16 | 
            -
              s.add_runtime_dependency('paperclip | 
| 17 | 
            -
              s.add_runtime_dependency('paperclip',' | 
| 18 | 
            -
              s.add_runtime_dependency('delayed_paperclip','2.4.5. | 
| 15 | 
            +
              s.add_runtime_dependency('social_stream-base', '~> 0.24.0')
         | 
| 16 | 
            +
              s.add_runtime_dependency('paperclip','~> 3.3.0')
         | 
| 17 | 
            +
              s.add_runtime_dependency('paperclip-ffmpeg', '~> 0.9.0')
         | 
| 18 | 
            +
              s.add_runtime_dependency('delayed_paperclip','>= 2.4.5.2')
         | 
| 19 19 | 
             
              # Development Gem dependencies
         | 
| 20 20 | 
             
              s.add_development_dependency('sqlite3-ruby')
         | 
| 21 21 | 
             
              if RUBY_VERSION < '1.9'
         | 
| @@ -72,10 +72,6 @@ Devise.setup do |config| | |
| 72 72 | 
             
              # If true, extends the user's remember period when remembered via cookie.
         | 
| 73 73 | 
             
              # config.extend_remember_period = false
         | 
| 74 74 |  | 
| 75 | 
            -
              # If true, uses the password salt as remember token. This should be turned
         | 
| 76 | 
            -
              # to false if you are not using database authenticatable.
         | 
| 77 | 
            -
              config.use_salt_as_remember_token = true
         | 
| 78 | 
            -
             | 
| 79 75 | 
             
              # ==> Configuration for :validatable
         | 
| 80 76 | 
             
              # Range for password length. Default is 6..20.
         | 
| 81 77 | 
             
              # config.password_length = 6..20
         | 
| @@ -163,6 +159,10 @@ Devise.setup do |config| | |
| 163 159 | 
             
              config.omniauth :linkedin, "ekxfXU8nueVSMQ9fc5KJAryBkyztUlCBYMW3DoQPzbE79WhivvzhQloRNHCHgPeB", "WYiHFT-KKFgjd45W3-pEAficmXRHmN6_6DGwj1C_ZILJlSO1gBvv6VNYXU9tybGY"
         | 
| 164 160 |  | 
| 165 161 | 
             
              config.omniauth :facebook, "129571360447856","eef39dce5e20e76f77495c59623bdb38"
         | 
| 162 | 
            +
             | 
| 163 | 
            +
              #re state_less token removal 
         | 
| 164 | 
            +
              #https://github.com/plataformatec/devise/issues/1499
         | 
| 165 | 
            +
              config.skip_session_storage << :token_auth
         | 
| 166 166 |  | 
| 167 167 | 
             
              # ==> Warden configuration
         | 
| 168 168 | 
             
              # If you want to use other strategies, that are not supported by Devise, or
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: social_stream-documents
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.18.0
         | 
| 5 5 | 
             
              prerelease: 
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors:
         | 
| @@ -10,7 +10,7 @@ authors: | |
| 10 10 | 
             
            autorequire: 
         | 
| 11 11 | 
             
            bindir: bin
         | 
| 12 12 | 
             
            cert_chain: []
         | 
| 13 | 
            -
            date: 2012-10- | 
| 13 | 
            +
            date: 2012-10-23 00:00:00.000000000 Z
         | 
| 14 14 | 
             
            dependencies:
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 16 16 | 
             
              name: social_stream-base
         | 
| @@ -19,7 +19,7 @@ dependencies: | |
| 19 19 | 
             
                requirements:
         | 
| 20 20 | 
             
                - - ~>
         | 
| 21 21 | 
             
                  - !ruby/object:Gem::Version
         | 
| 22 | 
            -
                    version: 0. | 
| 22 | 
            +
                    version: 0.24.0
         | 
| 23 23 | 
             
              type: :runtime
         | 
| 24 24 | 
             
              prerelease: false
         | 
| 25 25 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -27,15 +27,15 @@ dependencies: | |
| 27 27 | 
             
                requirements:
         | 
| 28 28 | 
             
                - - ~>
         | 
| 29 29 | 
             
                  - !ruby/object:Gem::Version
         | 
| 30 | 
            -
                    version: 0. | 
| 30 | 
            +
                    version: 0.24.0
         | 
| 31 31 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 32 | 
            -
              name: paperclip | 
| 32 | 
            +
              name: paperclip
         | 
| 33 33 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 34 34 | 
             
                none: false
         | 
| 35 35 | 
             
                requirements:
         | 
| 36 36 | 
             
                - - ~>
         | 
| 37 37 | 
             
                  - !ruby/object:Gem::Version
         | 
| 38 | 
            -
                    version:  | 
| 38 | 
            +
                    version: 3.3.0
         | 
| 39 39 | 
             
              type: :runtime
         | 
| 40 40 | 
             
              prerelease: false
         | 
| 41 41 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -43,39 +43,39 @@ dependencies: | |
| 43 43 | 
             
                requirements:
         | 
| 44 44 | 
             
                - - ~>
         | 
| 45 45 | 
             
                  - !ruby/object:Gem::Version
         | 
| 46 | 
            -
                    version:  | 
| 46 | 
            +
                    version: 3.3.0
         | 
| 47 47 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 48 | 
            -
              name: paperclip
         | 
| 48 | 
            +
              name: paperclip-ffmpeg
         | 
| 49 49 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 50 50 | 
             
                none: false
         | 
| 51 51 | 
             
                requirements:
         | 
| 52 | 
            -
                - -  | 
| 52 | 
            +
                - - ~>
         | 
| 53 53 | 
             
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            -
                    version:  | 
| 54 | 
            +
                    version: 0.9.0
         | 
| 55 55 | 
             
              type: :runtime
         | 
| 56 56 | 
             
              prerelease: false
         | 
| 57 57 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 58 58 | 
             
                none: false
         | 
| 59 59 | 
             
                requirements:
         | 
| 60 | 
            -
                - -  | 
| 60 | 
            +
                - - ~>
         | 
| 61 61 | 
             
                  - !ruby/object:Gem::Version
         | 
| 62 | 
            -
                    version:  | 
| 62 | 
            +
                    version: 0.9.0
         | 
| 63 63 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 64 64 | 
             
              name: delayed_paperclip
         | 
| 65 65 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 66 66 | 
             
                none: false
         | 
| 67 67 | 
             
                requirements:
         | 
| 68 | 
            -
                - - ' | 
| 68 | 
            +
                - - ! '>='
         | 
| 69 69 | 
             
                  - !ruby/object:Gem::Version
         | 
| 70 | 
            -
                    version: 2.4.5. | 
| 70 | 
            +
                    version: 2.4.5.2
         | 
| 71 71 | 
             
              type: :runtime
         | 
| 72 72 | 
             
              prerelease: false
         | 
| 73 73 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 74 74 | 
             
                none: false
         | 
| 75 75 | 
             
                requirements:
         | 
| 76 | 
            -
                - - ' | 
| 76 | 
            +
                - - ! '>='
         | 
| 77 77 | 
             
                  - !ruby/object:Gem::Version
         | 
| 78 | 
            -
                    version: 2.4.5. | 
| 78 | 
            +
                    version: 2.4.5.2
         | 
| 79 79 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 80 80 | 
             
              name: sqlite3-ruby
         | 
| 81 81 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -275,11 +275,10 @@ files: | |
| 275 275 | 
             
            - config/locales/en.yml
         | 
| 276 276 | 
             
            - config/locales/es.yml
         | 
| 277 277 | 
             
            - config/routes.rb
         | 
| 278 | 
            -
            - db/migrate/ | 
| 279 | 
            -
            - db/migrate/20120208143721_documents_group_title_and_description_in_activity_object.rb
         | 
| 278 | 
            +
            - db/migrate/20120208143721_create_social_stream_documents.rb
         | 
| 280 279 | 
             
            - lib/delayed_paperclip/social_stream-documents.rb
         | 
| 281 280 | 
             
            - lib/generators/social_stream/documents/install_generator.rb
         | 
| 282 | 
            -
            - lib/ | 
| 281 | 
            +
            - lib/generators/social_stream/documents/templates/initializer.rb
         | 
| 283 282 | 
             
            - lib/samples/car.jpg
         | 
| 284 283 | 
             
            - lib/samples/house.jpg
         | 
| 285 284 | 
             
            - lib/samples/loremipsum.odt
         | 
| @@ -383,3 +382,4 @@ specification_version: 3 | |
| 383 382 | 
             
            summary: File capabilities for Social Stream, the core for building social network
         | 
| 384 383 | 
             
              websites
         | 
| 385 384 | 
             
            test_files: []
         | 
| 385 | 
            +
            has_rdoc: 
         | 
| @@ -1,28 +0,0 @@ | |
| 1 | 
            -
            class DocumentsGroupTitleAndDescriptionInActivityObject < ActiveRecord::Migration
         | 
| 2 | 
            -
              def up
         | 
| 3 | 
            -
                ao_ts = ActivityObject.record_timestamps
         | 
| 4 | 
            -
                ActivityObject.record_timestamps = false
         | 
| 5 | 
            -
             | 
| 6 | 
            -
                # Fix 'documents' table
         | 
| 7 | 
            -
                d_ts = Document.record_timestamps
         | 
| 8 | 
            -
                Document.record_timestamps = false
         | 
| 9 | 
            -
             | 
| 10 | 
            -
                Document.all.each do |d|
         | 
| 11 | 
            -
                  d.activity_object.title = d.read_attribute(:title)
         | 
| 12 | 
            -
                  d.activity_object.description = d.read_attribute(:description)
         | 
| 13 | 
            -
                  d.save!
         | 
| 14 | 
            -
                end
         | 
| 15 | 
            -
                change_table :documents do |t|
         | 
| 16 | 
            -
                  t.remove :title
         | 
| 17 | 
            -
                  t.remove :description
         | 
| 18 | 
            -
                end
         | 
| 19 | 
            -
                Document.reset_column_information
         | 
| 20 | 
            -
                Document.record_timestamps = d_ts
         | 
| 21 | 
            -
             | 
| 22 | 
            -
                ActivityObject.record_timestamps = ao_ts
         | 
| 23 | 
            -
              end
         | 
| 24 | 
            -
             | 
| 25 | 
            -
              def down
         | 
| 26 | 
            -
                raise ActiveRecord::IrreversibleMigration # Due to trans-gem oddities
         | 
| 27 | 
            -
              end
         | 
| 28 | 
            -
            end
         | 
| @@ -1,62 +0,0 @@ | |
| 1 | 
            -
            # Monkey patch https://github.com/thoughtbot/paperclip/issues/293#issuecomment-2484541
         | 
| 2 | 
            -
            # Monkey patch https://github.com/thoughtbot/paperclip/commit/2583a27df497e72ec7a200b6aa707948e88fd166
         | 
| 3 | 
            -
            #
         | 
| 4 | 
            -
            # Remove with paperclip > 2.5.0
         | 
| 5 | 
            -
            require 'paperclip'
         | 
| 6 | 
            -
             | 
| 7 | 
            -
            module Paperclip::ClassMethods
         | 
| 8 | 
            -
              def has_attached_file name, options = {}
         | 
| 9 | 
            -
                include Paperclip::InstanceMethods
         | 
| 10 | 
            -
             | 
| 11 | 
            -
                if attachment_definitions.nil?
         | 
| 12 | 
            -
                  if respond_to?(:class_attribute)
         | 
| 13 | 
            -
                    self.attachment_definitions = {}
         | 
| 14 | 
            -
                  else
         | 
| 15 | 
            -
                    write_inheritable_attribute(:attachment_definitions, {})
         | 
| 16 | 
            -
                  end
         | 
| 17 | 
            -
                else
         | 
| 18 | 
            -
                  self.attachment_definitions = self.attachment_definitions.dup
         | 
| 19 | 
            -
                end
         | 
| 20 | 
            -
             | 
| 21 | 
            -
                attachment_definitions[name] = {:validations => []}.merge(options)
         | 
| 22 | 
            -
                Paperclip.classes_with_attachments << self.name
         | 
| 23 | 
            -
                Paperclip.check_for_url_clash(name,attachment_definitions[name][:url],self.name)
         | 
| 24 | 
            -
             | 
| 25 | 
            -
                after_save :save_attached_files
         | 
| 26 | 
            -
                before_destroy :prepare_for_destroy
         | 
| 27 | 
            -
                after_destroy :destroy_attached_files
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                define_paperclip_callbacks :post_process, :"#{name}_post_process"
         | 
| 30 | 
            -
             | 
| 31 | 
            -
                define_method name do |*args|
         | 
| 32 | 
            -
                  a = attachment_for(name)
         | 
| 33 | 
            -
                  (args.length > 0) ? a.to_s(args.first) : a
         | 
| 34 | 
            -
                end
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                define_method "#{name}=" do |file|
         | 
| 37 | 
            -
                  attachment_for(name).assign(file)
         | 
| 38 | 
            -
                end
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                define_method "#{name}?" do
         | 
| 41 | 
            -
                  attachment_for(name).file?
         | 
| 42 | 
            -
                end
         | 
| 43 | 
            -
             | 
| 44 | 
            -
                validates_each(name) do |record, attr, value|
         | 
| 45 | 
            -
                  attachment = record.attachment_for(name)
         | 
| 46 | 
            -
                  attachment.send(:flush_errors)
         | 
| 47 | 
            -
                end
         | 
| 48 | 
            -
              end
         | 
| 49 | 
            -
             | 
| 50 | 
            -
              def validates_attachment_presence name, options = {}
         | 
| 51 | 
            -
                message = options[:message] || :empty
         | 
| 52 | 
            -
                validates_each :"#{name}_file_name" do |record, attr, value|
         | 
| 53 | 
            -
                  if_clause_passed = options[:if].nil? || (options[:if].respond_to?(:call) ? options[:if].call(record) != false : record.send(options[:if]))
         | 
| 54 | 
            -
                  unless_clause_passed = options[:unless].nil? || (options[:unless].respond_to?(:call) ? !!options[:unless].call(record) == false : !record.send(options[:unless]))
         | 
| 55 | 
            -
             | 
| 56 | 
            -
                  if if_clause_passed && unless_clause_passed && value.blank?
         | 
| 57 | 
            -
                    record.errors.add(name, message)
         | 
| 58 | 
            -
                    record.errors.add("#{name}_file_name", message)
         | 
| 59 | 
            -
                  end
         | 
| 60 | 
            -
                end
         | 
| 61 | 
            -
              end
         | 
| 62 | 
            -
            end
         |