ruber 0.0.5 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. data/CHANGES +25 -0
  2. data/bin/ruber +0 -0
  3. data/data/share/apps/ruber/ruberui.rc +15 -1
  4. data/data/share/icons/{ruber.png → ruber-old.pgn} +0 -0
  5. data/lib/ruber/application/application.rb +216 -73
  6. data/lib/ruber/application/plugin.yaml +2 -2
  7. data/lib/ruber/document_project.rb +25 -5
  8. data/lib/ruber/documents/document_list.rb +11 -15
  9. data/lib/ruber/editor/document.rb +106 -50
  10. data/lib/ruber/editor/editor_view.rb +4 -2
  11. data/lib/ruber/external_program_plugin.rb +8 -0
  12. data/lib/ruber/kde_config_option_backend.rb +12 -4
  13. data/lib/ruber/kde_sugar.rb +35 -1
  14. data/lib/ruber/main_window/choose_plugins_dlg.rb +10 -10
  15. data/lib/ruber/main_window/hint_solver.rb +263 -0
  16. data/lib/ruber/main_window/main_window.rb +462 -206
  17. data/lib/ruber/main_window/main_window_actions.rb +228 -62
  18. data/lib/ruber/main_window/main_window_internal.rb +169 -115
  19. data/lib/ruber/main_window/plugin.yaml +13 -3
  20. data/lib/ruber/main_window/save_modified_files_dlg.rb +1 -1
  21. data/lib/ruber/main_window/ui/choose_plugins_widget.rb +1 -1
  22. data/lib/ruber/main_window/ui/main_window_settings_widget.rb +1 -1
  23. data/lib/ruber/main_window/ui/new_project_widget.rb +1 -1
  24. data/lib/ruber/main_window/ui/open_file_in_project_dlg.rb +1 -1
  25. data/lib/ruber/main_window/ui/output_color_widget.rb +1 -1
  26. data/lib/ruber/main_window/ui/workspace_settings_widget.rb +51 -0
  27. data/lib/ruber/main_window/ui/workspace_settings_widget.ui +28 -0
  28. data/lib/ruber/main_window/view_manager.rb +418 -0
  29. data/lib/ruber/main_window/workspace.png +0 -0
  30. data/lib/ruber/output_widget.rb +43 -37
  31. data/lib/ruber/pane.rb +621 -0
  32. data/lib/ruber/plugin_specification_reader.rb +8 -1
  33. data/lib/ruber/projects/project_files_list.rb +6 -0
  34. data/lib/ruber/projects/ui/project_files_rule_chooser_widget.rb +1 -1
  35. data/lib/ruber/projects/ui/project_files_widget.rb +1 -1
  36. data/lib/ruber/qt_sugar.rb +94 -4
  37. data/lib/ruber/utils.rb +16 -7
  38. data/lib/ruber/version.rb +2 -2
  39. data/plugins/autosave/autosave.rb +62 -1
  40. data/plugins/autosave/plugin.yaml +1 -0
  41. data/plugins/autosave/ui/autosave_config_widget.rb +37 -14
  42. data/plugins/autosave/ui/autosave_config_widget.ui +62 -12
  43. data/plugins/find_in_files/find_in_files_widgets.rb +1 -3
  44. data/plugins/find_in_files/ui/config_widget.rb +1 -1
  45. data/plugins/find_in_files/ui/find_in_files_widget.rb +1 -1
  46. data/plugins/rake/plugin.yaml +1 -1
  47. data/plugins/rake/ui/add_quick_task_widget.rb +1 -1
  48. data/plugins/rake/ui/choose_task_widget.rb +1 -1
  49. data/plugins/rake/ui/config_widget.rb +1 -1
  50. data/plugins/rake/ui/project_widget.rb +1 -1
  51. data/plugins/rspec/rspec.rb +14 -22
  52. data/plugins/rspec/ruber_rspec_formatter.rb +4 -1
  53. data/plugins/rspec/ui/rspec_project_widget.rb +1 -1
  54. data/plugins/ruby_development/plugin.yaml +7 -2
  55. data/plugins/ruby_development/ruby_development.rb +134 -13
  56. data/plugins/ruby_development/ui/config_widget.rb +66 -0
  57. data/plugins/ruby_development/ui/config_widget.ui +58 -0
  58. data/plugins/ruby_development/ui/project_widget.rb +1 -1
  59. data/plugins/ruby_runner/plugin.yaml +2 -2
  60. data/plugins/ruby_runner/ruby_runner.rb +15 -3
  61. data/plugins/ruby_runner/ui/config_widget.rb +1 -1
  62. data/plugins/ruby_runner/ui/project_widget.rb +1 -1
  63. data/plugins/ruby_runner/ui/ruby_runnner_plugin_option_widget.rb +1 -1
  64. data/plugins/state/plugin.yaml +6 -2
  65. data/plugins/state/state.rb +305 -81
  66. data/plugins/state/ui/config_widget.rb +1 -1
  67. data/spec/common.rb +11 -3
  68. data/spec/document_list_spec.rb +8 -8
  69. data/spec/document_project_spec.rb +98 -25
  70. data/spec/document_spec.rb +178 -152
  71. data/spec/editor_view_spec.rb +26 -5
  72. data/spec/framework.rb +5 -0
  73. data/spec/hint_solver_spec.rb +450 -0
  74. data/spec/kde_sugar_spec.rb +73 -6
  75. data/spec/output_widget_spec.rb +172 -156
  76. data/spec/pane_spec.rb +1165 -0
  77. data/spec/plugin_specification_reader_spec.rb +37 -1
  78. data/spec/project_files_list_spec.rb +30 -20
  79. data/spec/qt_sugar_spec.rb +269 -0
  80. data/spec/state_spec.rb +566 -353
  81. data/spec/utils_spec.rb +1 -1
  82. data/spec/view_manager_spec.rb +71 -0
  83. metadata +16 -4
@@ -405,9 +405,6 @@ because the document corresponding to the file was modified
405
405
  it.each_row do |line, _, repl|
406
406
  lines_to_replace[line.text.to_i] = repl.text if line.checked?
407
407
  end
408
- # TODO see what the line below did. In my opinion, it is the remainder of some line
409
- # I added for testing and forgot to remove
410
- # path = file.sub( '/home/stefano/tmp/ruber', '').gsub('/', '_')
411
408
  lines = File.readlines(file)
412
409
  lines_to_replace.each_pair{|idx, text| lines[idx - 1] = text + "\n"}
413
410
  new_text = lines.join ''
@@ -421,6 +418,7 @@ because the document corresponding to the file was modified
421
418
  doc.text = new_text
422
419
  end
423
420
  doc.save
421
+ #If the document doesn't have a view, pos will be nil
424
422
  doc.view.go_to pos.line, pos.column if pos
425
423
  else
426
424
  Tempfile.open(File.basename(file)) do |f|
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  ** Form generated from reading ui file 'config_widget.ui'
3
3
  **
4
- ** Created: ven ott 29 17:39:04 2010
4
+ ** Created: mar nov 16 11:52:49 2010
5
5
  ** by: Qt User Interface Compiler version 4.7.0
6
6
  **
7
7
  ** WARNING! All changes made in this file will be lost when recompiling ui file!
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  ** Form generated from reading ui file 'find_in_files_widget.ui'
3
3
  **
4
- ** Created: ven ott 29 17:39:04 2010
4
+ ** Created: mar nov 16 11:52:49 2010
5
5
  ** by: Qt User Interface Compiler version 4.7.0
6
6
  **
7
7
  ** WARNING! All changes made in this file will be lost when recompiling ui file!
@@ -6,7 +6,7 @@ about:
6
6
  description: A Ruber interface to rake
7
7
  bug_address: http://github.com/stcrocco/ruber/issues
8
8
  icon: rake.png
9
- deps: ruby_runner
9
+ deps: [ruby_runner, autosave]
10
10
  require: [rake, rake_extension]
11
11
  class: Ruber::Rake::Plugin
12
12
  ui_file: rakeui.rc
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  ** Form generated from reading ui file 'add_quick_task_widget.ui'
3
3
  **
4
- ** Created: ven ott 29 17:39:04 2010
4
+ ** Created: mar nov 16 11:52:49 2010
5
5
  ** by: Qt User Interface Compiler version 4.7.0
6
6
  **
7
7
  ** WARNING! All changes made in this file will be lost when recompiling ui file!
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  ** Form generated from reading ui file 'choose_task_widget.ui'
3
3
  **
4
- ** Created: ven ott 29 17:39:04 2010
4
+ ** Created: mar nov 16 11:52:49 2010
5
5
  ** by: Qt User Interface Compiler version 4.7.0
6
6
  **
7
7
  ** WARNING! All changes made in this file will be lost when recompiling ui file!
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  ** Form generated from reading ui file 'config_widget.ui'
3
3
  **
4
- ** Created: ven ott 29 17:39:04 2010
4
+ ** Created: mar nov 16 11:52:49 2010
5
5
  ** by: Qt User Interface Compiler version 4.7.0
6
6
  **
7
7
  ** WARNING! All changes made in this file will be lost when recompiling ui file!
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  ** Form generated from reading ui file 'project_widget.ui'
3
3
  **
4
- ** Created: ven ott 29 17:39:04 2010
4
+ ** Created: mar nov 16 11:52:49 2010
5
5
  ** by: Qt User Interface Compiler version 4.7.0
6
6
  **
7
7
  ** WARNING! All changes made in this file will be lost when recompiling ui file!
@@ -278,21 +278,30 @@ which, most likely, will cause it to fail.
278
278
  @return [Boolean] *true* if the spec program is started and *false* otherwise
279
279
  (including the case when the process was already running or autosaving failed)
280
280
  =end
281
- def run_current
281
+ def run_current what = :all
282
282
  prj = Ruber[:projects].current_project
283
283
  unless prj
284
284
  KDE::MessageBox.error nil, "You must have an open project to choose this entry.\nYOU SHOULD NEVER SEE THIS MESSAGE"
285
285
  return
286
286
  end
287
287
  opts = options prj
288
- doc = Ruber[:main_window].current_document
288
+ view = Ruber[:main_window].active_editor
289
+ doc = view.document
290
+ unless doc.url.local_file?
291
+ KDE::MessageBox.sorry nil, 'You can\'t run rspec for remote files'
292
+ return
293
+ end
289
294
  unless doc
290
- KDE::MessageBox.error nil, "You must have an open document to choose this entry.\nYOU SHOULD NEVER SEE THIS MESSAGE"
295
+ KDE::MessageBox.error nil, "You must have an open editor to choose this entry.\nYOU SHOULD NEVER SEE THIS MESSAGE"
291
296
  return
292
297
  end
293
298
  files = specs_for_file opts, doc.path
294
299
  files.reject!{|f| !File.exist? f}
295
300
  opts[:files] = files.empty? ? [doc.path] : files
301
+ if what == :current_line
302
+ line = view.cursor_position.line + 1
303
+ opts[:spec_options] += ["-l", line.to_s]
304
+ end
296
305
  run_rspec_for prj, opts, :files => :documents_with_file, :on_failure => :ask,
297
306
  :message => 'Do you want to run the tests all the same?'
298
307
  end
@@ -309,26 +318,9 @@ current file is the example file, not the source.
309
318
  (including the case when the process was already running or autosaving failed)
310
319
  =end
311
320
  def run_current_line
312
- prj = Ruber[:projects].current_project
313
- unless prj
314
- KDE::MessageBox.error nil, "You must have an open project to choose this entry.\nYOU SHOULD NEVER SEE THIS MESSAGE"
315
- return
316
- end
317
- opts = options prj
318
- doc = Ruber[:main_window].current_document
319
- unless doc
320
- KDE::MessageBox.error nil, "You must have an open document to choose this entry.\nYOU SHOULD NEVER SEE THIS MESSAGE"
321
- return
322
- end
323
- line = doc.view.cursor_position.line + 1
324
- files = specs_for_file opts, doc.path
325
- files.reject!{|f| !File.exist? f}
326
- opts[:files] = files.empty? ? [doc.path] : files
327
- opts[:spec_options] += ["-l", line.to_s]
328
- run_rspec_for prj, opts, :files => :documents_with_file, :on_failure => :ask,
329
- :message => 'Do you want to run the tests all the same?'
321
+ run_current :current_line
330
322
  end
331
-
323
+
332
324
  =begin rdoc
333
325
  Runs the spec command for the given object
334
326
 
@@ -272,7 +272,10 @@ by newlines
272
272
  hash = {}
273
273
  hash[:type] = :failure
274
274
  hash[:description] = ex.metadata[:full_description]
275
- exception = ex.metadata[:execution_result][:exception_encountered]
275
+ # It seems that rspec up tp 2.2 uses :exception_encountered, while from
276
+ # 2.3 it uses :exception. This should work for both
277
+ exception = ex.metadata[:execution_result][:exception]
278
+ exception ||= ex.metadata[:execution_result][:exception_encountered]
276
279
  hash[:exception] = exception.class.name
277
280
  hash[:message] = exception.message
278
281
  hash[:location] = ex.metadata[:location]
@@ -1,7 +1,7 @@
1
1
  =begin
2
2
  ** Form generated from reading ui file 'rspec_project_widget.ui'
3
3
  **
4
- ** Created: ven ott 29 17:39:04 2010
4
+ ** Created: mar nov 16 11:52:49 2010
5
5
  ** by: Qt User Interface Compiler version 4.7.0
6
6
  **
7
7
  ** WARNING! All changes made in this file will be lost when recompiling ui file!
@@ -11,12 +11,17 @@ class: Ruber::FilesRunner::Plugin
11
11
  require: ruby_development
12
12
  ui_file: ruby_developmentui.rc
13
13
  tool_widgets: {:class: Ruber::FilesRunner::OutputWidget, :caption: Ruby output, :position: :bottom, :name: ruby_output_widget, pixmap: ruby_development.png}
14
+ config_options:
15
+ ruby:
16
+ run_in_terminal_cmd: {default: 'konsole --workdir %d --hold -e %r'}
17
+ config_widgets:
18
+ - {caption: Ruby, class: Ruber::FilesRunner::ConfigWidget}
14
19
  project_options:
15
20
  ruby:
16
21
  main_program: {default: "''", relative_path: true}
17
- options: {default: [], scope: [document, global]}
22
+ options: {default: [], scope: [document, global], place: all}
18
23
  working_dir: {default: '.', relative_path: true}
19
- run_in_terminal: {default: false, scope: [document, global]}
24
+ run_in_terminal: {default: false, scope: [document, global], place: all}
20
25
  project_widgets:
21
26
  - {caption: Ruby, class: Ruber::FilesRunner::ProjectWidget, scope: [document, global]}
22
27
  actions:
@@ -3,6 +3,7 @@ require 'ruber/filtered_output_widget'
3
3
  require 'ruby_runner/ruby_runner'
4
4
 
5
5
  require_relative 'ui/project_widget'
6
+ require_relative 'ui/config_widget'
6
7
 
7
8
  module Ruber
8
9
 
@@ -15,6 +16,9 @@ the file corresponding to the current document or another file specified by the
15
16
  user. The output of the program (both standard output and standard error) are
16
17
  displayied in a tool widget.
17
18
 
19
+ To allow ruby to run a remote file (or a document associated with a remote file),
20
+ a temporary file is created and the contents of the remote file are copied in it.
21
+
18
22
  The interpreter to use can be set document- or project-wise using the Ruby runner
19
23
  plugin.
20
24
 
@@ -42,6 +46,8 @@ Plugin object for the Files runner plugn
42
46
  =end
43
47
  class Plugin < RubyRunner::RubyRunnerPlugin
44
48
 
49
+ FakeFileInfo = Struct.new :file, :url
50
+
45
51
  slots :load_settings
46
52
 
47
53
  =begin rdoc
@@ -49,7 +55,7 @@ Plugin object for the Files runner plugn
49
55
  =end
50
56
  def initialize psf
51
57
  super psf, :ruby, :scope => [:document, :global], :file_extension => %w[*.rb Rakefile rakefile],
52
- :mimetype => ['application/x-ruby']
58
+ :mimetype => ['application/x-ruby'], :place => [:local, :remote]
53
59
  process.next_open_mode = Qt::IODevice::ReadOnly | Qt::IODevice::Unbuffered
54
60
  Ruber[:autosave].register_plugin self, true
55
61
  connect self, SIGNAL('process_finished(int, QString)'), self, SLOT('ruby_exited(int, QString)')
@@ -66,6 +72,7 @@ Plugin object for the Files runner plugn
66
72
  o.register_plugin self, true if f == 'autosave'
67
73
  end
68
74
  @output_widget = @widget
75
+ @fake_file = nil
69
76
  end
70
77
 
71
78
  =begin rdoc
@@ -126,8 +133,8 @@ as first argument to {Autosave::AutosavePlugin#autosave}
126
133
  Ruber[:main_window].show_tool @widget
127
134
  Ruber[:main_window].change_state 'ruby_running', true
128
135
  if opts[:run_in_terminal]
129
- run_process 'konsole', opts[:dir], ['--workdir', opts[:dir], '--hold',
130
- '-e', opts[:ruby]] + cmd
136
+ terminal, *term_opts = terminal_command opts[:dir], ([opts[:ruby]] + cmd)
137
+ run_process terminal, opts[:dir], term_opts
131
138
  else run_process opts[:ruby], opts[:dir], cmd
132
139
  end
133
140
  true
@@ -206,6 +213,18 @@ successfully or not
206
213
  prj = doc.project
207
214
  file = File.basename(doc.path)
208
215
  dir = File.dirname(doc.path)
216
+ url = doc.url
217
+ if url.remote_file?
218
+ @fake_file = FakeFileInfo.new Tempfile.new('ruby_development'), url
219
+ @fake_file.file.write doc.text
220
+ @fake_file.file.flush
221
+ file = @fake_file.file.path
222
+ dir = ENV['HOME']
223
+ end
224
+ unless prj.has_setting?(:ruby, :options)
225
+ KDE::MessageBox.sorry nil, "The document #{url.pretty_url} doesn't seem to be a ruby file, so it can't be run"
226
+ return
227
+ end
209
228
  run_ruby_for prj, file, dir, prj[:ruby, :options], run_in_terminal?(doc.project),
210
229
  :files => [doc], :on_failure => :ask
211
230
  end
@@ -215,32 +234,48 @@ Runs a file in ruby.
215
234
 
216
235
  If the file is associated with a document, this method will work like {#run_document}.
217
236
 
218
- Ruby will be executed from the directory where the file is.
237
+ The file can be local or remote.
238
+
239
+ Ruby will be executed from the directory where the file is or from the user's
240
+ home directory if the file is remote.
219
241
 
220
242
  The program will be run in a terminal if the corresponding action is checked.
221
243
 
222
244
  This method uses {#run_ruby_for}
223
245
 
224
246
  *Note:* it is not possible to specify command line options to be passed to _file_.
225
- @param [String, nil] file the path of the file to run. If *nil*, an "Open file"
247
+ @param [String, nil] file the path or url of the file to run. If *nil*, an "Open file"
226
248
  dialog is shown to the user
227
249
  @return [Boolean, nil] *true* or *false* depending on whether the ruby process
228
250
  was started. If the user pressed the Cancel button of the dialog, *nil* is returned.
229
251
  @see #run_ruby_for
230
252
  =end
231
253
  def run_file file = nil
232
- unless file
233
- file = KDE::FileDialog.get_open_file_name KDE::Url.new(Ruber[:main_window].scripts_directory),
254
+ if file then url = KDE::Url.new file
255
+ else
256
+ url = KDE::FileDialog.get_open_url KDE::Url.new(Ruber[:config][:general, :default_script_directory]),
234
257
  "*.rb|Ruby files (*.rb)", nil, "Choose file to run"
235
- return unless file
258
+ return unless url
259
+ file = url.to_encoded.to_s
236
260
  end
237
261
 
238
- if doc = Ruber[:docs].document_for_file(file)
262
+ if doc = Ruber[:docs].document_for_url(url)
239
263
  return run_document doc
240
264
  end
241
265
 
242
- dir = File.dirname(file)
243
- file = File.basename(file)
266
+ if url.local_file?
267
+ dir = File.dirname(file)
268
+ file = File.basename(file)
269
+ else
270
+ @fake_file = FakeFileInfo.new Tempfile.new('ruby_development'), url
271
+ downloaded = KIO::NetAccess.download url, @fake_file.file.path, Ruber[:main_window]
272
+ unless downloaded
273
+ KDE::MessageBox.sorry Ruber[:main_window], KDE::NetAccess.last_error_string
274
+ return
275
+ end
276
+ file = @fake_file.file.path
277
+ dir = ENV['HOME']
278
+ end
244
279
  run_ruby_for nil, file, dir, [], run_in_terminal?
245
280
  end
246
281
  slots :run_file
@@ -274,6 +309,30 @@ if the project has document scope
274
309
 
275
310
  private
276
311
 
312
+ =begin rdoc
313
+ The command line to use to run the given ruby command in a terminal
314
+
315
+ This method replaces every instance of @%d@ in the @ruby/run_in_terminal_cmd@
316
+ setting with the working directory and every instance of @%r@ with the ruby command.
317
+ If @%r@ is sourrounded by spaces, it'll be replaced by _ruby_command_ as it is;
318
+ it @%r@ is part of a string, it'll be replaced by the elements of _ruby_command_
319
+ joined with spaces.
320
+
321
+ @param [String] dir the working directory
322
+ @param [Array<String>] ruby_command the ruby command to execute in the terminal
323
+ @return [Array<String>] the command to run the terminal, in a form suitable to be
324
+ passed to {#run_process}
325
+ =end
326
+ def terminal_command dir, ruby_command
327
+ cmd = Ruber[:config][:ruby, :run_in_terminal_cmd].split(/\s+/)
328
+ cmd.each do |c|
329
+ c.gsub!('%d', dir)
330
+ c.gsub!('%r', ruby_command.join(' ')) unless c == '%r'
331
+ end
332
+ cmd.each_with_index.find{|e, i| e == '%r'}.each_index{|i| cmd[i] = ruby_command}
333
+ cmd.flatten
334
+ end
335
+
277
336
  =begin rdoc
278
337
  Starts executing a given ruby program and displays the tool widget
279
338
 
@@ -295,7 +354,7 @@ started correctly
295
354
  @see #run_ruby
296
355
  @see RubyRunner::RubyRunnerPluginInternal#ruby_command_for
297
356
  =end
298
- def run_ruby_for what, file, dir, prog_options, run_in_terminal, autosave_opts, &blk
357
+ def run_ruby_for what, file, dir, prog_options, run_in_terminal, autosave_opts={}, &blk
299
358
  ruby, *ruby_opts = ruby_command_for what, dir
300
359
  opts = {
301
360
  :dir => dir,
@@ -318,7 +377,8 @@ was started correctly and *nil* if no document exists
318
377
  =end
319
378
  def run_current_document
320
379
  doc = Ruber[:main_window].current_document
321
- run_document doc if doc
380
+ return unless doc
381
+ run_document doc
322
382
  end
323
383
  slots :run_current_document
324
384
 
@@ -354,9 +414,60 @@ Resets the UI, scrolls the tool widget at the end and gives focus to the editor
354
414
  Ruber[:main_window].change_state 'ruby_running', false
355
415
  @widget.scroll_to -1
356
416
  Ruber[:main_window].focus_on_editor
417
+ if @fake_file
418
+ @fake_file.file.close true
419
+ @fake_file = nil
420
+ end
357
421
  nil
358
422
  end
359
423
  slots 'ruby_exited(int, QString)'
424
+
425
+ =begin rdoc
426
+ Replaces the path of the fake file used for running remote documents with the URL
427
+ of the document
428
+
429
+ It does nothing if there's no fake file (that is, if we're not executing the document
430
+ associated with a remote file).
431
+
432
+ *Note:* for efficency reasons the replacement is performed in place, so create a
433
+ duplicate of the array before calling this method if you need to preserve it.
434
+
435
+ @param [Array<String>] the lines of text to perform the replacement into
436
+ @return [Array<String>] the lines with all occurrences of the fake file path replaced
437
+ with the url of the remote file. If no fake file is in use, _lines_ will be returned
438
+ unchanged
439
+ =end
440
+ def replace_fake_file lines
441
+ if @fake_file
442
+ lines.map!{|l| l.gsub(@fake_file.file.path, @fake_file.url.pretty_url)}
443
+ end
444
+ lines
445
+ end
446
+
447
+ =begin rdoc
448
+ Override of {ExternalProgramPlugin#process_standard_output}
449
+
450
+ It processes the lines using {#replace_fake_file} before passing it to the base
451
+ class's method
452
+ @param (see Ruber::ExternalProgramPlugin#process_standard_output)
453
+ @return (see Ruber::ExternalProgramPlugin#process_standard_output)
454
+ =end
455
+ def process_standard_output lines
456
+ super replace_fake_file(lines)
457
+ end
458
+
459
+ =begin rdoc
460
+ Override of {ExternalProgramPlugin#process_standard_error}
461
+
462
+ It processes the lines using {#replace_fake_file} before passing it to the base
463
+ class's method
464
+ @param (see Ruber::ExternalProgramPlugin#process_standard_error)
465
+ @return (see Ruber::ExternalProgramPlugin#process_standard_error)
466
+ =end
467
+ def process_standard_error lines
468
+ super replace_fake_file(lines)
469
+ end
470
+
360
471
 
361
472
  end
362
473
 
@@ -447,6 +558,16 @@ project with document scope.
447
558
  end
448
559
 
449
560
  end
561
+
562
+ class ConfigWidget < Qt::Widget
563
+
564
+ def initialize parent = nil
565
+ super
566
+ @ui = Ui::RubyDevelopmentConfigWidget.new
567
+ @ui.setupUi self
568
+ end
569
+
570
+ end
450
571
 
451
572
  end
452
573
 
@@ -0,0 +1,66 @@
1
+ =begin
2
+ ** Form generated from reading ui file 'config_widget.ui'
3
+ **
4
+ ** Created: mar gen 11 14:57:22 2011
5
+ ** by: Qt User Interface Compiler version 4.7.1
6
+ **
7
+ ** WARNING! All changes made in this file will be lost when recompiling ui file!
8
+ =end
9
+
10
+ class Ui_RubyDevelopmentConfigWidget
11
+ attr_reader :horizontalLayout
12
+ attr_reader :label
13
+ attr_reader :_ruby__run_in_terminal_cmd
14
+
15
+ def setupUi(rubyDevelopmentConfigWidget)
16
+ if rubyDevelopmentConfigWidget.objectName.nil?
17
+ rubyDevelopmentConfigWidget.objectName = "rubyDevelopmentConfigWidget"
18
+ end
19
+ rubyDevelopmentConfigWidget.resize(400, 38)
20
+ @horizontalLayout = Qt::HBoxLayout.new(rubyDevelopmentConfigWidget)
21
+ @horizontalLayout.objectName = "horizontalLayout"
22
+ @label = Qt::Label.new(rubyDevelopmentConfigWidget)
23
+ @label.objectName = "label"
24
+
25
+ @horizontalLayout.addWidget(@label)
26
+
27
+ @_ruby__run_in_terminal_cmd = KDE::LineEdit.new(rubyDevelopmentConfigWidget)
28
+ @_ruby__run_in_terminal_cmd.objectName = "_ruby__run_in_terminal_cmd"
29
+
30
+ @horizontalLayout.addWidget(@_ruby__run_in_terminal_cmd)
31
+
32
+ @label.buddy = @_ruby__run_in_terminal_cmd
33
+
34
+ retranslateUi(rubyDevelopmentConfigWidget)
35
+
36
+ Qt::MetaObject.connectSlotsByName(rubyDevelopmentConfigWidget)
37
+ end # setupUi
38
+
39
+ def setup_ui(rubyDevelopmentConfigWidget)
40
+ setupUi(rubyDevelopmentConfigWidget)
41
+ end
42
+
43
+ def retranslateUi(rubyDevelopmentConfigWidget)
44
+ rubyDevelopmentConfigWidget.windowTitle = Qt::Application.translate("RubyDevelopmentConfigWidget", "Form", nil, Qt::Application::UnicodeUTF8)
45
+ @label.toolTip = Qt::Application.translate("RubyDevelopmentConfigWidget", "The command to use to run a ruby script in a terminal", nil, Qt::Application::UnicodeUTF8)
46
+ @label.whatsThis = Qt::Application.translate("RubyDevelopmentConfigWidget", "In the command line, use %d to indicate the initial working directory for the terminal and %r to indicate where to put the ruby command line. The %r sequence should be either sourrounded by spaces or have a space before it and the end of the command after it.\n" \
47
+ "\n" \
48
+ "Note that you can't use arguments containing spaces in the command line.", nil, Qt::Application::UnicodeUTF8)
49
+ @label.text = Qt::Application.translate("RubyDevelopmentConfigWidget", "&Terminal", nil, Qt::Application::UnicodeUTF8)
50
+ @_ruby__run_in_terminal_cmd.toolTip = Qt::Application.translate("RubyDevelopmentConfigWidget", "The command to use to run a ruby script in a terminal", nil, Qt::Application::UnicodeUTF8)
51
+ @_ruby__run_in_terminal_cmd.whatsThis = Qt::Application.translate("RubyDevelopmentConfigWidget", "In the command line, use %d to indicate the initial working directory for the terminal and %r to indicate where to put the ruby command line.\n" \
52
+ "\n" \
53
+ "Note that you can't use arguments containing spaces in the command line", nil, Qt::Application::UnicodeUTF8)
54
+ end # retranslateUi
55
+
56
+ def retranslate_ui(rubyDevelopmentConfigWidget)
57
+ retranslateUi(rubyDevelopmentConfigWidget)
58
+ end
59
+
60
+ end
61
+
62
+ module Ui
63
+ class RubyDevelopmentConfigWidget < Ui_RubyDevelopmentConfigWidget
64
+ end
65
+ end # module Ui
66
+