ruber 0.0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (166) hide show
  1. data/COPYING +339 -0
  2. data/INSTALL +137 -0
  3. data/LICENSE +8 -0
  4. data/bin/ruber +65 -0
  5. data/data/share/apps/ruber/core_components.yaml +31 -0
  6. data/data/share/apps/ruber/ruberui.rc +109 -0
  7. data/data/share/icons/ruber.png +0 -0
  8. data/data/share/pixmaps/ruby.png +0 -0
  9. data/icons/ruber-16.png +0 -0
  10. data/icons/ruber-32.png +0 -0
  11. data/icons/ruber-48.png +0 -0
  12. data/icons/ruber-8.png +0 -0
  13. data/lib/ruber/application/application.rb +288 -0
  14. data/lib/ruber/application/plugin.yaml +11 -0
  15. data/lib/ruber/component_manager.rb +899 -0
  16. data/lib/ruber/config/config.rb +82 -0
  17. data/lib/ruber/config/plugin.yaml +3 -0
  18. data/lib/ruber/document_project.rb +209 -0
  19. data/lib/ruber/documents/document_list.rb +416 -0
  20. data/lib/ruber/documents/plugin.yaml +4 -0
  21. data/lib/ruber/editor/document.rb +506 -0
  22. data/lib/ruber/editor/editor_view.rb +167 -0
  23. data/lib/ruber/editor/ktexteditor_wrapper.rb +202 -0
  24. data/lib/ruber/exception_widgets.rb +245 -0
  25. data/lib/ruber/external_program_plugin.rb +397 -0
  26. data/lib/ruber/filtered_output_widget.rb +342 -0
  27. data/lib/ruber/gui_states_handler.rb +231 -0
  28. data/lib/ruber/kde_config_option_backend.rb +167 -0
  29. data/lib/ruber/kde_sugar.rb +249 -0
  30. data/lib/ruber/main_window/choose_plugins_dlg.rb +353 -0
  31. data/lib/ruber/main_window/main_window.rb +524 -0
  32. data/lib/ruber/main_window/main_window_actions.rb +537 -0
  33. data/lib/ruber/main_window/main_window_internal.rb +239 -0
  34. data/lib/ruber/main_window/open_file_in_project_dlg.rb +212 -0
  35. data/lib/ruber/main_window/output_color_widget.rb +35 -0
  36. data/lib/ruber/main_window/plugin.yaml +58 -0
  37. data/lib/ruber/main_window/save_modified_files_dlg.rb +89 -0
  38. data/lib/ruber/main_window/status_bar.rb +156 -0
  39. data/lib/ruber/main_window/ui/choose_plugins_widget.rb +90 -0
  40. data/lib/ruber/main_window/ui/choose_plugins_widget.ui +77 -0
  41. data/lib/ruber/main_window/ui/main_window_settings_widget.rb +108 -0
  42. data/lib/ruber/main_window/ui/main_window_settings_widget.ui +89 -0
  43. data/lib/ruber/main_window/ui/new_project_widget.rb +119 -0
  44. data/lib/ruber/main_window/ui/new_project_widget.ui +178 -0
  45. data/lib/ruber/main_window/ui/open_file_in_project_dlg.rb +109 -0
  46. data/lib/ruber/main_window/ui/open_file_in_project_dlg.ui +168 -0
  47. data/lib/ruber/main_window/ui/output_color_widget.rb +241 -0
  48. data/lib/ruber/main_window/ui/output_color_widget.ui +204 -0
  49. data/lib/ruber/main_window/workspace.rb +442 -0
  50. data/lib/ruber/output_widget.rb +1093 -0
  51. data/lib/ruber/plugin.rb +264 -0
  52. data/lib/ruber/plugin_like.rb +589 -0
  53. data/lib/ruber/plugin_specification.rb +106 -0
  54. data/lib/ruber/plugin_specification_reader.rb +451 -0
  55. data/lib/ruber/project.rb +493 -0
  56. data/lib/ruber/project_backend.rb +105 -0
  57. data/lib/ruber/projects/plugin.yaml +11 -0
  58. data/lib/ruber/projects/project_files_list.rb +314 -0
  59. data/lib/ruber/projects/project_files_widget.rb +301 -0
  60. data/lib/ruber/projects/project_list.rb +314 -0
  61. data/lib/ruber/projects/ui/project_files_rule_chooser_widget.rb +74 -0
  62. data/lib/ruber/projects/ui/project_files_rule_chooser_widget.ui +61 -0
  63. data/lib/ruber/projects/ui/project_files_widget.rb +117 -0
  64. data/lib/ruber/projects/ui/project_files_widget.ui +123 -0
  65. data/lib/ruber/qt_sugar.rb +673 -0
  66. data/lib/ruber/settings_container.rb +515 -0
  67. data/lib/ruber/settings_dialog.rb +244 -0
  68. data/lib/ruber/settings_dialog_manager.rb +503 -0
  69. data/lib/ruber/utils.rb +414 -0
  70. data/lib/ruber/yaml_option_backend.rb +159 -0
  71. data/outsider_files +15 -0
  72. data/plugins/autosave/autosave.rb +404 -0
  73. data/plugins/autosave/plugin.yaml +16 -0
  74. data/plugins/autosave/ui/autosave_config_widget.rb +83 -0
  75. data/plugins/autosave/ui/autosave_config_widget.ui +68 -0
  76. data/plugins/command/command.png +0 -0
  77. data/plugins/command/command.rb +74 -0
  78. data/plugins/command/plugin.yaml +11 -0
  79. data/plugins/find_in_files/find_in_files.rb +337 -0
  80. data/plugins/find_in_files/find_in_files_dlg.rb +411 -0
  81. data/plugins/find_in_files/find_in_files_ui.rc +11 -0
  82. data/plugins/find_in_files/find_in_files_widgets.rb +485 -0
  83. data/plugins/find_in_files/plugin.yaml +23 -0
  84. data/plugins/find_in_files/ui/config_widget.rb +58 -0
  85. data/plugins/find_in_files/ui/config_widget.ui +41 -0
  86. data/plugins/find_in_files/ui/find_in_files_widget.rb +260 -0
  87. data/plugins/find_in_files/ui/find_in_files_widget.ui +324 -0
  88. data/plugins/project_browser/plugin.yaml +10 -0
  89. data/plugins/project_browser/project_browser.rb +245 -0
  90. data/plugins/rake/plugin.yaml +39 -0
  91. data/plugins/rake/rake.png +0 -0
  92. data/plugins/rake/rake.rb +567 -0
  93. data/plugins/rake/rake_extension.rb +153 -0
  94. data/plugins/rake/rake_widgets.rb +615 -0
  95. data/plugins/rake/rakeui.rc +27 -0
  96. data/plugins/rake/ui/add_quick_task_widget.rb +71 -0
  97. data/plugins/rake/ui/add_quick_task_widget.ui +59 -0
  98. data/plugins/rake/ui/choose_task_widget.rb +77 -0
  99. data/plugins/rake/ui/choose_task_widget.ui +72 -0
  100. data/plugins/rake/ui/config_widget.rb +127 -0
  101. data/plugins/rake/ui/config_widget.ui +123 -0
  102. data/plugins/rake/ui/project_widget.rb +217 -0
  103. data/plugins/rake/ui/project_widget.ui +246 -0
  104. data/plugins/rspec/plugin.yaml +30 -0
  105. data/plugins/rspec/rspec.png +0 -0
  106. data/plugins/rspec/rspec.rb +945 -0
  107. data/plugins/rspec/rspec.svg +90 -0
  108. data/plugins/rspec/rspecui.rc +20 -0
  109. data/plugins/rspec/ruber_rspec_formatter.rb +312 -0
  110. data/plugins/rspec/ui/rspec_project_widget.rb +170 -0
  111. data/plugins/rspec/ui/rspec_project_widget.ui +193 -0
  112. data/plugins/ruby_development/plugin.yaml +27 -0
  113. data/plugins/ruby_development/ruby_development.png +0 -0
  114. data/plugins/ruby_development/ruby_development.rb +453 -0
  115. data/plugins/ruby_development/ruby_developmentui.rc +19 -0
  116. data/plugins/ruby_development/ui/project_widget.rb +112 -0
  117. data/plugins/ruby_development/ui/project_widget.ui +108 -0
  118. data/plugins/ruby_runner/config_widget.rb +116 -0
  119. data/plugins/ruby_runner/plugin.yaml +26 -0
  120. data/plugins/ruby_runner/project_widget.rb +62 -0
  121. data/plugins/ruby_runner/ruby.png +0 -0
  122. data/plugins/ruby_runner/ruby_interpretersui.rc +26 -0
  123. data/plugins/ruby_runner/ruby_runner.rb +411 -0
  124. data/plugins/ruby_runner/ui/config_widget.rb +92 -0
  125. data/plugins/ruby_runner/ui/config_widget.ui +91 -0
  126. data/plugins/ruby_runner/ui/project_widget.rb +60 -0
  127. data/plugins/ruby_runner/ui/project_widget.ui +48 -0
  128. data/plugins/ruby_runner/ui/ruby_runnner_plugin_option_widget.rb +59 -0
  129. data/plugins/ruby_runner/ui/ruby_runnner_plugin_option_widget.ui +44 -0
  130. data/plugins/state/plugin.yaml +28 -0
  131. data/plugins/state/state.rb +520 -0
  132. data/plugins/state/ui/config_widget.rb +92 -0
  133. data/plugins/state/ui/config_widget.ui +89 -0
  134. data/plugins/syntax_checker/plugin.yaml +18 -0
  135. data/plugins/syntax_checker/syntax_checker.rb +662 -0
  136. data/ruber.desktop +10 -0
  137. data/spec/annotation_model_spec.rb +174 -0
  138. data/spec/common.rb +119 -0
  139. data/spec/component_manager_spec.rb +1259 -0
  140. data/spec/document_list_spec.rb +626 -0
  141. data/spec/document_project_spec.rb +373 -0
  142. data/spec/document_spec.rb +779 -0
  143. data/spec/editor_view_spec.rb +167 -0
  144. data/spec/external_program_plugin_spec.rb +676 -0
  145. data/spec/filtered_output_widget_spec.rb +642 -0
  146. data/spec/gui_states_handler_spec.rb +304 -0
  147. data/spec/kde_config_option_backend_spec.rb +214 -0
  148. data/spec/kde_sugar_spec.rb +101 -0
  149. data/spec/ktexteditor_wrapper_spec.rb +305 -0
  150. data/spec/output_widget_spec.rb +1703 -0
  151. data/spec/plugin_spec.rb +1393 -0
  152. data/spec/plugin_specification_reader_spec.rb +1765 -0
  153. data/spec/plugin_specification_spec.rb +401 -0
  154. data/spec/project_backend_spec.rb +172 -0
  155. data/spec/project_files_list_spec.rb +401 -0
  156. data/spec/project_list_spec.rb +511 -0
  157. data/spec/project_spec.rb +990 -0
  158. data/spec/qt_sugar_spec.rb +328 -0
  159. data/spec/settings_container_spec.rb +617 -0
  160. data/spec/settings_dialog_manager_spec.rb +773 -0
  161. data/spec/settings_dialog_spec.rb +419 -0
  162. data/spec/state_spec.rb +991 -0
  163. data/spec/utils_spec.rb +406 -0
  164. data/spec/workspace_spec.rb +869 -0
  165. data/spec/yaml_option_backend_spec.rb +246 -0
  166. metadata +284 -0
@@ -0,0 +1,90 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+ <svg
4
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
5
+ xmlns:cc="http://creativecommons.org/ns#"
6
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
7
+ xmlns:svg="http://www.w3.org/2000/svg"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ xmlns:xlink="http://www.w3.org/1999/xlink"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ width="16"
13
+ height="16"
14
+ id="svg2"
15
+ sodipodi:version="0.32"
16
+ inkscape:version="0.46"
17
+ version="1.0"
18
+ sodipodi:docname="rspec.svg"
19
+ inkscape:output_extension="org.inkscape.output.svg.inkscape">
20
+ <defs
21
+ id="defs4">
22
+ <inkscape:perspective
23
+ sodipodi:type="inkscape:persp3d"
24
+ inkscape:vp_x="0 : 526.18109 : 1"
25
+ inkscape:vp_y="0 : 1000 : 0"
26
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
27
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
28
+ id="perspective10" />
29
+ <inkscape:perspective
30
+ id="perspective2451"
31
+ inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
32
+ inkscape:vp_z="744.09448 : 526.18109 : 1"
33
+ inkscape:vp_y="0 : 1000 : 0"
34
+ inkscape:vp_x="0 : 526.18109 : 1"
35
+ sodipodi:type="inkscape:persp3d" />
36
+ </defs>
37
+ <sodipodi:namedview
38
+ id="base"
39
+ pagecolor="#ffffff"
40
+ bordercolor="#666666"
41
+ borderopacity="1.0"
42
+ inkscape:pageopacity="0.0"
43
+ inkscape:pageshadow="2"
44
+ inkscape:zoom="1"
45
+ inkscape:cx="8"
46
+ inkscape:cy="8"
47
+ inkscape:document-units="px"
48
+ inkscape:current-layer="layer1"
49
+ showgrid="false"
50
+ inkscape:window-width="1440"
51
+ inkscape:window-height="837"
52
+ inkscape:window-x="-5"
53
+ inkscape:window-y="-3" />
54
+ <metadata
55
+ id="metadata7">
56
+ <rdf:RDF>
57
+ <cc:Work
58
+ rdf:about="">
59
+ <dc:format>image/svg+xml</dc:format>
60
+ <dc:type
61
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
62
+ </cc:Work>
63
+ </rdf:RDF>
64
+ </metadata>
65
+ <g
66
+ inkscape:label="Livello 1"
67
+ inkscape:groupmode="layer"
68
+ id="layer1">
69
+ <image
70
+ y="-0.1523809"
71
+ x="0.53333372"
72
+ id="image2453"
73
+ height="16"
74
+ width="16"
75
+ sodipodi:absref="/home/stefano/documenti/miei_programmi/kruby/data/share/icons/kruby.png"
76
+ xlink:href="/home/stefano/documenti/miei_programmi/kruby/data/share/icons/kruby.png" />
77
+ <text
78
+ xml:space="preserve"
79
+ style="font-size:9.99999992999999954px;font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr;text-anchor:start;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Courier 10 Pitch;-inkscape-font-specification:Courier 10 Pitch Bold"
80
+ x="2.623167"
81
+ y="2.6442723"
82
+ id="text2383"
83
+ sodipodi:linespacing="125%"
84
+ transform="matrix(0.7240218,0.6897771,0.6897771,-0.7240218,0,0)"><tspan
85
+ sodipodi:role="line"
86
+ id="tspan2385"
87
+ x="2.623167"
88
+ y="2.6442723">BDD</tspan></text>
89
+ </g>
90
+ </svg>
@@ -0,0 +1,20 @@
1
+ <!DOCTYPE kpartgui SYSTEM 'kpartgui.dtd'>
2
+ <kpartgui version="1" name="ruber-rspec_plugin" >
3
+ <MenuBar>
4
+ <Menu noMerge="1" name="ruby" >
5
+ <text>&amp;Ruby</text>
6
+ <Separator/>
7
+ <Menu noMerge="1" name="rspec">
8
+ <text>&amp;Tests</text>
9
+ <Action name="rspec-go_to_spec"/>
10
+ <Action name="rspec-go_to_file"/>
11
+ <Separator/>
12
+ <Action name="rspec-run_all" />
13
+ <Action name="rspec-run_current"/>
14
+ <Action name="rspec-run_current_line"/>
15
+ <Separator/>
16
+ <Action name="rspec-stop"/>
17
+ </Menu>
18
+ </Menu>
19
+ </MenuBar>
20
+ </kpartgui>
@@ -0,0 +1,312 @@
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 'yaml'
22
+
23
+ module Ruber
24
+
25
+ module RSpec
26
+
27
+ begin
28
+ require 'spec/runner/formatter/base_text_formatter'
29
+ RSPEC_VERSION = 1
30
+ rescue LoadError
31
+ require 'rspec/core/formatters/base_text_formatter'
32
+ RSPEC_VERSION = 2
33
+ end
34
+
35
+ base = RSPEC_VERSION == 1 ? Spec::Runner::Formatter::BaseTextFormatter : ::RSpec::Core::Formatters::BaseTextFormatter
36
+
37
+ =begin rdoc
38
+ RSpec formatter used by the rspec plugin
39
+
40
+ It writes data as YAML-formatted hashes. The data relative to a single example,
41
+ as well as the preamble and the summary, are separated from each other with special
42
+ strings, stored in the {STARTING_DELIMITER} and {ENDING_DELIMITER} constants. This
43
+ is made to avoid problems in case buffering breaks a string containing one of these
44
+ strings in pieces.
45
+
46
+ Among keys specific to each of them, all the hashes contain the @:type@ key, which
47
+ tells which kind of information the hash contains.
48
+
49
+ @$$$$%%%%$$$$KRUBY_BEGIN@
50
+
51
+ and
52
+
53
+ @$$$$%%%%$$$$KRUBY_END@
54
+
55
+ The output is flushed after every writing
56
+
57
+ This is a base class used by both {Version1Formatter} and {Version2Formatter} which
58
+ defines all the methods which haven't changed in from RSpec 1 to RSpec 2. In particular,
59
+ it doesn't contain the @example_failed@ and @example_pending@ methods as their
60
+ signature has changed from one version to the ohter.
61
+ =end
62
+ class BaseFormatter < base
63
+
64
+ =begin rdoc
65
+ The starting delimiter used by the formatter
66
+ @todo (after first alpha) Change it to include the string @KRUBY@ with @RUBER@ inside it
67
+ =end
68
+ STARTING_DELIMITER = '####%%%%####KRUBY_BEGIN'
69
+
70
+ =begin rdoc
71
+ The ending delimiter used by the formatter
72
+ @todo (after first alpha) Change it to include the string @KRUBY@ with @RUBER@ inside it
73
+ =end
74
+ ENDING_DELIMITER = '####%%%%####KRUBY_END'
75
+
76
+ =begin rdoc
77
+ Method called by RSpec after the examples have been collected
78
+
79
+ It writes to the output a YAML dump of a hash with the following entries:
80
+ * @:type@: @:start@
81
+ * @:count@: the number of examples found by RSpec
82
+ @param [Integer] count the number of examples
83
+ @return [nil]
84
+ =end
85
+ def start count
86
+ super
87
+ hash = {:type => :start, :count => count}
88
+ write_data hash
89
+ end
90
+
91
+ =begin rdoc
92
+ Method called by RSpec after starting an example
93
+
94
+ It writes to the output a YAML dump of a hash with the following entries:
95
+ * @:type@: @:new_example@
96
+ * @:description@: the name of the example, made of the name of the example group
97
+ and the description of the example itself
98
+ @param [Spec::Example::ExampleProxy] ex the started example
99
+ @return [nil]
100
+ =end
101
+ def example_started ex
102
+ super
103
+ hash = {}
104
+ hash[:type] = :new_example
105
+ hash[:description] = "#{example_group.description} #{ex.description}"
106
+ write_data hash
107
+ end
108
+
109
+ =begin rdoc
110
+ Method called by RSpec after an example has been completed successfully
111
+
112
+ It writes to the output a YAML dump of a hash with the following entries:
113
+ * @:type@: @:success@
114
+ * @:description@: the name of the passed example, made of the name of the example group
115
+ and the description of the example itself
116
+ @param [Spec::Example::ExampleProxy] ex the started example
117
+ @return [nil]
118
+ =end
119
+ def example_passed ex
120
+ super
121
+ hash = {}
122
+ hash[:type] = :success
123
+ hash[:description] = "#{example_group.description} #{ex.description}"
124
+ write_data hash
125
+ end
126
+
127
+ =begin rdoc
128
+ Override of @Spec::Runner::Formatter::BaseTextFormatter#dump_failure@ which does nothing
129
+ @return [nil]
130
+ =end rdoc
131
+ def dump_failure counter, fail
132
+ end
133
+
134
+
135
+ =begin rdoc
136
+ Override of @Spec::Runner::Formatter::BaseTextFormatter#dump_pending@ which does nothing
137
+ @return [nil]
138
+ =end rdoc
139
+ def dump_pending
140
+ end
141
+
142
+ =begin rdoc
143
+ Method called by RSpec after running all the examples
144
+
145
+ It writes a summary containing the number of run, failed, passed an pending examples
146
+ to the output as a YAML dumnp of a hash. The hash has the following entries:
147
+ The hash contains the following entries (the keys are all symbols)
148
+ @:type@: @:summary@
149
+ @total@: the number of run examples
150
+ @failure@: the number of failed examples
151
+ @pending@: the number of pending examples
152
+ @passed@: the number of passed examples
153
+ @return [nil]
154
+ =end
155
+ def dump_summary time, total, failure, pending
156
+ hash = {
157
+ :type => :summary,
158
+ :total => total,
159
+ :failure => failure,
160
+ :pending => pending,
161
+ :passed => total - (failure + pending)
162
+ }
163
+ write_data hash
164
+ end
165
+
166
+ def dump_failures
167
+ end
168
+
169
+ private
170
+
171
+ =begin rdoc
172
+ Writes data to the output stream
173
+
174
+ The data is passed in hashes and is written as a YAML dump between a starting
175
+ and an end delimiter. The output stream is flueshed both before and after writing,
176
+ so that the data is written alone on the string
177
+
178
+ @param [Hash] data the data to write on the output stream
179
+ @return [nil]
180
+ =end
181
+ def write_data hash
182
+ # STDERR.puts hash.inspect
183
+ @output.flush
184
+ str = "#{STARTING_DELIMITER}\n#{YAML.dump(hash)}\n#{ENDING_DELIMITER}"
185
+ @output.puts str
186
+ # @output.puts STARTING_DELIMITER
187
+ # @output.puts YAML.dump(hash)
188
+ # @output.puts ENDING_DELIMITER
189
+ @output.flush
190
+ nil
191
+ end
192
+
193
+ end
194
+
195
+ class Version1Formatter < BaseFormatter
196
+
197
+ =begin rdoc
198
+ Method called by RSpec after an example has been completed and failed
199
+
200
+ It writes to the output a YAML dump of a hash with the following entries:
201
+ * @:type@: @:failure@
202
+ * @:description@: the name of the failed example, made of the name of the example group
203
+ and the description of the example itself
204
+ * @:exception@: the name of the exception class which caused the failure
205
+ * @:message@: the error message contained in the exception which caused the failure
206
+ * @:location@: a string with the location (file name and line number) where the
207
+ failure happened
208
+ * @:backtrace@: a string containing the entries of the exception's backtrace, joined
209
+ by newlines
210
+ @param [Spec::Example::ExampleProxy] ex the failed example
211
+ @param [Integer] counter the number of the failed example
212
+ @param [Spec::Runner::Reporter::Failure] failure the object describing the failure
213
+ @return [nil]
214
+ =end
215
+ def example_failed ex, counter, failure
216
+ hash = {}
217
+ hash[:type] = :failure
218
+ hash[:description] = "#{@example_group.description} #{ex.description}"
219
+ hash[:exception] = failure.exception.class.name
220
+ hash[:message] = failure.exception.message
221
+ hash[:location] = ex.location
222
+ hash[:backtrace] = failure.exception.backtrace.join "\n"
223
+ write_data hash
224
+ end
225
+
226
+ =begin rdoc
227
+ Method called by RSpec after a pending example has been executed
228
+
229
+ It writes to the output a YAML dump of a hash with the following entries:
230
+ * @:type@: @:pending@
231
+ * @:description@: the name of the pending example, made of the name of the example group
232
+ and the description of the example itself
233
+ * @:message@: the message produced by @pending@
234
+ * @:location@: a string with the location (file name and line number) of pending
235
+ example
236
+ @param [Spec::Example::ExampleProxy] ex the pending example
237
+ @param [String] msg the message associated with the pending example
238
+ @return [nil]
239
+ =end
240
+ def example_pending ex, msg
241
+ hash = {}
242
+ hash[:type] = :pending
243
+ hash[:description] = "#{@example_group.description} #{ex.description}"
244
+ hash[:message] = msg
245
+ hash[:location] = ex.location
246
+ write_data hash
247
+ end
248
+
249
+ end
250
+
251
+ class Version2Formatter < BaseFormatter
252
+ =begin rdoc
253
+ Method called by RSpec after an example has been completed and failed
254
+
255
+ It writes to the output a YAML dump of a hash with the following entries:
256
+ * @:type@: @:failure@
257
+ * @:description@: the name of the failed example, made of the name of the example group
258
+ and the description of the example itself
259
+ * @:exception@: the name of the exception class which caused the failure
260
+ * @:message@: the error message contained in the exception which caused the failure
261
+ * @:location@: a string with the location (file name and line number) where the
262
+ failure happened
263
+ * @:backtrace@: a string containing the entries of the exception's backtrace, joined
264
+ by newlines
265
+ @param [RSpec::Core::Example] ex the failed example
266
+ @return [nil]
267
+ @todo add an entry contaning the code which caused the error (obtained using the
268
+ @read_failed_line@ method defined in @RSpec::Core::Formatters::BaseFormatter@).
269
+ =end
270
+ def example_failed ex
271
+ super
272
+ hash = {}
273
+ hash[:type] = :failure
274
+ hash[:description] = ex.metadata[:full_description]
275
+ exception = ex.metadata[:execution_result][:exception_encountered]
276
+ hash[:exception] = exception.class.name
277
+ hash[:message] = exception.message
278
+ hash[:location] = ex.metadata[:location]
279
+ hash[:backtrace] = format_backtrace(exception.backtrace, ex).join "\n"
280
+ write_data hash
281
+ end
282
+
283
+ =begin rdoc
284
+ Method called by RSpec after a pending example has been executed
285
+
286
+ It writes to the output a YAML dump of a hash with the following entries:
287
+ * @:type@: @:pending@
288
+ * @:description@: the name of the pending example, made of the name of the example group
289
+ and the description of the example itself
290
+ * @:message@: the message produced by @pending@
291
+ * @:location@: a string with the location (file name and line number) of pending
292
+ example
293
+ @param [RSpec::Core::Example] ex the pending example
294
+ @return [nil]
295
+ =end
296
+ def example_pending ex
297
+ super
298
+ hash = {}
299
+ hash[:type] = :pending
300
+ hash[:description] = ex.metadata[:full_description]
301
+ hash[:message] = ex.metadata[:execution_result][:exception_encountered].message
302
+ hash[:location] = ex[:metadata][:location]
303
+ write_data hash
304
+ end
305
+
306
+ end
307
+
308
+ Formatter = RSPEC_VERSION == 1 ? Version1Formatter : Version2Formatter
309
+
310
+ end
311
+
312
+ end
@@ -0,0 +1,170 @@
1
+ =begin
2
+ ** Form generated from reading ui file 'rspec_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_RSpecProjectWidget
11
+ attr_reader :gridLayout_3
12
+ attr_reader :verticalSpacer
13
+ attr_reader :groupBox_2
14
+ attr_reader :gridLayout_2
15
+ attr_reader :label_5
16
+ attr_reader :_rspec__options
17
+ attr_reader :label_6
18
+ attr_reader :_rspec__executable
19
+ attr_reader :_rspec__full_backtraces
20
+ attr_reader :verticalSpacer_3
21
+ attr_reader :groupBox
22
+ attr_reader :gridLayout
23
+ attr_reader :label
24
+ attr_reader :_rspec__spec_directory
25
+ attr_reader :label_2
26
+ attr_reader :_rspec__spec_files
27
+ attr_reader :label_3
28
+ attr_reader :_rspec__spec_pattern
29
+ attr_reader :verticalSpacer_2
30
+ attr_reader :_rspec__ruby_options
31
+
32
+ def setupUi(rSpecProjectWidget)
33
+ if rSpecProjectWidget.objectName.nil?
34
+ rSpecProjectWidget.objectName = "rSpecProjectWidget"
35
+ end
36
+ rSpecProjectWidget.resize(447, 315)
37
+ @gridLayout_3 = Qt::GridLayout.new(rSpecProjectWidget)
38
+ @gridLayout_3.objectName = "gridLayout_3"
39
+ @verticalSpacer = Qt::SpacerItem.new(20, 10, Qt::SizePolicy::Minimum, Qt::SizePolicy::Expanding)
40
+
41
+ @gridLayout_3.addItem(@verticalSpacer, 0, 0, 1, 1)
42
+
43
+ @groupBox_2 = Qt::GroupBox.new(rSpecProjectWidget)
44
+ @groupBox_2.objectName = "groupBox_2"
45
+ @gridLayout_2 = Qt::GridLayout.new(@groupBox_2)
46
+ @gridLayout_2.objectName = "gridLayout_2"
47
+ @label_5 = Qt::Label.new(@groupBox_2)
48
+ @label_5.objectName = "label_5"
49
+
50
+ @gridLayout_2.addWidget(@label_5, 1, 0, 1, 1)
51
+
52
+ @_rspec__options = KDE::LineEdit.new(@groupBox_2)
53
+ @_rspec__options.objectName = "_rspec__options"
54
+
55
+ @gridLayout_2.addWidget(@_rspec__options, 1, 2, 1, 1)
56
+
57
+ @label_6 = Qt::Label.new(@groupBox_2)
58
+ @label_6.objectName = "label_6"
59
+
60
+ @gridLayout_2.addWidget(@label_6, 0, 0, 1, 1)
61
+
62
+ @_rspec__executable = KDE::LineEdit.new(@groupBox_2)
63
+ @_rspec__executable.objectName = "_rspec__executable"
64
+
65
+ @gridLayout_2.addWidget(@_rspec__executable, 0, 2, 1, 1)
66
+
67
+ @_rspec__full_backtraces = Qt::CheckBox.new(@groupBox_2)
68
+ @_rspec__full_backtraces.objectName = "_rspec__full_backtraces"
69
+
70
+ @gridLayout_2.addWidget(@_rspec__full_backtraces, 2, 0, 1, 1)
71
+
72
+
73
+ @gridLayout_3.addWidget(@groupBox_2, 2, 0, 1, 2)
74
+
75
+ @verticalSpacer_3 = Qt::SpacerItem.new(20, 0, Qt::SizePolicy::Minimum, Qt::SizePolicy::Expanding)
76
+
77
+ @gridLayout_3.addItem(@verticalSpacer_3, 3, 1, 1, 1)
78
+
79
+ @groupBox = Qt::GroupBox.new(rSpecProjectWidget)
80
+ @groupBox.objectName = "groupBox"
81
+ @gridLayout = Qt::GridLayout.new(@groupBox)
82
+ @gridLayout.objectName = "gridLayout"
83
+ @label = Qt::Label.new(@groupBox)
84
+ @label.objectName = "label"
85
+
86
+ @gridLayout.addWidget(@label, 0, 0, 1, 1)
87
+
88
+ @_rspec__spec_directory = KDE::UrlRequester.new(@groupBox)
89
+ @_rspec__spec_directory.objectName = "_rspec__spec_directory"
90
+
91
+ @gridLayout.addWidget(@_rspec__spec_directory, 0, 1, 1, 1)
92
+
93
+ @label_2 = Qt::Label.new(@groupBox)
94
+ @label_2.objectName = "label_2"
95
+
96
+ @gridLayout.addWidget(@label_2, 1, 0, 1, 1)
97
+
98
+ @_rspec__spec_files = KDE::LineEdit.new(@groupBox)
99
+ @_rspec__spec_files.objectName = "_rspec__spec_files"
100
+
101
+ @gridLayout.addWidget(@_rspec__spec_files, 1, 1, 1, 1)
102
+
103
+ @label_3 = Qt::Label.new(@groupBox)
104
+ @label_3.objectName = "label_3"
105
+
106
+ @gridLayout.addWidget(@label_3, 2, 0, 1, 1)
107
+
108
+ @_rspec__spec_pattern = KDE::LineEdit.new(@groupBox)
109
+ @_rspec__spec_pattern.objectName = "_rspec__spec_pattern"
110
+
111
+ @gridLayout.addWidget(@_rspec__spec_pattern, 2, 1, 1, 1)
112
+
113
+
114
+ @gridLayout_3.addWidget(@groupBox, 4, 0, 1, 2)
115
+
116
+ @verticalSpacer_2 = Qt::SpacerItem.new(20, 0, Qt::SizePolicy::Minimum, Qt::SizePolicy::Expanding)
117
+
118
+ @gridLayout_3.addItem(@verticalSpacer_2, 5, 0, 1, 2)
119
+
120
+ @_rspec__ruby_options = RubyOptionsWidget.new(rSpecProjectWidget)
121
+ @_rspec__ruby_options.objectName = "_rspec__ruby_options"
122
+
123
+ @gridLayout_3.addWidget(@_rspec__ruby_options, 1, 0, 1, 1)
124
+
125
+ @label_5.buddy = @_rspec__options
126
+ @label_6.buddy = @_rspec__executable
127
+ @label.buddy = @_rspec__spec_directory
128
+ @label_2.buddy = @_rspec__spec_files
129
+ @label_3.buddy = @_rspec__spec_pattern
130
+ Qt::Widget.setTabOrder(@_rspec__executable, @_rspec__options)
131
+ Qt::Widget.setTabOrder(@_rspec__options, @_rspec__spec_directory)
132
+ Qt::Widget.setTabOrder(@_rspec__spec_directory, @_rspec__spec_files)
133
+ Qt::Widget.setTabOrder(@_rspec__spec_files, @_rspec__spec_pattern)
134
+
135
+ retranslateUi(rSpecProjectWidget)
136
+
137
+ Qt::MetaObject.connectSlotsByName(rSpecProjectWidget)
138
+ end # setupUi
139
+
140
+ def setup_ui(rSpecProjectWidget)
141
+ setupUi(rSpecProjectWidget)
142
+ end
143
+
144
+ def retranslateUi(rSpecProjectWidget)
145
+ rSpecProjectWidget.windowTitle = Qt::Application.translate("RSpecProjectWidget", "Form", nil, Qt::Application::UnicodeUTF8)
146
+ @groupBox_2.title = Qt::Application.translate("RSpecProjectWidget", "RSpec", nil, Qt::Application::UnicodeUTF8)
147
+ @label_5.text = Qt::Application.translate("RSpecProjectWidget", "&RSpec options", nil, Qt::Application::UnicodeUTF8)
148
+ @_rspec__options.setProperty("access", Qt::Variant.new(Qt::Application.translate("RSpecProjectWidget", "$spec_options", nil, Qt::Application::UnicodeUTF8)))
149
+ @label_6.text = Qt::Application.translate("RSpecProjectWidget", "&RSpec executable", nil, Qt::Application::UnicodeUTF8)
150
+ @_rspec__full_backtraces.text = Qt::Application.translate("RSpecProjectWidget", "&Generate full backtraces", nil, Qt::Application::UnicodeUTF8)
151
+ @groupBox.title = Qt::Application.translate("RSpecProjectWidget", "Spec files", nil, Qt::Application::UnicodeUTF8)
152
+ @label.text = Qt::Application.translate("RSpecProjectWidget", "Spec &directory", nil, Qt::Application::UnicodeUTF8)
153
+ @label_2.text = Qt::Application.translate("RSpecProjectWidget", "&Filter", nil, Qt::Application::UnicodeUTF8)
154
+ @_rspec__spec_files.text = Qt::Application.translate("RSpecProjectWidget", "*_spec.rb", nil, Qt::Application::UnicodeUTF8)
155
+ @label_3.text = Qt::Application.translate("RSpecProjectWidget", "&Pattern", nil, Qt::Application::UnicodeUTF8)
156
+ @_rspec__spec_pattern.text = Qt::Application.translate("RSpecProjectWidget", "%f_spec.rb", nil, Qt::Application::UnicodeUTF8)
157
+ @_rspec__spec_pattern.setProperty("access", Qt::Variant.new(Qt::Application.translate("RSpecProjectWidget", "$pattern", nil, Qt::Application::UnicodeUTF8)))
158
+ end # retranslateUi
159
+
160
+ def retranslate_ui(rSpecProjectWidget)
161
+ retranslateUi(rSpecProjectWidget)
162
+ end
163
+
164
+ end
165
+
166
+ module Ui
167
+ class RSpecProjectWidget < Ui_RSpecProjectWidget
168
+ end
169
+ end # module Ui
170
+