ruber 0.0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- data/COPYING +339 -0
- data/INSTALL +137 -0
- data/LICENSE +8 -0
- data/bin/ruber +65 -0
- data/data/share/apps/ruber/core_components.yaml +31 -0
- data/data/share/apps/ruber/ruberui.rc +109 -0
- data/data/share/icons/ruber.png +0 -0
- data/data/share/pixmaps/ruby.png +0 -0
- data/icons/ruber-16.png +0 -0
- data/icons/ruber-32.png +0 -0
- data/icons/ruber-48.png +0 -0
- data/icons/ruber-8.png +0 -0
- data/lib/ruber/application/application.rb +288 -0
- data/lib/ruber/application/plugin.yaml +11 -0
- data/lib/ruber/component_manager.rb +899 -0
- data/lib/ruber/config/config.rb +82 -0
- data/lib/ruber/config/plugin.yaml +3 -0
- data/lib/ruber/document_project.rb +209 -0
- data/lib/ruber/documents/document_list.rb +416 -0
- data/lib/ruber/documents/plugin.yaml +4 -0
- data/lib/ruber/editor/document.rb +506 -0
- data/lib/ruber/editor/editor_view.rb +167 -0
- data/lib/ruber/editor/ktexteditor_wrapper.rb +202 -0
- data/lib/ruber/exception_widgets.rb +245 -0
- data/lib/ruber/external_program_plugin.rb +397 -0
- data/lib/ruber/filtered_output_widget.rb +342 -0
- data/lib/ruber/gui_states_handler.rb +231 -0
- data/lib/ruber/kde_config_option_backend.rb +167 -0
- data/lib/ruber/kde_sugar.rb +249 -0
- data/lib/ruber/main_window/choose_plugins_dlg.rb +353 -0
- data/lib/ruber/main_window/main_window.rb +524 -0
- data/lib/ruber/main_window/main_window_actions.rb +537 -0
- data/lib/ruber/main_window/main_window_internal.rb +239 -0
- data/lib/ruber/main_window/open_file_in_project_dlg.rb +212 -0
- data/lib/ruber/main_window/output_color_widget.rb +35 -0
- data/lib/ruber/main_window/plugin.yaml +58 -0
- data/lib/ruber/main_window/save_modified_files_dlg.rb +89 -0
- data/lib/ruber/main_window/status_bar.rb +156 -0
- data/lib/ruber/main_window/ui/choose_plugins_widget.rb +90 -0
- data/lib/ruber/main_window/ui/choose_plugins_widget.ui +77 -0
- data/lib/ruber/main_window/ui/main_window_settings_widget.rb +108 -0
- data/lib/ruber/main_window/ui/main_window_settings_widget.ui +89 -0
- data/lib/ruber/main_window/ui/new_project_widget.rb +119 -0
- data/lib/ruber/main_window/ui/new_project_widget.ui +178 -0
- data/lib/ruber/main_window/ui/open_file_in_project_dlg.rb +109 -0
- data/lib/ruber/main_window/ui/open_file_in_project_dlg.ui +168 -0
- data/lib/ruber/main_window/ui/output_color_widget.rb +241 -0
- data/lib/ruber/main_window/ui/output_color_widget.ui +204 -0
- data/lib/ruber/main_window/workspace.rb +442 -0
- data/lib/ruber/output_widget.rb +1093 -0
- data/lib/ruber/plugin.rb +264 -0
- data/lib/ruber/plugin_like.rb +589 -0
- data/lib/ruber/plugin_specification.rb +106 -0
- data/lib/ruber/plugin_specification_reader.rb +451 -0
- data/lib/ruber/project.rb +493 -0
- data/lib/ruber/project_backend.rb +105 -0
- data/lib/ruber/projects/plugin.yaml +11 -0
- data/lib/ruber/projects/project_files_list.rb +314 -0
- data/lib/ruber/projects/project_files_widget.rb +301 -0
- data/lib/ruber/projects/project_list.rb +314 -0
- data/lib/ruber/projects/ui/project_files_rule_chooser_widget.rb +74 -0
- data/lib/ruber/projects/ui/project_files_rule_chooser_widget.ui +61 -0
- data/lib/ruber/projects/ui/project_files_widget.rb +117 -0
- data/lib/ruber/projects/ui/project_files_widget.ui +123 -0
- data/lib/ruber/qt_sugar.rb +673 -0
- data/lib/ruber/settings_container.rb +515 -0
- data/lib/ruber/settings_dialog.rb +244 -0
- data/lib/ruber/settings_dialog_manager.rb +503 -0
- data/lib/ruber/utils.rb +414 -0
- data/lib/ruber/yaml_option_backend.rb +159 -0
- data/outsider_files +15 -0
- data/plugins/autosave/autosave.rb +404 -0
- data/plugins/autosave/plugin.yaml +16 -0
- data/plugins/autosave/ui/autosave_config_widget.rb +83 -0
- data/plugins/autosave/ui/autosave_config_widget.ui +68 -0
- data/plugins/command/command.png +0 -0
- data/plugins/command/command.rb +74 -0
- data/plugins/command/plugin.yaml +11 -0
- data/plugins/find_in_files/find_in_files.rb +337 -0
- data/plugins/find_in_files/find_in_files_dlg.rb +411 -0
- data/plugins/find_in_files/find_in_files_ui.rc +11 -0
- data/plugins/find_in_files/find_in_files_widgets.rb +485 -0
- data/plugins/find_in_files/plugin.yaml +23 -0
- data/plugins/find_in_files/ui/config_widget.rb +58 -0
- data/plugins/find_in_files/ui/config_widget.ui +41 -0
- data/plugins/find_in_files/ui/find_in_files_widget.rb +260 -0
- data/plugins/find_in_files/ui/find_in_files_widget.ui +324 -0
- data/plugins/project_browser/plugin.yaml +10 -0
- data/plugins/project_browser/project_browser.rb +245 -0
- data/plugins/rake/plugin.yaml +39 -0
- data/plugins/rake/rake.png +0 -0
- data/plugins/rake/rake.rb +567 -0
- data/plugins/rake/rake_extension.rb +153 -0
- data/plugins/rake/rake_widgets.rb +615 -0
- data/plugins/rake/rakeui.rc +27 -0
- data/plugins/rake/ui/add_quick_task_widget.rb +71 -0
- data/plugins/rake/ui/add_quick_task_widget.ui +59 -0
- data/plugins/rake/ui/choose_task_widget.rb +77 -0
- data/plugins/rake/ui/choose_task_widget.ui +72 -0
- data/plugins/rake/ui/config_widget.rb +127 -0
- data/plugins/rake/ui/config_widget.ui +123 -0
- data/plugins/rake/ui/project_widget.rb +217 -0
- data/plugins/rake/ui/project_widget.ui +246 -0
- data/plugins/rspec/plugin.yaml +30 -0
- data/plugins/rspec/rspec.png +0 -0
- data/plugins/rspec/rspec.rb +945 -0
- data/plugins/rspec/rspec.svg +90 -0
- data/plugins/rspec/rspecui.rc +20 -0
- data/plugins/rspec/ruber_rspec_formatter.rb +312 -0
- data/plugins/rspec/ui/rspec_project_widget.rb +170 -0
- data/plugins/rspec/ui/rspec_project_widget.ui +193 -0
- data/plugins/ruby_development/plugin.yaml +27 -0
- data/plugins/ruby_development/ruby_development.png +0 -0
- data/plugins/ruby_development/ruby_development.rb +453 -0
- data/plugins/ruby_development/ruby_developmentui.rc +19 -0
- data/plugins/ruby_development/ui/project_widget.rb +112 -0
- data/plugins/ruby_development/ui/project_widget.ui +108 -0
- data/plugins/ruby_runner/config_widget.rb +116 -0
- data/plugins/ruby_runner/plugin.yaml +26 -0
- data/plugins/ruby_runner/project_widget.rb +62 -0
- data/plugins/ruby_runner/ruby.png +0 -0
- data/plugins/ruby_runner/ruby_interpretersui.rc +26 -0
- data/plugins/ruby_runner/ruby_runner.rb +411 -0
- data/plugins/ruby_runner/ui/config_widget.rb +92 -0
- data/plugins/ruby_runner/ui/config_widget.ui +91 -0
- data/plugins/ruby_runner/ui/project_widget.rb +60 -0
- data/plugins/ruby_runner/ui/project_widget.ui +48 -0
- data/plugins/ruby_runner/ui/ruby_runnner_plugin_option_widget.rb +59 -0
- data/plugins/ruby_runner/ui/ruby_runnner_plugin_option_widget.ui +44 -0
- data/plugins/state/plugin.yaml +28 -0
- data/plugins/state/state.rb +520 -0
- data/plugins/state/ui/config_widget.rb +92 -0
- data/plugins/state/ui/config_widget.ui +89 -0
- data/plugins/syntax_checker/plugin.yaml +18 -0
- data/plugins/syntax_checker/syntax_checker.rb +662 -0
- data/ruber.desktop +10 -0
- data/spec/annotation_model_spec.rb +174 -0
- data/spec/common.rb +119 -0
- data/spec/component_manager_spec.rb +1259 -0
- data/spec/document_list_spec.rb +626 -0
- data/spec/document_project_spec.rb +373 -0
- data/spec/document_spec.rb +779 -0
- data/spec/editor_view_spec.rb +167 -0
- data/spec/external_program_plugin_spec.rb +676 -0
- data/spec/filtered_output_widget_spec.rb +642 -0
- data/spec/gui_states_handler_spec.rb +304 -0
- data/spec/kde_config_option_backend_spec.rb +214 -0
- data/spec/kde_sugar_spec.rb +101 -0
- data/spec/ktexteditor_wrapper_spec.rb +305 -0
- data/spec/output_widget_spec.rb +1703 -0
- data/spec/plugin_spec.rb +1393 -0
- data/spec/plugin_specification_reader_spec.rb +1765 -0
- data/spec/plugin_specification_spec.rb +401 -0
- data/spec/project_backend_spec.rb +172 -0
- data/spec/project_files_list_spec.rb +401 -0
- data/spec/project_list_spec.rb +511 -0
- data/spec/project_spec.rb +990 -0
- data/spec/qt_sugar_spec.rb +328 -0
- data/spec/settings_container_spec.rb +617 -0
- data/spec/settings_dialog_manager_spec.rb +773 -0
- data/spec/settings_dialog_spec.rb +419 -0
- data/spec/state_spec.rb +991 -0
- data/spec/utils_spec.rb +406 -0
- data/spec/workspace_spec.rb +869 -0
- data/spec/yaml_option_backend_spec.rb +246 -0
- metadata +284 -0
@@ -0,0 +1,19 @@
|
|
1
|
+
<!DOCTYPE kpartgui SYSTEM 'kpartgui.dtd'>
|
2
|
+
<kpartgui version="1" name="ruber-ruby_runner_plugin" >
|
3
|
+
<MenuBar>
|
4
|
+
<Menu noMerge="1" name="ruby" >
|
5
|
+
<text>&Ruby</text>
|
6
|
+
<Separator/>
|
7
|
+
<Action name="ruby_runner-run" />
|
8
|
+
<Action name="ruby_runner-run_current_file" text="Run current file" />
|
9
|
+
<Action name="ruby_runner-run_file" />
|
10
|
+
<Separator/>
|
11
|
+
<Action name="ruby_runner-stop" />
|
12
|
+
<Separator/>
|
13
|
+
<Action name="ruby_runner-run_in_terminal"/>
|
14
|
+
<DefineGroup name="ruby_tools"/>
|
15
|
+
<Merge/>
|
16
|
+
</Menu>
|
17
|
+
</MenuBar>
|
18
|
+
<ActionProperties/>
|
19
|
+
</kpartgui>
|
@@ -0,0 +1,112 @@
|
|
1
|
+
=begin
|
2
|
+
** Form generated from reading ui file 'project_widget.ui'
|
3
|
+
**
|
4
|
+
** Created: ven ott 29 17:39:04 2010
|
5
|
+
** by: Qt User Interface Compiler version 4.7.0
|
6
|
+
**
|
7
|
+
** WARNING! All changes made in this file will be lost when recompiling ui file!
|
8
|
+
=end
|
9
|
+
|
10
|
+
class Ui_FilesRunnerProjectWidget
|
11
|
+
attr_reader :gridLayout
|
12
|
+
attr_reader :_ruby__ruby_options
|
13
|
+
attr_reader :program_box
|
14
|
+
attr_reader :gridLayout_2
|
15
|
+
attr_reader :main_program_label
|
16
|
+
attr_reader :_ruby__main_program
|
17
|
+
attr_reader :_ruby__options
|
18
|
+
attr_reader :_ruby__working_dir
|
19
|
+
attr_reader :working_dir_label
|
20
|
+
attr_reader :label_6
|
21
|
+
attr_reader :_ruby__run_in_terminal
|
22
|
+
|
23
|
+
def setupUi(filesRunnerProjectWidget)
|
24
|
+
if filesRunnerProjectWidget.objectName.nil?
|
25
|
+
filesRunnerProjectWidget.objectName = "filesRunnerProjectWidget"
|
26
|
+
end
|
27
|
+
filesRunnerProjectWidget.resize(464, 188)
|
28
|
+
@gridLayout = Qt::GridLayout.new(filesRunnerProjectWidget)
|
29
|
+
@gridLayout.objectName = "gridLayout"
|
30
|
+
@_ruby__ruby_options = RubyOptionsWidget.new(filesRunnerProjectWidget)
|
31
|
+
@_ruby__ruby_options.objectName = "_ruby__ruby_options"
|
32
|
+
@_ruby__ruby_options.focusPolicy = Qt::StrongFocus
|
33
|
+
|
34
|
+
@gridLayout.addWidget(@_ruby__ruby_options, 0, 1, 1, 1)
|
35
|
+
|
36
|
+
@program_box = Qt::GroupBox.new(filesRunnerProjectWidget)
|
37
|
+
@program_box.objectName = "program_box"
|
38
|
+
@gridLayout_2 = Qt::GridLayout.new(@program_box)
|
39
|
+
@gridLayout_2.objectName = "gridLayout_2"
|
40
|
+
@main_program_label = Qt::Label.new(@program_box)
|
41
|
+
@main_program_label.objectName = "main_program_label"
|
42
|
+
|
43
|
+
@gridLayout_2.addWidget(@main_program_label, 0, 0, 1, 1)
|
44
|
+
|
45
|
+
@_ruby__main_program = KDE::UrlRequester.new(@program_box)
|
46
|
+
@_ruby__main_program.objectName = "_ruby__main_program"
|
47
|
+
|
48
|
+
@gridLayout_2.addWidget(@_ruby__main_program, 0, 1, 1, 1)
|
49
|
+
|
50
|
+
@_ruby__options = KDE::LineEdit.new(@program_box)
|
51
|
+
@_ruby__options.objectName = "_ruby__options"
|
52
|
+
@_ruby__options.focusPolicy = Qt::StrongFocus
|
53
|
+
|
54
|
+
@gridLayout_2.addWidget(@_ruby__options, 1, 1, 1, 1)
|
55
|
+
|
56
|
+
@_ruby__working_dir = KDE::UrlRequester.new(@program_box)
|
57
|
+
@_ruby__working_dir.objectName = "_ruby__working_dir"
|
58
|
+
|
59
|
+
@gridLayout_2.addWidget(@_ruby__working_dir, 2, 1, 1, 1)
|
60
|
+
|
61
|
+
@working_dir_label = Qt::Label.new(@program_box)
|
62
|
+
@working_dir_label.objectName = "working_dir_label"
|
63
|
+
|
64
|
+
@gridLayout_2.addWidget(@working_dir_label, 2, 0, 1, 1)
|
65
|
+
|
66
|
+
@label_6 = Qt::Label.new(@program_box)
|
67
|
+
@label_6.objectName = "label_6"
|
68
|
+
|
69
|
+
@gridLayout_2.addWidget(@label_6, 1, 0, 1, 1)
|
70
|
+
|
71
|
+
@_ruby__run_in_terminal = Qt::CheckBox.new(@program_box)
|
72
|
+
@_ruby__run_in_terminal.objectName = "_ruby__run_in_terminal"
|
73
|
+
|
74
|
+
@gridLayout_2.addWidget(@_ruby__run_in_terminal, 3, 0, 1, 1)
|
75
|
+
|
76
|
+
|
77
|
+
@gridLayout.addWidget(@program_box, 1, 0, 1, 2)
|
78
|
+
|
79
|
+
@main_program_label.buddy = @_ruby__main_program
|
80
|
+
@working_dir_label.buddy = @_ruby__working_dir
|
81
|
+
@label_6.buddy = @_ruby__options
|
82
|
+
|
83
|
+
retranslateUi(filesRunnerProjectWidget)
|
84
|
+
|
85
|
+
Qt::MetaObject.connectSlotsByName(filesRunnerProjectWidget)
|
86
|
+
end # setupUi
|
87
|
+
|
88
|
+
def setup_ui(filesRunnerProjectWidget)
|
89
|
+
setupUi(filesRunnerProjectWidget)
|
90
|
+
end
|
91
|
+
|
92
|
+
def retranslateUi(filesRunnerProjectWidget)
|
93
|
+
filesRunnerProjectWidget.windowTitle = Qt::Application.translate("FilesRunnerProjectWidget", "Form", nil, Qt::Application::UnicodeUTF8)
|
94
|
+
@program_box.title = Qt::Application.translate("FilesRunnerProjectWidget", "Script", nil, Qt::Application::UnicodeUTF8)
|
95
|
+
@main_program_label.text = Qt::Application.translate("FilesRunnerProjectWidget", "&Path", nil, Qt::Application::UnicodeUTF8)
|
96
|
+
@_ruby__options.setProperty("access", Qt::Variant.new(Qt::Application.translate("FilesRunnerProjectWidget", "$program_options", nil, Qt::Application::UnicodeUTF8)))
|
97
|
+
@working_dir_label.text = Qt::Application.translate("FilesRunnerProjectWidget", "&Working directory", nil, Qt::Application::UnicodeUTF8)
|
98
|
+
@label_6.text = Qt::Application.translate("FilesRunnerProjectWidget", "&Options", nil, Qt::Application::UnicodeUTF8)
|
99
|
+
@_ruby__run_in_terminal.text = Qt::Application.translate("FilesRunnerProjectWidget", "&Run in terminal", nil, Qt::Application::UnicodeUTF8)
|
100
|
+
end # retranslateUi
|
101
|
+
|
102
|
+
def retranslate_ui(filesRunnerProjectWidget)
|
103
|
+
retranslateUi(filesRunnerProjectWidget)
|
104
|
+
end
|
105
|
+
|
106
|
+
end
|
107
|
+
|
108
|
+
module Ui
|
109
|
+
class FilesRunnerProjectWidget < Ui_FilesRunnerProjectWidget
|
110
|
+
end
|
111
|
+
end # module Ui
|
112
|
+
|
@@ -0,0 +1,108 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ui version="4.0">
|
3
|
+
<class>FilesRunnerProjectWidget</class>
|
4
|
+
<widget class="QWidget" name="FilesRunnerProjectWidget">
|
5
|
+
<property name="geometry">
|
6
|
+
<rect>
|
7
|
+
<x>0</x>
|
8
|
+
<y>0</y>
|
9
|
+
<width>464</width>
|
10
|
+
<height>188</height>
|
11
|
+
</rect>
|
12
|
+
</property>
|
13
|
+
<property name="windowTitle">
|
14
|
+
<string>Form</string>
|
15
|
+
</property>
|
16
|
+
<layout class="QGridLayout" name="gridLayout">
|
17
|
+
<item row="0" column="1">
|
18
|
+
<widget class="RubyOptionsWidget" name="_ruby__ruby_options" native="true">
|
19
|
+
<property name="focusPolicy">
|
20
|
+
<enum>Qt::StrongFocus</enum>
|
21
|
+
</property>
|
22
|
+
</widget>
|
23
|
+
</item>
|
24
|
+
<item row="1" column="0" colspan="2">
|
25
|
+
<widget class="QGroupBox" name="program_box">
|
26
|
+
<property name="title">
|
27
|
+
<string>Script</string>
|
28
|
+
</property>
|
29
|
+
<layout class="QGridLayout" name="gridLayout_2">
|
30
|
+
<item row="0" column="0">
|
31
|
+
<widget class="QLabel" name="main_program_label">
|
32
|
+
<property name="text">
|
33
|
+
<string>&Path</string>
|
34
|
+
</property>
|
35
|
+
<property name="buddy">
|
36
|
+
<cstring>_ruby__main_program</cstring>
|
37
|
+
</property>
|
38
|
+
</widget>
|
39
|
+
</item>
|
40
|
+
<item row="0" column="1">
|
41
|
+
<widget class="KUrlRequester" name="_ruby__main_program"/>
|
42
|
+
</item>
|
43
|
+
<item row="1" column="1">
|
44
|
+
<widget class="KLineEdit" name="_ruby__options">
|
45
|
+
<property name="focusPolicy">
|
46
|
+
<enum>Qt::StrongFocus</enum>
|
47
|
+
</property>
|
48
|
+
<property name="access" stdset="0">
|
49
|
+
<string>$program_options</string>
|
50
|
+
</property>
|
51
|
+
</widget>
|
52
|
+
</item>
|
53
|
+
<item row="2" column="1">
|
54
|
+
<widget class="KUrlRequester" name="_ruby__working_dir"/>
|
55
|
+
</item>
|
56
|
+
<item row="2" column="0">
|
57
|
+
<widget class="QLabel" name="working_dir_label">
|
58
|
+
<property name="text">
|
59
|
+
<string>&Working directory</string>
|
60
|
+
</property>
|
61
|
+
<property name="buddy">
|
62
|
+
<cstring>_ruby__working_dir</cstring>
|
63
|
+
</property>
|
64
|
+
</widget>
|
65
|
+
</item>
|
66
|
+
<item row="1" column="0">
|
67
|
+
<widget class="QLabel" name="label_6">
|
68
|
+
<property name="text">
|
69
|
+
<string>&Options</string>
|
70
|
+
</property>
|
71
|
+
<property name="buddy">
|
72
|
+
<cstring>_ruby__options</cstring>
|
73
|
+
</property>
|
74
|
+
</widget>
|
75
|
+
</item>
|
76
|
+
<item row="3" column="0">
|
77
|
+
<widget class="QCheckBox" name="_ruby__run_in_terminal">
|
78
|
+
<property name="text">
|
79
|
+
<string>&Run in terminal</string>
|
80
|
+
</property>
|
81
|
+
</widget>
|
82
|
+
</item>
|
83
|
+
</layout>
|
84
|
+
</widget>
|
85
|
+
</item>
|
86
|
+
</layout>
|
87
|
+
</widget>
|
88
|
+
<customwidgets>
|
89
|
+
<customwidget>
|
90
|
+
<class>KUrlRequester</class>
|
91
|
+
<extends>QFrame</extends>
|
92
|
+
<header>kurlrequester.h</header>
|
93
|
+
</customwidget>
|
94
|
+
<customwidget>
|
95
|
+
<class>KLineEdit</class>
|
96
|
+
<extends>QLineEdit</extends>
|
97
|
+
<header>klineedit.h</header>
|
98
|
+
</customwidget>
|
99
|
+
<customwidget>
|
100
|
+
<class>RubyOptionsWidget</class>
|
101
|
+
<extends>QWidget</extends>
|
102
|
+
<header>rubyoptionswidget.h</header>
|
103
|
+
<container>1</container>
|
104
|
+
</customwidget>
|
105
|
+
</customwidgets>
|
106
|
+
<resources/>
|
107
|
+
<connections/>
|
108
|
+
</ui>
|
@@ -0,0 +1,116 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright (C) 2010 by Stefano Crocco
|
3
|
+
stefano.crocco@alice.it
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it andor modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with this program; if not, write to the
|
17
|
+
Free Software Foundation, Inc.,
|
18
|
+
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
19
|
+
=end
|
20
|
+
|
21
|
+
require 'shellwords'
|
22
|
+
|
23
|
+
require_relative 'ui/config_widget'
|
24
|
+
|
25
|
+
module Ruber
|
26
|
+
|
27
|
+
module RubyRunner
|
28
|
+
|
29
|
+
=begin rdoc
|
30
|
+
Config widget for the ruby runner plugin
|
31
|
+
=end
|
32
|
+
class ConfigWidget < Qt::Widget
|
33
|
+
|
34
|
+
slots :update_default_interpreter
|
35
|
+
|
36
|
+
=begin rdoc
|
37
|
+
Creates a new widget
|
38
|
+
|
39
|
+
@param [Qt::Widget] parent the widget's parent
|
40
|
+
=end
|
41
|
+
def initialize parent = nil
|
42
|
+
super
|
43
|
+
@ui = Ui::RubyRunnerConfigWidget.new
|
44
|
+
@ui.setupUi self
|
45
|
+
connect @ui._ruby__interpreters, SIGNAL(:changed), self, SLOT(:update_default_interpreter)
|
46
|
+
end
|
47
|
+
|
48
|
+
=begin rdoc
|
49
|
+
Writer for the @ruby/ruby_options@ setting
|
50
|
+
|
51
|
+
@return [nil]
|
52
|
+
=end
|
53
|
+
def read_ruby_options val
|
54
|
+
@ui._ruby__ruby_options.text = val.join ' '
|
55
|
+
nil
|
56
|
+
end
|
57
|
+
|
58
|
+
=begin rdoc
|
59
|
+
Reader for the @ruby/ruby_options@ setting
|
60
|
+
|
61
|
+
@return [<String>] with an entry per option. Options containing spaces are quoted
|
62
|
+
=end
|
63
|
+
def store_ruby_options
|
64
|
+
Shellwords.split_with_quotes @ui._ruby__ruby_options.text
|
65
|
+
end
|
66
|
+
|
67
|
+
=begin rdoc
|
68
|
+
Writer for the @ruby/ruby@ setting
|
69
|
+
|
70
|
+
@param [String] the path of the default interpreter
|
71
|
+
@return [nil]
|
72
|
+
=end
|
73
|
+
def default_interpreter= value
|
74
|
+
it = @ui._ruby__ruby.each_with_index.find{|txt, i| txt == value}
|
75
|
+
@ui._ruby__ruby.current_index = it ? it[1] : 0
|
76
|
+
nil
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
=begin rdoc
|
82
|
+
Fills the "Ruby interpreters widget"
|
83
|
+
|
84
|
+
Before filling the widget, clears it. After filling the widget, it updates the
|
85
|
+
"Default interpreter" widget.
|
86
|
+
|
87
|
+
@param [<String>] a list of the paths of the availlable interpreters
|
88
|
+
=end
|
89
|
+
def fill_interpreters value
|
90
|
+
@ui._ruby__interpreters.clear
|
91
|
+
@ui._ruby__interpreters.insert_string_list value
|
92
|
+
update_default_interpreter
|
93
|
+
end
|
94
|
+
|
95
|
+
=begin rdoc
|
96
|
+
Fills the "Default interpreter" combo box according to the availlable interpreters
|
97
|
+
|
98
|
+
This method attempts to preserve the current entry if possible. This means that
|
99
|
+
if an entry with the same text still exists, it will become current.
|
100
|
+
|
101
|
+
@return [nil]
|
102
|
+
=end
|
103
|
+
def update_default_interpreter
|
104
|
+
old_current = @ui._ruby__ruby.current_text
|
105
|
+
@ui._ruby__ruby.clear
|
106
|
+
@ui._ruby__ruby.add_items @ui._ruby__interpreters.items
|
107
|
+
idx = @ui._ruby__ruby.items.index old_current
|
108
|
+
@ui._ruby__ruby.current_index = idx ? idx : 0
|
109
|
+
nil
|
110
|
+
end
|
111
|
+
|
112
|
+
end
|
113
|
+
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
name: ruby_runner
|
2
|
+
version: 0.0.1
|
3
|
+
about:
|
4
|
+
authors: [Stefano Crocco, stefano.crocco@alice.it]
|
5
|
+
license: gpl
|
6
|
+
description: Provides an infrastructure to execute ruby programs
|
7
|
+
bug_address: http://github.com/stcrocco/ruber/issues
|
8
|
+
icon: ruby.png
|
9
|
+
class: Ruber::RubyRunner::RubyInterpretersPlugin
|
10
|
+
require: ruby_runner
|
11
|
+
ui_file: ruby_interpretersui.rc
|
12
|
+
features: [ruby_interpreters]
|
13
|
+
config_widgets:
|
14
|
+
- {caption: Ruby, pixmap: ruby.png, class: 'Ruber::RubyRunner::ConfigWidget'}
|
15
|
+
config_options:
|
16
|
+
ruby:
|
17
|
+
interpreters: {default: Ruber[:ruby_runner].send(:find_interpreters), order: 0}
|
18
|
+
ruby: {:default: "Ruber[:config][:ruby,:interpreters][0]", order: 1}
|
19
|
+
ruby_options: {:default: [-w]}
|
20
|
+
project_options:
|
21
|
+
ruby:
|
22
|
+
ruby: {default: 'Ruber[:config][:ruby, :ruby]', scope: [global, document], mimetype: 'application/x-ruby', file_extension: [*.rb, Rakefile, rakefile]}
|
23
|
+
project_widgets:
|
24
|
+
- {caption: Ruby, pixmap: ruby.png, class: 'Ruber::RubyRunner::ProjectWidget', scope: [global, document], mimetype: 'application/x-ruby', file_extension: [*.rb, Rakefile, rakefile]}
|
25
|
+
actions:
|
26
|
+
ruby_runner-configured_interpreter: {text: Standard &Interpreter, class: KDE::ToggleAction}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright (C) 2010 by Stefano Crocco
|
3
|
+
stefano.crocco@alice.it
|
4
|
+
|
5
|
+
This program is free software; you can redistribute it andor modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation; either version 2 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
This program is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with this program; if not, write to the
|
17
|
+
Free Software Foundation, Inc.,
|
18
|
+
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
19
|
+
=end
|
20
|
+
|
21
|
+
require_relative 'ui/project_widget'
|
22
|
+
|
23
|
+
module Ruber
|
24
|
+
|
25
|
+
module RubyRunner
|
26
|
+
|
27
|
+
=begin rdoc
|
28
|
+
Project widget for the ruby runner plugin
|
29
|
+
=end
|
30
|
+
class ProjectWidget < ProjectConfigWidget
|
31
|
+
|
32
|
+
=begin rdoc
|
33
|
+
Creates a new instance
|
34
|
+
|
35
|
+
@param [Ruber::AbstractProject] prj the project the widget is for
|
36
|
+
=end
|
37
|
+
def initialize prj
|
38
|
+
super
|
39
|
+
@ui = Ui::RubyRunnerProjectWidget.new
|
40
|
+
@ui.setupUi self
|
41
|
+
@ui._ruby__ruby.add_items Ruber[:config][:ruby, :interpreters]
|
42
|
+
end
|
43
|
+
|
44
|
+
=begin rdoc
|
45
|
+
Reader for the @ruby/ruby@ option
|
46
|
+
|
47
|
+
It selects the entry having text equal to _value_ in the combo box (or the first
|
48
|
+
entry if there's no entry with text _value_)
|
49
|
+
|
50
|
+
@param [String] value the path of the interpreter to use
|
51
|
+
=end
|
52
|
+
def interpreter= value
|
53
|
+
item = @ui._ruby__ruby.each_with_index.find{|txt, i| txt == value}
|
54
|
+
idx = item ? item[1] : 0
|
55
|
+
@ui._ruby__ruby.current_index = idx
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|