Top Level Namespace

Defined Under Namespace

Modules: Bashir Classes: String

Constant Summary collapse

StoreURL =

file: /home/robert/git/ruby/bashir/lib/bashir/globals.rb

"#{ENV[ "HOME" ]}/tmp/bashir.persistant"

Instance Method Summary collapse

Instance Method Details

#eval_in_sandbox(cmd) ⇒ Object

file: /home/robert/git/ruby/bashir/lib/bashir/evaluator.rb



5
6
7
# File 'lib/bashir/evaluator.rb', line 5

def eval_in_sandbox cmd
  Sandbox.instance_eval cmd
end

#execute_command(cmd, *args) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/bashir/commands.rb', line 14

def execute_command cmd, *args
  case cmd
  when /\A_sys\Z/
    system args.join( " " )
  when /\A\w+=\Z/
    set_variable cmd.sub(/=\Z/, ""), args
    store @variables
    args
  when "first"

    puts args.first

  when "get"
    @variables = retrieve
    puts @variables[ args.first.to_sym ]
    
  when "set"
    eval_in_sandbox args.join( " " )
  else
    $stderr.puts "Bashir: Illegal Command \"#{cmd}\""
    exit 1
  end
end

#retrieveObject

file: /home/robert/git/ruby/bashir/lib/bashir/persistant.rb



5
6
7
# File 'lib/bashir/persistant.rb', line 5

def retrieve
  Marshal.load( File.open( StoreURL ) )
end

#set_variable(name, args) ⇒ Object



9
10
11
12
# File 'lib/bashir/commands.rb', line 9

def set_variable name, args
  @variables[ name.to_sym ] = args.join( " " )

end

#store(data) ⇒ Object



9
10
11
12
13
# File 'lib/bashir/persistant.rb', line 9

def store data
  File.open StoreURL, "w" do | f |
    Marshal.dump data, f
  end
end