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
44 lines
1.1 KiB
Ruby
44 lines
1.1 KiB
Ruby
module StatsHelper
|
|
def chart_tag(opt = {})
|
|
opt[:data] ||= {}
|
|
opt[:data][:graph] = admin_api_stats_path(chart_data(opt))
|
|
content_tag :div, "", opt
|
|
end
|
|
|
|
def chart_data(opt = {})
|
|
data = nil
|
|
if opt[:id].present?
|
|
data = { opt[:id] => true }
|
|
elsif opt[:event].present?
|
|
data = { event: opt[:event] }
|
|
end
|
|
data
|
|
end
|
|
|
|
def graph_link_text(event)
|
|
text = t("admin.stats.graph.#{event}")
|
|
if text.to_s.match(/translation missing/)
|
|
text = event
|
|
end
|
|
text
|
|
end
|
|
|
|
def budget_investments_chart_tag(opt = {})
|
|
opt[:data] ||= {}
|
|
opt[:data][:graph] = admin_api_stats_path(budget_investments: true)
|
|
content_tag :div, "", opt
|
|
end
|
|
|
|
def number_to_stats_percentage(number, options = {})
|
|
number_to_percentage(number, { strip_insignificant_zeros: true, precision: 2 }.merge(options))
|
|
end
|
|
|
|
def number_with_info_tags(number, text, html_class: "")
|
|
content_tag :p, class: "number-with-info #{html_class}".strip do
|
|
content_tag :span, class: "content" do
|
|
content_tag(:span, number, class: "number") + content_tag(:span, text, class: "info")
|
|
end
|
|
end
|
|
end
|
|
end
|