Sha256: d9eeb7bb9338ccdff0181043e7e16a590054279a8857f462e81ad683a0874b84

Contents?: true

Size: 875 Bytes

Versions: 40

Compression:

Stored size: 875 Bytes

Contents

module Beef
  module Has
    module Assets
      def self.included(base)
        base.extend ClassMethods
      end
      
      module ClassMethods
        def has_assets
          has_many :assetings, :as => :assetable, :dependent => :delete_all
          has_many :assets, :through => :assetings, :order => 'assetings.id'
          
          # Override the default asset_ids method
          define_method("asset_ids=") do |new_value|
            ids = (new_value || []).reject { |nid| nid.blank? }
            ids.collect!{ |id| id.to_i}
            logger.debug "ASSETS the same #{ids == self.asset_ids} | IDS #{ids} | #{self.asset_ids}"
            return if ids == self.asset_ids
            self.assets.clear
            ids.each_index do |idx|
              self.assets << Asset.find(ids[idx])
            end
          end
        end
      end
    end
  end  
end

Version data entries

40 entries across 40 versions & 1 rubygems

Version Path
beef-has_assets-0.2.10 lib/has_assets.rb
beef-has_assets-0.2.3 lib/has_assets.rb
beef-has_assets-0.2.5 lib/has_assets.rb
beef-has_assets-0.2.6 lib/has_assets.rb
beef-has_assets-0.2.7 lib/has_assets.rb
beef-has_assets-0.2.8 lib/has_assets.rb
beef-has_assets-0.2.9 lib/has_assets/has_assets.rb
beef-has_assets-0.3.1 lib/has_assets.rb
beef-has_assets-0.3.2 lib/has_assets.rb
beef-has_assets-0.3.3 lib/has_assets.rb
beef-has_assets-0.3.4 lib/has_assets.rb
beef-has_assets-0.3.5 lib/has_assets.rb
beef-has_assets-0.3.6 lib/has_assets.rb
beef-has_assets-0.3.7 lib/has_assets.rb
beef-has_assets-0.3.8 lib/has_assets.rb
beef-has_assets-0.3.9 lib/has_assets.rb
beef-has_assets-0.4.0 lib/has_assets.rb
beef-has_assets-0.4.1 lib/has_assets.rb
beef-has_assets-0.5.0 lib/has_assets.rb
beef-has_assets-0.7.12 lib/has_assets.rb