lib/uploader/asset.rb in rails-uploader-0.1.4 vs lib/uploader/asset.rb in rails-uploader-0.2.0

- old
+ new

@@ -1,17 +1,26 @@ module Uploader module Asset def self.included(base) + base.send(:extend, Uploader::Asset::ClassMethods) base.send(:include, Uploader::Asset::AssetProcessor) + + base.instance_eval do + before_create :generate_public_token + end end module Mongoid def self.included(base) + base.send(:extend, Uploader::Asset::ClassMethods) base.send(:include, Uploader::Asset::AssetProcessor) base.instance_eval do field :guid, type: String + field :public_token, type: String + + before_create :generate_public_token end end def as_json(options = {}) json_data = super @@ -35,10 +44,19 @@ false end end end + module ClassMethods + def generate_token(column) + loop do + token = Uploader.guid + break token unless where({ column => token }).exists? + end + end + end + module AssetProcessor # Save asset # Usage: # # class Asset < ActiveRecord::Base @@ -73,9 +91,13 @@ # end # end # def uploader_destroy(params, request) destroy + end + + def generate_public_token + self.public_token = self.class.generate_token(:public_token) end end def assetable_id_format(assetable_id) assetable_id