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