5
3
mirror of https://github.com/tildeverse/lobsters synced 2024-06-24 17:27:04 +00:00

style/wrapping

This commit is contained in:
joshua stein 2014-08-03 20:47:13 -05:00
parent b3e6679da0
commit 8a3b133d87
3 changed files with 45 additions and 25 deletions

View File

@ -24,7 +24,9 @@ class HomeController < ApplicationController
end
def hidden
@stories, @show_more = get_from_cache(hidden: true) { paginate stories.hidden }
@stories, @show_more = get_from_cache(hidden: true) {
paginate stories.hidden
}
@heading = @title = "Hidden Stories"
@cur_url = "/hidden"
@ -33,7 +35,9 @@ class HomeController < ApplicationController
end
def index
@stories, @show_more = get_from_cache(hottest: true) { paginate stories.hottest }
@stories, @show_more = get_from_cache(hottest: true) {
paginate stories.hottest
}
@rss_link ||= { :title => "RSS 2.0",
:href => "/rss#{@user ? "?token=#{@user.rss_token}" : ""}" }
@ -55,7 +59,9 @@ class HomeController < ApplicationController
end
def newest
@stories, @show_more = get_from_cache(newest: true) { paginate stories.newest }
@stories, @show_more = get_from_cache(newest: true) {
paginate stories.newest
}
@heading = @title = "Newest Stories"
@cur_url = "/newest"
@ -79,7 +85,9 @@ class HomeController < ApplicationController
def newest_by_user
by_user = User.where(:username => params[:user]).first!
@stories, @show_more = get_from_cache(by_user: by_user) { paginate stories.by_user(by_user) }
@stories, @show_more = get_from_cache(by_user: by_user) {
paginate stories.by_user(by_user)
}
@heading = @title = "Newest Stories by #{by_user.username}"
@cur_url = "/newest/#{by_user.username}"
@ -91,14 +99,14 @@ class HomeController < ApplicationController
end
def recent
@stories, @show_more = get_from_cache(recent: true) do
@stories, @show_more = get_from_cache(recent: true) {
scope = if page == 1
stories.recent
else
stories.newest
end
paginate scope
end
}
@heading = @title = "Recent Stories"
@cur_url = "/recent"
@ -113,7 +121,9 @@ class HomeController < ApplicationController
def tagged
@tag = Tag.where(:tag => params[:tag]).first!
@stories, @show_more = get_from_cache(tag: @tag) { paginate stories.tagged(@tag) }
@stories, @show_more = get_from_cache(tag: @tag) {
paginate stories.tagged(@tag)
}
@heading = @title = @tag.description.blank?? @tag.tag : @tag.description
@cur_url = tag_url(@tag.tag)
@ -139,7 +149,9 @@ class HomeController < ApplicationController
@cur_url << "/#{params[:length]}"
end
@stories, @show_more = get_from_cache(top: true, length: length) { paginate stories.top(length) }
@stories, @show_more = get_from_cache(top: true, length: length) {
paginate stories.top(length)
}
if length[:dur] > 1
@heading = @title = "Top Stories of the Past #{length[:dur]} " <<
@ -152,7 +164,6 @@ class HomeController < ApplicationController
end
private
def filtered_tag_ids
if @user
@user.tag_filters.map{|tf| tf.tag_id }
@ -177,7 +188,8 @@ private
if Rails.env.development? || @user || tags_filtered_by_cookie.any?
yield
else
key = opts.merge(page: page).sort.map{|k,v| "#{k}=#{v.to_param}" }.join(" ")
key = opts.merge(page: page).sort.map{|k,v| "#{k}=#{v.to_param}"
}.join(" ")
Rails.cache.fetch("stories #{key}", :expires_in => 45, &block)
end
end

View File

@ -13,8 +13,7 @@ class StoriesPaginator
.includes(:user, :taggings => :tag)
end
private
private
def with_pagination_info(scope)
scope = scope.to_a
show_more = scope.count > STORIES_PER_PAGE

View File

@ -17,14 +17,18 @@ class StoryRepository
def hidden
hidden = base_scope
hidden = hidden.where(Story.arel_table[:id].in(hidden_arel)) if @user
hidden = filter_tags hidden, @params[:exclude_tags] if @params[:exclude_tags].try(:any?)
hidden.order('hotness')
if @user
hidden = hidden.where(Story.arel_table[:id].in(hidden_arel))
end
if @params[:exclude_tags].try(:any?)
hidden = filter_tags hidden, @params[:exclude_tags]
end
hidden.order("hotness")
end
def newest
newest = filter_downvoted_and_tags base_scope
newest.order('stories.created_at DESC')
newest.order("stories.created_at DESC")
end
def by_user(user)
@ -47,7 +51,8 @@ class StoryRepository
if story_ids.length > StoriesPaginator::STORIES_PER_PAGE + 1
# keep the top half (newest stories)
keep_ids = story_ids[0 .. ((StoriesPaginator::STORIES_PER_PAGE + 1) * 0.5)]
keep_ids = story_ids[0 .. ((StoriesPaginator::STORIES_PER_PAGE + 1) *
0.5)]
story_ids = story_ids[keep_ids.length - 1 ... story_ids.length]
# make the bottom half a random selection of older stories
@ -61,7 +66,7 @@ class StoryRepository
end
end
stories.order('stories.created_at DESC')
stories.order("stories.created_at DESC")
end
def tagged(tag)
@ -75,23 +80,27 @@ class StoryRepository
)
)
)
tagged.order('stories.created_at DESC')
tagged.order("stories.created_at DESC")
end
def top(length)
top = base_scope.where("created_at >= (NOW() - INTERVAL #{length[:dur]} #{length[:intv].upcase})")
top.order '(CAST(upvotes AS integer) - CAST(downvotes AS integer)) DESC'
top = base_scope.where("created_at >= (NOW() - INTERVAL " <<
"#{length[:dur]} #{length[:intv].upcase})")
top.order("(CAST(upvotes AS integer) - CAST(downvotes AS integer)) DESC")
end
private
private
def base_scope
Story.unmerged.where(is_expired: false)
end
def filter_downvoted_and_tags(scope)
scope = filter_downvoted scope if @user
scope = filter_tags scope, @params[:exclude_tags] if @params[:exclude_tags].try(:any?)
if @user
scope = filter_downvoted scope
end
if @params[:exclude_tags].try(:any?)
scope = filter_tags scope, @params[:exclude_tags]
end
scope
end