Class: Object

Inherits:
BasicObject
Defined in:
lib/cnc/core_ext/object.rb

Instance Method Summary collapse

Instance Method Details

#instance_variable_valuesObject



2
3
4
# File 'lib/cnc/core_ext/object.rb', line 2

def instance_variable_values
  instance_variables.map { instance_variable_get _1 }
end

#locate_method(name) ⇒ Object



19
20
21
22
23
# File 'lib/cnc/core_ext/object.rb', line 19

def locate_method(name)
  method(name)
rescue NameError
  instance_method(name)
end

#rubymine(file, line = 0) ⇒ Object



11
12
13
# File 'lib/cnc/core_ext/object.rb', line 11

def rubymine(file, line = 0)
  system_echo("rubymine --line #{line || 0} #{file}")
end

#system_echo(src) ⇒ Object



6
7
8
9
# File 'lib/cnc/core_ext/object.rb', line 6

def system_echo(src)
  puts src
  system(src)
end

#vim(method_name = nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/cnc/core_ext/object.rb', line 25

def vim(method_name = nil)
  if method_name
    file, line = locate_method(method_name).source_location
  elsif is_a?(Method)
    file, line = source_location
  elsif is_a?(Module)
    file, line = module_parent.const_source_location(name)
  else
    raise "What is this? I can't edit this..."
  end

  # return system("tmux split-window -h \"vim #{file} +#{line}\"") if file
  # return system("$VISUAL --goto #{file}:#{line || 0}") if file
  return vscode(file, line || 0) if file

  puts 'Source not available. Is this a C extension?'
end

#vscode(file, line = 0) ⇒ Object



15
16
17
# File 'lib/cnc/core_ext/object.rb', line 15

def vscode(file, line = 0)
  system_echo("code #{file}:#{line || 0}")
end