# class Tag < ProtoTag # belongs_to :module_app # end class Tag include Mongoid::Document include Mongoid::Timestamps include Impressionist::Impressionable is_impressionable :counter_cache => { :column_name => :view_count } field :name, localize: true field :view_count, :type => Integer, :default => 0 field :cloud_view_count, :type => Integer, :default => 0 belongs_to :module_tag, polymorphic: true has_many :taggings, dependent: :destroy #field :cloud_amper,:type: Integer,:default=> 0 # def self.sorted_for_cloud # tags = {} # self.all.each{ |tag| # tags.merge!({tag => self.get_impressionist(tag)}) # } # if !tags.blank? # sorted_tags = tags.sort{|a,b| a[1]<=>b[1]}.reverse # sorted_tags[0][1] = :hot1 # offset = (sorted_tags.size - 1) / 3 # i = 1 # class_i = 2 # sorted_tags[1..-1].collect!{ |x| # x[1] = "hot#{class_i}" # i == offset ? i = 1 : i += 1 if class_i < 4 # class_i += 1 if i == offset && class_i < 4 # } # sorted_tags # else # [] # end # end protected def self.get_impressionist(item_tag = self) item_tag.impressions.where(:created_at.gte=> 14.days.ago,:created_at.lte => Time.now).count end end