Fix tags
This commit is contained in:
1 parent
1b29eb5de4
commit
4127d7f2eb
5 files changed
+27
-32
No files matched your search
+21
-26
@@ -9,37 +9,32 @@ class Tag
|
||||
field :view_count, :type => Integer, :default => 0
|
||||
#field :cloud_amper,:type: Integer,:default=> 0
|
||||
belongs_to :module_app
|
||||
|
||||
def cloud_amper
|
||||
for_now = {:start_at=>14.days.ago,:end_at=>Time.now}
|
||||
for_yesterday = {:start_at=>15.days.ago,:end_at=>1.days.ago}
|
||||
|
||||
|
||||
range = self.class.all.collect{ |tag|
|
||||
get_impressionist(tag)
|
||||
def self.sorted_for_cloud
|
||||
tags = {}
|
||||
self.all.each{ |tag|
|
||||
tags.merge!({tag => self.get_impressionist(tag)})
|
||||
}
|
||||
range.sort!.reverse!.uniq!
|
||||
offset_size = range.size+4
|
||||
section_3 = range.first..range[(offset_size/4)]
|
||||
section_2 = range[(offset_size/4)+1]..range[2*(offset_size/4)] rescue nil
|
||||
section_1 = range[2*(offset_size/4)+1]..last rescue nil
|
||||
|
||||
|
||||
case get_impressionist
|
||||
when range.first
|
||||
return :hot1
|
||||
when section_1
|
||||
return :hot2
|
||||
when section_2
|
||||
return :hot3
|
||||
when section_3
|
||||
return :hot4
|
||||
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 get_impressionist(item_tag = self)
|
||||
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
|
||||
|
||||
|
||||
Reference in new issue
Block a user