Class: TkInspectRails::SqlPanel::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/tk_inspect_rails/sql_panel/base.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBase

Returns a new instance of Base.



7
8
9
10
# File 'lib/tk_inspect_rails/sql_panel/base.rb', line 7

def initialize
  @tk_root = nil
  @main_component = nil
end

Instance Attribute Details

#main_componentObject

Returns the value of attribute main_component.



5
6
7
# File 'lib/tk_inspect_rails/sql_panel/base.rb', line 5

def main_component
  @main_component
end

#tk_rootObject

Returns the value of attribute tk_root.



4
5
6
# File 'lib/tk_inspect_rails/sql_panel/base.rb', line 4

def tk_root
  @tk_root
end

Instance Method Details

#create_menuObject

So far, we only register key accelerators. Menus are better inherited from main console



29
30
31
# File 'lib/tk_inspect_rails/sql_panel/base.rb', line 29

def create_menu
  @tk_root.tk_item.native_item.bind('Command-r', -> { main_component.execute_sql(nil) })
end

#create_rootObject



16
17
18
19
20
21
22
# File 'lib/tk_inspect_rails/sql_panel/base.rb', line 16

def create_root
  @tk_root = TkComponent::Window.new(title: "SQL Panel")
  @main_component = RootComponent.new
  @main_component.sql_panel = self
  @tk_root.place_root_component(@main_component)
  create_menu
end

#execute_sql(expression) ⇒ Object



24
25
26
# File 'lib/tk_inspect_rails/sql_panel/base.rb', line 24

def execute_sql(expression)
  ActiveRecord::Base.connection.execute(expression)
end

#refreshObject



12
13
14
# File 'lib/tk_inspect_rails/sql_panel/base.rb', line 12

def refresh
  @main_component.nil? ? create_root : @main_component.regenerate
end