class Milkode::PackageList
Constants
- ADD_NUM
- EXCLUDE_UPDATE_SEC
- FAVORITE_LIST_NUM
- FAV_NUM
- NEWS_ITEM_NUM
- UPDATE_NUM
- VIEW_NUM
Public Class Methods
new(grndb, suburl)
click to toggle source
# File lib/milkode/cdweb/lib/package_list.rb, line 21 def initialize(grndb, suburl) @grndb = grndb @suburl = suburl end
Public Instance Methods
favorite_list(params)
click to toggle source
# File lib/milkode/cdweb/lib/package_list.rb, line 53 def favorite_list(params) names = @grndb.packages.favs.map{|r| r.name}[0..FAVORITE_LIST_NUM-1] list = names.map_with_index {|v, index| "<strong><a id='favorite_list_#{index}' href='#{Mkurl.new(@suburl + '/home/' + v, params).inherit_query_shead}' onclick='topic_path(\"favorite_list_#{index}\");'>#{v}</a></strong>" }.join(" \n") <<EOF #{list} <a href="#{@suburl}/home?sort=favtime">...</a> EOF end
favorite_list_size()
click to toggle source
# File lib/milkode/cdweb/lib/package_list.rb, line 49 def favorite_list_size @grndb.packages.favs.size end
news_items(locale)
click to toggle source
# File lib/milkode/cdweb/lib/package_list.rb, line 66 def news_items(locale) updates = @grndb.packages.sort('updatetime')[0...NEWS_ITEM_NUM].map do |v| { kind: :update_news, package: v, timestamp: v.updatetime, } end adds = @grndb.packages.sort('addtime')[0...NEWS_ITEM_NUM].map do |v| { kind: :add_news, package: v, timestamp: v.addtime, } end items = (updates + adds).sort_by {|item| item[:timestamp] }.reverse .find_all {|v| if v[:kind] == :update_news && v[:timestamp] - v[:package].addtime < EXCLUDE_UPDATE_SEC false else true end }[0...NEWS_ITEM_NUM] items.map {|item| v = item[:package] message = I18n.t(item[:kind], {package_name: "<a href=\"#{@suburl}/home/#{v.name}\">#{v.name}</a>", locale: locale}) "<div class='news-item'>#{message} <span class='time'>#{news_time(item[:timestamp])}</span></div>" }.join("\n") end
top_add()
click to toggle source
# File lib/milkode/cdweb/lib/package_list.rb, line 36 def top_add grndb_list("addtime", ADD_NUM) end
top_fav()
click to toggle source
# File lib/milkode/cdweb/lib/package_list.rb, line 44 def top_fav a = @grndb.packages.favs.map{|r| r.name} top_list(a[0...FAV_NUM], 'favtime') end
top_update()
click to toggle source
# File lib/milkode/cdweb/lib/package_list.rb, line 40 def top_update grndb_list("updatetime", UPDATE_NUM) end
top_view()
click to toggle source
topページへの表示数の調整は結構大切
view .. 7 add .. 5 update .. 5 fav .. 5
# File lib/milkode/cdweb/lib/package_list.rb, line 32 def top_view grndb_list("viewtime", VIEW_NUM) end
Private Instance Methods
grndb_list(column_name, num)
click to toggle source
# File lib/milkode/cdweb/lib/package_list.rb, line 105 def grndb_list(column_name, num) a = @grndb.packages.sort(column_name).map {|r| r.name} top_list(a[0...num], column_name) end
news_time(timestamp)
click to toggle source
# File lib/milkode/cdweb/lib/package_list.rb, line 122 def news_time(timestamp) timestamp.strftime("%Y-%m-%d %R") end
top_list(list, column_name)
click to toggle source
# File lib/milkode/cdweb/lib/package_list.rb, line 110 def top_list(list, column_name) list = list.map {|v| " <li><a href=\"#{@suburl}/home/#{v}\">#{v}</a></li>" }.join("\n") <<EOF <ul class="unstyled_margin"> #{list} <li><a href=\"#{@suburl}/home?sort=#{column_name}">next >></a></li> </ul> EOF end