mirror of
https://github.com/oh-my-fish/oh-my-fish
synced 2024-11-03 15:40:32 +00:00
Merge pull request #298 from bucaran/master
This commit is contained in:
commit
fed8c86313
@ -1,8 +0,0 @@
|
|||||||
# Remove item from list. List must be the name of a global variable.
|
|
||||||
# @params <item> <list>
|
|
||||||
function array.delete
|
|
||||||
set -l item $argv[1]
|
|
||||||
if set -l index (contains -i -- $item $$argv[2])
|
|
||||||
set -e $argv[2][$index]
|
|
||||||
end
|
|
||||||
end
|
|
@ -20,5 +20,15 @@ function expect
|
|||||||
else
|
else
|
||||||
emit assertion_failure "Expected \"$list\" to include \"$item\""
|
emit assertion_failure "Expected \"$list\" to include \"$item\""
|
||||||
end
|
end
|
||||||
|
|
||||||
|
case 'to_not_include'
|
||||||
|
set -l item $actual
|
||||||
|
set -l list $expected
|
||||||
|
|
||||||
|
if not contains -- "$item" $list
|
||||||
|
emit assertion_success
|
||||||
|
else
|
||||||
|
emit assertion_failure "Expected \"$list\" to not include \"$item\""
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
35
plugins/fish-spec/list.erase.fish
Normal file
35
plugins/fish-spec/list.erase.fish
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
# NAME
|
||||||
|
# list.erase - erase items from lists
|
||||||
|
#
|
||||||
|
# SYNOPSIS
|
||||||
|
# <item> [<item>...] [--from] <list>
|
||||||
|
# <item> [<item>...] --from <list1> [<list2>...]
|
||||||
|
#
|
||||||
|
# DESCRIPTION
|
||||||
|
# Erase any number of items from any number of lists. If more than one
|
||||||
|
# list is specified it must be separated from the items with --from.
|
||||||
|
#
|
||||||
|
# NOTES
|
||||||
|
# While items are basically any valid sequence of symbols, lists refer
|
||||||
|
# to any global variable or local variable in the scope of the calling
|
||||||
|
# function by name.
|
||||||
|
#
|
||||||
|
#/
|
||||||
|
function -S list.erase
|
||||||
|
# List to erase from is last item by default.
|
||||||
|
set -l items $argv[1..-2]
|
||||||
|
set -l lists $argv[-1]
|
||||||
|
if set -l index (contains -i -- --from $argv)
|
||||||
|
# Everything before --from are items to erase and everything
|
||||||
|
# after, lists to erase any found items from.
|
||||||
|
set items $argv[1..(math $index-1)]
|
||||||
|
set lists $argv[(math $index+1)..-1]
|
||||||
|
end
|
||||||
|
for item in $items
|
||||||
|
for list in $lists
|
||||||
|
if set -l index (contains -i -- $item $$list)
|
||||||
|
set -e $list[1][$index]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
48
plugins/fish-spec/test/list.erase.test.fish
Normal file
48
plugins/fish-spec/test/list.erase.test.fish
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
function describe_list_erase
|
||||||
|
function before_each
|
||||||
|
set -g nums_until_10 1 2 3 4 5 6 7 8 9 10
|
||||||
|
set -g odds_until_10 1 3 5 7 9
|
||||||
|
end
|
||||||
|
|
||||||
|
function it_erases_one_element
|
||||||
|
list.erase 1 nums_until_10
|
||||||
|
expect $nums_until_10 to_not_include 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function it_erases_one_element_with_from_syntax
|
||||||
|
list.erase 1 --from nums_until_10
|
||||||
|
expect $nums_until_10 to_not_include 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function it_erases_one_element_from_multiple_lists
|
||||||
|
list.erase 1 --from nums_until_10 odds_until_10
|
||||||
|
expect $nums_until_10 to_not_include 1 and
|
||||||
|
expect $odds_until_10 to_not_include 1
|
||||||
|
end
|
||||||
|
|
||||||
|
function it_erases_one_element_from_multiple_lists_when_only_one_has_the_element
|
||||||
|
list.erase 2 --from nums_until_10 odds_until_10
|
||||||
|
expect $nums_until_10 to_not_include 2
|
||||||
|
end
|
||||||
|
|
||||||
|
function it_erases_multiple_elements
|
||||||
|
list.erase 1 2 nums_until_10
|
||||||
|
expect $nums_until_10 to_not_include 1 and
|
||||||
|
expect $nums_until_10 to_not_include 2
|
||||||
|
end
|
||||||
|
|
||||||
|
function it_erases_multiple_elements_with_from_syntax
|
||||||
|
list.erase 1 2 --from nums_until_10
|
||||||
|
expect $nums_until_10 to_not_include 1 and
|
||||||
|
expect $nums_until_10 to_not_include 2
|
||||||
|
end
|
||||||
|
|
||||||
|
function it_erases_multiple_elements_from_multiple_lists
|
||||||
|
list.erase 1 2 --from nums_until_10 odds_until_10
|
||||||
|
expect $nums_until_10 to_not_include 1 and
|
||||||
|
expect $nums_until_10 to_not_include 2 and
|
||||||
|
expect $odds_until_10 to_not_include 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
import plugins/fish-spec
|
@ -34,15 +34,14 @@ function describe_oh_my_fish
|
|||||||
end
|
end
|
||||||
|
|
||||||
function it_loads_all_oh_my_fish_functions
|
function it_loads_all_oh_my_fish_functions
|
||||||
array.delete "$fish_path/functions/" fish_function_path
|
list.erase "$fish_path/functions/" --from fish_function_path
|
||||||
|
|
||||||
load_oh_my_fish
|
load_oh_my_fish
|
||||||
expect $fish_function_path to_include $fish_path/functions/
|
expect $fish_function_path to_include $fish_path/functions/
|
||||||
end
|
end
|
||||||
|
|
||||||
function it_loads_all_selected_plugins
|
function it_loads_all_selected_plugins
|
||||||
array.delete "$fish_path/plugins/bak" fish_function_path
|
list.erase "$fish_path/plugins/bak" "$fish_path/plugins/z" --from fish_function_path
|
||||||
array.delete "$fish_path/plugins/z" fish_function_path
|
|
||||||
|
|
||||||
set fish_plugins bak z
|
set fish_plugins bak z
|
||||||
load_oh_my_fish
|
load_oh_my_fish
|
||||||
@ -51,7 +50,7 @@ function describe_oh_my_fish
|
|||||||
end
|
end
|
||||||
|
|
||||||
function it_loads_plugins_from_custom_folder
|
function it_loads_plugins_from_custom_folder
|
||||||
array.delete "$fish_custom/plugins/example" fish_function_path
|
list.erase "$fish_custom/plugins/example" --from fish_function_path
|
||||||
|
|
||||||
set fish_plugins example
|
set fish_plugins example
|
||||||
load_oh_my_fish
|
load_oh_my_fish
|
||||||
@ -59,7 +58,7 @@ function describe_oh_my_fish
|
|||||||
end
|
end
|
||||||
|
|
||||||
function it_loads_the_selected_theme
|
function it_loads_the_selected_theme
|
||||||
array.delete "$fish_path/themes/l" fish_function_path
|
list.erase "$fish_path/themes/l" --from fish_function_path
|
||||||
|
|
||||||
set fish_theme l
|
set fish_theme l
|
||||||
load_oh_my_fish
|
load_oh_my_fish
|
Loading…
Reference in New Issue
Block a user