Module: Rampi::REPL

Extended by:
REPL
Included in:
REPL
Defined in:
lib/rampi/repl.rb

Constant Summary collapse

CONFIG_PATH =
File.expand_path('~/.config/rampi')
HISTORY_FILE =
'history'
INIT_SCRIPT_FILE =
'init.rb'
DEFAULT_INIT_SCRIPT =
"# Here you can customize or define functions \n" \
"# that will be available in Rampi\n\n"

Instance Method Summary collapse

Instance Method Details

#configureObject



24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/rampi/repl.rb', line 24

def configure
  prepare_config_dir

  if ENV['INSIDE_EMACS']
    Pry.config.correct_indent = false
    Pry.config.pager = false
    Pry.config.prompt = [ proc { '' }, proc { '' }]
  else
    Pry.config.prompt = [ proc { '>> ' }, proc { '.> ' }]
  end

  Pry.config.history.file = history_path
end

#history_pathObject



54
55
56
# File 'lib/rampi/repl.rb', line 54

def history_path
  File.join(CONFIG_PATH, HISTORY_FILE)
end

#init_script_pathObject



58
59
60
# File 'lib/rampi/repl.rb', line 58

def init_script_path
  File.join(CONFIG_PATH, INIT_SCRIPT_FILE)
end

#load_init_scriptObject



42
43
44
# File 'lib/rampi/repl.rb', line 42

def load_init_script
  require(init_script_path)
end

#prepare_config_dirObject



46
47
48
49
50
51
52
# File 'lib/rampi/repl.rb', line 46

def prepare_config_dir
  FileUtils.mkdir_p(CONFIG_PATH)

  unless File.exists?(init_script_path)
    File.write(init_script_path, DEFAULT_INIT_SCRIPT)
  end
end

#red(string) ⇒ Object



38
39
40
# File 'lib/rampi/repl.rb', line 38

def red(string)
  "\e[31m\e[1m#{string}\e[22m\e[0m"
end

#start(port: nil) ⇒ Object



16
17
18
19
20
21
22
# File 'lib/rampi/repl.rb', line 16

def start(port: nil)
  configure
  load_init_script

  dsl = DSL.new(port: port)
  dsl.pry
end