2016-01-12 18:43:00 -06:00
|
|
|
module RecipesHelper
|
2016-01-18 15:10:25 -06:00
|
|
|
def recipe_time(recipe)
|
|
|
|
output = ''.html_safe
|
|
|
|
|
|
|
|
if recipe.total_time.present?
|
|
|
|
output << "#{humanize_seconds(recipe.total_time.to_i.minutes)}"
|
|
|
|
if recipe.active_time.present?
|
|
|
|
output << " (#{humanize_seconds(recipe.active_time.to_i.minutes)} active)"
|
|
|
|
end
|
|
|
|
elsif recipe.active_time.present?
|
|
|
|
output << humanize_seconds(recipe.active_time.to_i.minutes)
|
|
|
|
end
|
|
|
|
|
|
|
|
output
|
|
|
|
end
|
|
|
|
|
|
|
|
def humanize_seconds(secs)
|
|
|
|
[[60, :s], [60, :m], [24, :h], [1000, :d]].map{ |count, name|
|
|
|
|
if secs > 0
|
|
|
|
secs, n = secs.divmod(count)
|
|
|
|
n == 0 ? nil : "#{n.to_i} #{name}"
|
|
|
|
end
|
|
|
|
}.compact.reverse.join(' ')
|
|
|
|
end
|
2016-06-22 13:49:03 -05:00
|
|
|
|
|
|
|
def nutrient_row(recipe, nutrients, heading, nutrient_name)
|
|
|
|
content_tag('tr') do
|
|
|
|
[
|
|
|
|
content_tag('td', heading),
|
|
|
|
recipe.parsed_yield ? content_tag('td', nutrients.send("#{nutrient_name}_per".to_sym, recipe.parsed_yield.number)) : nil,
|
|
|
|
content_tag('td', nutrients.send("#{nutrient_name}".to_sym))
|
|
|
|
].compact.join("\n".html_safe).html_safe
|
|
|
|
end
|
|
|
|
end
|
2016-09-28 17:08:43 -05:00
|
|
|
|
|
|
|
def index_sort_header(text, field, criteria)
|
|
|
|
uri = URI(request.original_fullpath)
|
|
|
|
query = Rack::Utils.parse_query(uri.query)
|
|
|
|
|
|
|
|
directions = [:asc, :desc]
|
|
|
|
|
|
|
|
current_field = criteria.sort_column
|
|
|
|
current_direction = criteria.sort_direction
|
|
|
|
field_param = 'criteria[sort_column]'
|
|
|
|
direction_param = 'criteria[sort_direction]'
|
|
|
|
|
|
|
|
if request.get?
|
|
|
|
is_sorted = current_field == field.to_sym
|
|
|
|
|
|
|
|
if is_sorted && directions.include?(current_direction)
|
|
|
|
direction = (directions.reject { |d| d == current_direction }).first
|
|
|
|
else
|
|
|
|
direction = directions.first
|
|
|
|
end
|
|
|
|
|
|
|
|
if is_sorted && direction == :asc
|
|
|
|
link_class = 'sorted desc'
|
|
|
|
elsif is_sorted && direction == :desc
|
|
|
|
link_class = 'sorted asc'
|
|
|
|
else
|
|
|
|
link_class = 'sorted'
|
|
|
|
end
|
|
|
|
|
|
|
|
query[field_param.to_s] = field.to_s
|
|
|
|
query[direction_param.to_s] = direction.to_s
|
|
|
|
link_to text, "#{uri.path}?#{query.to_query}", class: link_class
|
|
|
|
else
|
|
|
|
text
|
|
|
|
end
|
|
|
|
end
|
2016-01-12 18:43:00 -06:00
|
|
|
end
|