Files
grecia/app/controllers/budgets/ballot/lines_controller.rb
Javi Martín db97f9d08c Add and apply rubocop rules for empty lines
We were very inconsistent regarding these rules.

Personally I prefer no empty lines around blocks, clases, etc... as
recommended by the Ruby style guide [1], and they're the default values
in rubocop, so those are the settings I'm applying.

The exception is the `private` access modifier, since we were leaving
empty lines around it most of the time. That's the default rubocop rule
as well. Personally I don't have a strong preference about this one.


[1] https://rubystyle.guide/#empty-lines-around-bodies
2019-10-24 17:11:47 +02:00

84 lines
2.2 KiB
Ruby

module Budgets
module Ballot
class LinesController < ApplicationController
before_action :authenticate_user!
before_action :load_budget
before_action :load_ballot
before_action :load_tag_cloud
before_action :load_categories
before_action :load_investments
before_action :load_ballot_referer
load_and_authorize_resource :budget
load_and_authorize_resource :ballot, class: "Budget::Ballot", through: :budget
load_and_authorize_resource :line, through: :ballot, find_by: :investment_id, class: "Budget::Ballot::Line"
def create
load_investment
load_heading
load_map
@ballot.add_investment(@investment)
end
def destroy
@investment = @line.investment
load_heading
load_map
@line.destroy!
load_investments
end
private
def line_params
params.permit(:investment_id, :budget_id)
end
def load_budget
@budget = Budget.find_by_slug_or_id! params[:budget_id]
end
def load_ballot
@ballot = Budget::Ballot.where(user: current_user, budget: @budget).first_or_create!
end
def load_investment
@investment = Budget::Investment.find(params[:investment_id])
end
def load_investments
if params[:investments_ids].present?
@investment_ids = params[:investments_ids]
@investments = Budget::Investment.where(id: params[:investments_ids])
end
end
def load_heading
@heading = @investment.heading
end
def load_tag_cloud
@tag_cloud = TagCloud.new(Budget::Investment, params[:search])
end
def load_categories
@categories = Tag.category.order(:name)
end
def load_ballot_referer
@ballot_referer = session[:ballot_referer]
end
def load_map
@investments ||= []
@investments_map_coordinates = MapLocation.where(investment: @investments).map do |loc|
loc.json_data
end
@map_location = MapLocation.load_from_heading(@heading)
end
end
end
end