Skip to content
Snippets Groups Projects
Unverified Commit 0fa2c2e6 authored by Emily Bache's avatar Emily Bache Committed by GitHub
Browse files

Merge pull request #404 from nitsanavni/jq

add jq translation
parents 100fb362 9a2736d2
No related branches found
No related tags found
No related merge requests found
# Installs
[install jaq](https://github.com/01mf02/jaq#installation) (latest development version)
# Failing Unit Test
```shell
./test-gilded-rose.sh
```
# TextTest Fixture
```shell
jaq -nr "$(cat gilded-rose.jq) $(cat texttest_fixture.jq)"
```
Specify days (e.g. 10 days):
```shell
jaq --arg days 10 -nr "$(cat gilded-rose.jq) $(cat texttest_fixture.jq)"
```
def update_quality:
[
foreach .[] as $item (
null;
$item |
if .name != "Aged Brie" and .name != "Backstage passes to a TAFKAL80ETC concert" then
if .quality > 0 then
if .name != "Sulfuras, Hand of Ragnaros" then
.quality = .quality - 1
else . end
else . end
else
if .quality < 50 then
.quality = .quality + 1
|
if .name == "Backstage passes to a TAFKAL80ETC concert" then
if .sell_in < 11 then
if .quality < 50 then
.quality = .quality + 1
else . end
else . end
|
if .sell_in < 6 then
if .quality < 50 then
.quality = .quality + 1
else . end
else . end
else . end
else . end
end
|
if .name != "Sulfuras, Hand of Ragnaros" then
.sell_in = .sell_in - 1
else . end
|
if .sell_in < 0 then
if .name != "Aged Brie" then
if .name != "Backstage passes to a TAFKAL80ETC concert" then
if .quality > 0 then
if .name != "Sulfuras, Hand of Ragnaros" then
.quality = .quality - 1
else . end
else . end
else
.quality = .quality - .quality
end
else
if .quality < 50 then
.quality = .quality + 1
else . end
end
else . end
)
];
#!/usr/bin/env bash
jaq -en "$(cat gilded-rose.jq)"'[{name:"foo",sell_in:0,quality:0}] | update_quality | .[].name == "fixme"'
"OMGHAI!",
(
[
{ name: "+5 Dexterity Vest", sell_in: 10, quality: 20 },
{ name: "Aged Brie", sell_in: 2, quality: 0 },
{ name: "Elixir of the Mongoose", sell_in: 5, quality: 7 },
{ name: "Sulfuras, Hand of Ragnaros", sell_in: 0, quality: 80 },
{ name: "Sulfuras, Hand of Ragnaros", sell_in: 1, quality: 80 },
{ name: "Backstage passes to a TAFKAL80ETC concert", sell_in: 15, quality: 20 },
{ name: "Backstage passes to a TAFKAL80ETC concert", sell_in: 10, quality: 49 },
{ name: "Backstage passes to a TAFKAL80ETC concert", sell_in: 5, quality: 49 },
{ name: "Conjured Mana Cake", sell_in: 3, quality: 6} # <-- :O
] |
{ items: ., day: 0 } |
recurse(.day += 1 | .items = (.items | update_quality); .day < ($ARGS.named.days // 2 | tonumber)) |
(
"",
(["-------- day ", (.day | tostring), " --------"] | add),
("name, sellIn, quality"),
(.items[] | [.name, .sell_in, .quality | tostring] | join(", "))
)
)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment