completely 0.8.0.rc4 → 0.8.0.rc5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da96ad6408e1fb83fe82d923c1e81e4361e980f26e3f0877b0861d7671b4ba02
4
- data.tar.gz: e352accd9df02816b08ace6ab3416c9a1c82b64c8dde783772c3eaab6a96a397
3
+ metadata.gz: 9fdb300c1ddaaf4ab1cfa6ca3e0b1371f4fbf33f1a22f29357bae06da0a973fc
4
+ data.tar.gz: 3c812320dc20d2b9c13bf08e5cff2c596cd873880d8ec5b19b3a0bee68afd875
5
5
  SHA512:
6
- metadata.gz: 034e76f8cf366655b8b6e33a38cb1042b13fca7d9c8ec5e3ea4de3df260c49d69dbc83c27db477061261cb027adb4f080ab45c9297dff3f28b3e9a610f920f5e
7
- data.tar.gz: ebc3b3c4a6ce2e70b56c85cc83c0235e52a0d940c88179ee22147e240cb200a2cef7c6af1bccd2d51a36c5c62d0ec592035e483d35f14e844efb949d1490cdac
6
+ metadata.gz: 83f853427d2f54f0b86d736c1d54e526a74806b643c7d4dc12ea857eeacde38e18b8272374253845e697545168d0afcc9ec48d52fad7c00969d4be972c919b26
7
+ data.tar.gz: 8f463487ca5084e78b11875f3b1d591359c0252055cdd44bb9df06024076b0dc6627647e9d30cd8beaeab1d97ec8b06eb1d986b634513eb5bb8e63184514daad
data/README.md CHANGED
@@ -352,7 +352,7 @@ input = {
352
352
  "status" => ["--verbose|-v", "--branch|-b <branch>"]
353
353
  },
354
354
  "tokens" => {
355
- "directory" => "directory",
355
+ "directory" => "+directory",
356
356
  "branch" => "$(git branch --format='%(refname:short)' 2>/dev/null)"
357
357
  }
358
358
  }
@@ -137,6 +137,12 @@ module Completely
137
137
  end
138
138
  end
139
139
 
140
+ def pattern_has_unique_options?
141
+ pattern_routes.any? do |route|
142
+ pattern_route_options(route).any? { |option| !option[:repeatable] }
143
+ end
144
+ end
145
+
140
146
  def pattern_source_empty?(source)
141
147
  source[:items].empty?
142
148
  end
@@ -16,6 +16,19 @@
16
16
  return 1
17
17
  }
18
18
 
19
+ % if pattern_has_unique_options?
20
+ <%= function_name %>_option_seen() {
21
+ local completed_option option_name
22
+ for completed_option in "${completed_options[@]}"; do
23
+ for option_name in "$@"; do
24
+ [[ "$completed_option" == "$option_name" ]] && return 0
25
+ done
26
+ done
27
+
28
+ return 1
29
+ }
30
+
31
+ % end
19
32
  <%= function_name %>_resolve_route() {
20
33
  route_id=
21
34
  route_word_count=-1
@@ -108,15 +121,7 @@
108
121
  % if option[:repeatable]
109
122
  words+=(<%= option[:names].map { |name| %["#{bash_escape name}"] }.join(' ') %>)
110
123
  % else
111
- local option_seen=0
112
- for completed_option in "${completed_options[@]}"; do
113
- case "$completed_option" in
114
- <%= option[:names].map { |name| bash_escape name }.join('|') %>) option_seen=1 ;;
115
- esac
116
- done
117
- if ((!option_seen)); then
118
- words+=(<%= option[:names].map { |name| %["#{bash_escape name}"] }.join(' ') %>)
119
- fi
124
+ <%= function_name %>_option_seen <%= option[:names].map { |name| %["#{bash_escape name}"] }.join(' ') %> || words+=(<%= option[:names].map { |name| %["#{bash_escape name}"] }.join(' ') %>)
120
125
  % end
121
126
  % end
122
127
  while read -r; do COMPREPLY+=("$REPLY"); done < <(compgen -W "${words[*]}" -- "$cur")
@@ -1,3 +1,3 @@
1
1
  module Completely
2
- VERSION = '0.8.0.rc4'
2
+ VERSION = '0.8.0.rc5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: completely
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0.rc4
4
+ version: 0.8.0.rc5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Danny Ben Shitrit