ruby function for formatting time

This commit is contained in:
Lynne Megido 2020-03-06 21:32:01 +10:00
parent 1d295e27f5
commit e6f2077d9b
Signed by: lynnesbian
GPG key ID: F0A184B5213D9F90
3 changed files with 20 additions and 17 deletions

View file

@ -5,11 +5,8 @@
<p>
By {{ recipe.author }} -
{% if recipe.difficulty %}Difficulty: <span class='stars'>{{ recipe.difficulty | to_stars }}</span> - {%- endif %}
{{ recipe.method | size }} steps {%- if recipe.time %} -
{%- if recipe.time > 59 %} {{ recipe.time | divided_by: 60}}h {% endif -%}
{% assign mins = recipe.time | modulo: 60 -%}
{%- if mins > 0 %}{{ mins }}m{% endif %}
{%- endif -%}
{{ recipe.method | size }} steps
{%- if recipe.time %} - {{ recipe.time | hours_and_minutes: false }}{%- endif -%}
</p>
<ol class='excerpt'>
{% for step in recipe.method | limit: 4 %}

View file

@ -17,18 +17,7 @@ custom_h1: true
<h1 class='scrolling'>{{ page.name }}</h1>
<h1 class='invisible'>{{ page.name }}</h1>
{%- if page.time -%}
{%- if page.time > 59 %}
{%- assign hours = page.time | divided_by: 60 -%}
{%- assign minutes = page.time | modulo: 60 -%}
{%- assign time = hours | append: " hour" -%}
{%- if hours > 1 %}{% assign time = time | append: "s" %}{% endif -%}
{%- if minutes > 0 -%}
{%- assign time = time | append: " " | append: minutes | append: " minute" -%}
{%- if minutes > 1 %}{% assign time = time | append: "s" %}{% endif -%}
{%- endif -%}
{%- else -%}
{%- assign time = page.time %}
{%- endif -%}
{%- assign time = page.time | hours_and_minutes -%}
{%- endif -%}
<p class='subtle'>{% if page.difficulty %}Difficulty: <span class='stars'>{{ page.difficulty | to_stars }}</span> - {% endif %}{{ page.method.size }} steps - Estimated cooking time: {{ time | default: "Not provided" }} {% if page.author %} - By {{ page.author }} {% endif %}</p>

View file

@ -57,6 +57,23 @@ module Jekyll
out
end
def hours_and_minutes(input, long = true)
time = input.to_i.divmod(60)
hours, minutes = "h", "m"
if long
hours = " hour" + (time[0] > 1 ? "s" : "") + " "
minutes = " minute" + (time[1] > 1 ? "s" : "") + " "
end
if time[1] == 0
"#{time[0]}#{hours}"
elsif time[0] == 0
"#{time[1]}#{minutes}"
else
"#{time[0]}#{hours}#{time[1]}#{minutes}"
end
end
end
end