djinni 0.1.8 → 0.1.9

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
  SHA1:
3
- metadata.gz: ef936a21ffbf86d2e3066aa05597c6a5f968f357
4
- data.tar.gz: 0c3a346b04c8e7413dcb8984ef0e26554f12ad94
3
+ metadata.gz: 054d09c1a59329243cc68fd838539f7886a73099
4
+ data.tar.gz: 90bed7d10befe6e76a61c495d2837ea6b93eb2c8
5
5
  SHA512:
6
- metadata.gz: 9b897ad86168a31364fdd9bf91810198798f3bc9200f488500dcd3f95c1530fd7ee271f7ce6ba0a77141501a1d7af4b40eea375f97d5d569b8651d2c1bcb1b1a
7
- data.tar.gz: 8c091c11e1e68181d39cb188f58000b2322f5e216f19c00587ed6ad52f973a298b1a8027f8ecf2b50fc902369a732ab7eb575ecd5f64a7e9ad59084b68942fca
6
+ metadata.gz: dc21126e3e26610d8988c05ea07f22ccadeaab6f6f1f2567b2ae9b9bf7ff899d04ae7095d10dc8761c49b6ede2f3062c1ec8220cc767dedc7c1687eafb290820
7
+ data.tar.gz: a98be004548eb6bf5d48915b66d2a49c9df10b47c952d3193298eb1ff7025328cce4ee99675edc8f11d3456314917769717b7d1cd26865c9e31210956e57461e
data/lib/builtin/help.rb CHANGED
@@ -9,13 +9,14 @@ class DjinniHelpWish < DjinniWish
9
9
  return "Show helpful information for a wish or wishes"
10
10
  end
11
11
 
12
- def execute(args, env = {})
12
+ def execute(args, djinni_env = {})
13
+ wishes = djinni_env["djinni_wishes"].sort
13
14
  if (args.nil? || args.empty?)
14
- env["djinni_wishes"].sort.map do |aliaz, wish|
15
+ wishes.map do |aliaz, wish|
15
16
  puts "#{aliaz}\t#{wish.description}"
16
17
  end
17
18
  elsif (args.split(" ").length == 1)
18
- env["djinni_wishes"].sort.map do |aliaz, wish|
19
+ wishes.map do |aliaz, wish|
19
20
  if (aliaz == args)
20
21
  wish.usage
21
22
  return
@@ -27,7 +28,7 @@ class DjinniHelpWish < DjinniWish
27
28
  end
28
29
  end
29
30
 
30
- def tab_complete(input, env = {})
31
+ def tab_complete(input, djinni_env = {})
31
32
  return input
32
33
  end
33
34
 
@@ -9,9 +9,9 @@ class DjinniHistoryWish < DjinniWish
9
9
  return "Show history or execute commands from history"
10
10
  end
11
11
 
12
- def execute(args, env = {})
13
- djinni = env["djinni"]
14
- history = env["djinni_history"]
12
+ def execute(args, djinni_env = {})
13
+ djinni = djinni_env["djinni"]
14
+ history = djinni_env["djinni_history"]
15
15
 
16
16
  case args
17
17
  when nil, ""
@@ -34,8 +34,8 @@ class DjinniHistoryWish < DjinniWish
34
34
  end
35
35
  end
36
36
 
37
- def tab_complete(input, env = {})
38
- history = env["djinni_history"]
37
+ def tab_complete(input, djinni_env = {})
38
+ history = djinni_env["djinni_history"]
39
39
 
40
40
  included = input.split(" ")
41
41
  completions = (0...history.length).to_a
data/lib/builtin/quit.rb CHANGED
@@ -9,11 +9,11 @@ class DjinniQuitWish < DjinniWish
9
9
  return "Quit"
10
10
  end
11
11
 
12
- def execute(args, env = {})
12
+ def execute(args, djinni_env = {})
13
13
  exit 0
14
14
  end
15
15
 
16
- def tab_complete(input, env = {})
16
+ def tab_complete(input, djinni_env = {})
17
17
  return input
18
18
  end
19
19
 
data/lib/djinni.rb CHANGED
@@ -7,12 +7,12 @@ require "terminfo"
7
7
  class Djinni
8
8
  include DjinniError
9
9
 
10
- def grant_wish(input, env = {})
10
+ def grant_wish(input, djinni_env = {})
11
11
  return "" if (input.nil? || input.empty?)
12
12
 
13
- env["djinni"] = self
14
- env["djinni_history"] = @history
15
- env["djinni_wishes"] = @wishes
13
+ djinni_env["djinni"] = self
14
+ djinni_env["djinni_history"] = @history
15
+ djinni_env["djinni_wishes"] = @wishes
16
16
 
17
17
  case input[-1]
18
18
  when "\x03" # ^C
@@ -30,8 +30,10 @@ class Djinni
30
30
  if (input.include?(" "))
31
31
  name, args = input.split(" ", 2)
32
32
  return input if (!@wishes.has_key?(name))
33
+
33
34
  wish = @wishes[name]
34
- return "#{name} #{wish.tab_complete(args, env)}"
35
+ complete = wish.tab_complete(args, djinni_env)
36
+ return "#{name} #{complete}"
35
37
  else
36
38
  wishes = @wishes.keys
37
39
  wishes.sort.each do |wish|
@@ -50,7 +52,7 @@ class Djinni
50
52
 
51
53
  @wishes.sort.map do |aliaz, wish|
52
54
  if (aliaz == name)
53
- wish.execute(args, env)
55
+ wish.execute(args, djinni_env)
54
56
  store_history(input)
55
57
  return ""
56
58
  end
@@ -107,10 +109,6 @@ class Djinni
107
109
  end
108
110
  )
109
111
 
110
- load_builtins
111
- end
112
-
113
- def load_builtins
114
112
  load_wishes("#{File.dirname(__FILE__)}/builtin")
115
113
  end
116
114
 
@@ -132,6 +130,7 @@ class Djinni
132
130
  @wishes[aliaz] = wish
133
131
  end
134
132
  end
133
+ private :load_wish
135
134
 
136
135
  def load_wishes(dir)
137
136
  return if @loaded_from.include?(dir)
@@ -152,11 +151,13 @@ class Djinni
152
151
  @loaded_from.push(dir)
153
152
  end
154
153
 
155
- def prompt(prompt_sym = "$ ")
154
+ def prompt(djinni_env = {}, prompt_sym = "$ ")
156
155
  @interactive = true
157
156
 
157
+ djinni_env["prompt_sym"] = prompt_sym
158
158
  buffer = ""
159
159
  loop do
160
+ prompt_sym = djinni_env["prompt_sym"]
160
161
  blank_line = Array.new(@width, " ").join
161
162
  fill_len = @width - prompt_sym.length - buffer.length + 1
162
163
 
@@ -172,7 +173,7 @@ class Djinni
172
173
  print "\r#{prompt_sym}#{buffer}"
173
174
 
174
175
  # Process input
175
- buffer = grant_wish(buffer + STDIN.getch)
176
+ buffer = grant_wish(buffer + STDIN.getch, djinni_env)
176
177
 
177
178
  if (buffer.nil?)
178
179
  puts "Wish not found!"
@@ -193,4 +194,5 @@ class Djinni
193
194
  @history.push(input)
194
195
  @hist_index = nil
195
196
  end
197
+ private :store_history
196
198
  end
data/lib/djinni_wish.rb CHANGED
@@ -14,13 +14,13 @@ class DjinniWish
14
14
  )
15
15
  end
16
16
 
17
- def execute(args, env = {})
17
+ def execute(args, djinni_env = {})
18
18
  raise InterfaceNotImplementedError.new(
19
19
  "execute() not implemented!"
20
20
  )
21
21
  end
22
22
 
23
- def tab_complete(input, env = {})
23
+ def tab_complete(input, djinni_env = {})
24
24
  raise InterfaceNotImplementedError.new(
25
25
  "tab_complete() not implemented!"
26
26
  )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: djinni
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miles Whittaker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-29 00:00:00.000000000 Z
11
+ date: 2015-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest