rroonga 0.9.4-x86-mingw32 → 0.9.5-x86-mingw32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (153) hide show
  1. data/NEWS.ja.rdoc +29 -0
  2. data/NEWS.rdoc +29 -0
  3. data/Rakefile +6 -6
  4. data/ext/groonga/rb-grn-array.c +1 -1
  5. data/ext/groonga/rb-grn-context.c +15 -28
  6. data/ext/groonga/rb-grn-exception.c +46 -1
  7. data/ext/groonga/rb-grn-expression.c +22 -13
  8. data/ext/groonga/rb-grn-fix-size-column.c +2 -8
  9. data/ext/groonga/rb-grn-hash.c +8 -1
  10. data/ext/groonga/rb-grn-object.c +1 -1
  11. data/ext/groonga/rb-grn-patricia-trie.c +23 -1
  12. data/ext/groonga/rb-grn-table-key-support.c +22 -0
  13. data/ext/groonga/rb-grn-table.c +37 -5
  14. data/ext/groonga/rb-grn-utils.c +20 -2
  15. data/ext/groonga/rb-grn.h +1 -1
  16. data/ext/groonga/rb-groonga.c +76 -38
  17. data/extconf.rb +17 -1
  18. data/html/developer.html +32 -7
  19. data/html/footer.html.erb +5 -0
  20. data/html/heading-mark.svg +393 -0
  21. data/html/index.html +33 -3
  22. data/lib/1.8/groonga.so +0 -0
  23. data/lib/1.9/groonga.so +0 -0
  24. data/lib/groonga.rb +3 -7
  25. data/lib/groonga/context.rb +2 -13
  26. data/lib/groonga/expression-builder.rb +273 -67
  27. data/lib/groonga/pagination.rb +143 -0
  28. data/lib/groonga/record.rb +2 -0
  29. data/lib/groonga/schema.rb +140 -29
  30. data/pkg/rroonga-0.9.5/NEWS.ja.rdoc +156 -0
  31. data/pkg/rroonga-0.9.5/NEWS.rdoc +158 -0
  32. data/pkg/rroonga-0.9.5/README.ja.rdoc +65 -0
  33. data/pkg/rroonga-0.9.5/README.rdoc +66 -0
  34. data/pkg/rroonga-0.9.5/text/TUTORIAL.ja.rdoc +394 -0
  35. data/pkg/rroonga-0.9.5/text/expression.rdoc +285 -0
  36. data/rroonga-build.rb +2 -2
  37. data/test-unit/Rakefile +40 -0
  38. data/test-unit/TODO +5 -0
  39. data/test-unit/bin/testrb +5 -0
  40. data/test-unit/html/classic.html +15 -0
  41. data/test-unit/html/index.html +25 -0
  42. data/test-unit/html/index.html.ja +27 -0
  43. data/test-unit/lib/test/unit.rb +323 -0
  44. data/test-unit/lib/test/unit/assertionfailederror.rb +25 -0
  45. data/test-unit/lib/test/unit/assertions.rb +1230 -0
  46. data/test-unit/lib/test/unit/attribute.rb +125 -0
  47. data/test-unit/lib/test/unit/autorunner.rb +360 -0
  48. data/test-unit/lib/test/unit/collector.rb +36 -0
  49. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  50. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  51. data/test-unit/lib/test/unit/collector/load.rb +144 -0
  52. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  53. data/test-unit/lib/test/unit/color-scheme.rb +102 -0
  54. data/test-unit/lib/test/unit/color.rb +96 -0
  55. data/test-unit/lib/test/unit/diff.rb +724 -0
  56. data/test-unit/lib/test/unit/error.rb +130 -0
  57. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  58. data/test-unit/lib/test/unit/failure.rb +136 -0
  59. data/test-unit/lib/test/unit/fixture.rb +176 -0
  60. data/test-unit/lib/test/unit/notification.rb +129 -0
  61. data/test-unit/lib/test/unit/omission.rb +191 -0
  62. data/test-unit/lib/test/unit/pending.rb +150 -0
  63. data/test-unit/lib/test/unit/priority.rb +180 -0
  64. data/test-unit/lib/test/unit/runner/console.rb +52 -0
  65. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  66. data/test-unit/lib/test/unit/runner/tap.rb +8 -0
  67. data/test-unit/lib/test/unit/testcase.rb +476 -0
  68. data/test-unit/lib/test/unit/testresult.rb +89 -0
  69. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  70. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  71. data/test-unit/lib/test/unit/ui/console/testrunner.rb +466 -0
  72. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +63 -0
  73. data/test-unit/lib/test/unit/ui/tap/testrunner.rb +92 -0
  74. data/test-unit/lib/test/unit/ui/testrunner.rb +28 -0
  75. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  76. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  77. data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
  78. data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
  79. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  80. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  81. data/test-unit/lib/test/unit/version.rb +7 -0
  82. data/test-unit/sample/adder.rb +13 -0
  83. data/test-unit/sample/subtracter.rb +12 -0
  84. data/test-unit/sample/test_adder.rb +20 -0
  85. data/test-unit/sample/test_subtracter.rb +20 -0
  86. data/test-unit/sample/test_user.rb +23 -0
  87. data/test-unit/test/collector/test-descendant.rb +133 -0
  88. data/test-unit/test/collector/test-load.rb +442 -0
  89. data/test-unit/test/collector/test_dir.rb +406 -0
  90. data/test-unit/test/collector/test_objectspace.rb +100 -0
  91. data/test-unit/test/run-test.rb +15 -0
  92. data/test-unit/test/test-attribute.rb +86 -0
  93. data/test-unit/test/test-color-scheme.rb +67 -0
  94. data/test-unit/test/test-color.rb +47 -0
  95. data/test-unit/test/test-diff.rb +518 -0
  96. data/test-unit/test/test-emacs-runner.rb +60 -0
  97. data/test-unit/test/test-fixture.rb +287 -0
  98. data/test-unit/test/test-notification.rb +33 -0
  99. data/test-unit/test/test-omission.rb +81 -0
  100. data/test-unit/test/test-pending.rb +70 -0
  101. data/test-unit/test/test-priority.rb +119 -0
  102. data/test-unit/test/test-testcase.rb +544 -0
  103. data/test-unit/test/test_assertions.rb +1151 -0
  104. data/test-unit/test/test_error.rb +26 -0
  105. data/test-unit/test/test_failure.rb +33 -0
  106. data/test-unit/test/test_testresult.rb +113 -0
  107. data/test-unit/test/test_testsuite.rb +129 -0
  108. data/test-unit/test/testunit-test-util.rb +14 -0
  109. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  110. data/test-unit/test/util/test-method-owner-finder.rb +38 -0
  111. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  112. data/test-unit/test/util/test_observable.rb +102 -0
  113. data/test-unit/test/util/test_procwrapper.rb +36 -0
  114. data/test/groonga-test-utils.rb +3 -2
  115. data/test/run-test.rb +14 -2
  116. data/test/test-column.rb +7 -7
  117. data/test/test-context-select.rb +34 -11
  118. data/test/test-exception.rb +3 -0
  119. data/test/test-expression-builder.rb +11 -0
  120. data/test/test-expression.rb +3 -6
  121. data/test/test-gqtp.rb +3 -5
  122. data/test/test-pagination.rb +249 -0
  123. data/test/test-record.rb +36 -8
  124. data/test/test-remote.rb +11 -4
  125. data/test/test-schema-create-table.rb +251 -0
  126. data/test/test-schema.rb +4 -24
  127. data/test/test-table-offset-and-limit.rb +3 -5
  128. data/test/test-table-select-mecab.rb +80 -0
  129. data/test/test-table-select-weight.rb +104 -0
  130. data/test/test-table.rb +22 -4
  131. data/test/test-version.rb +1 -1
  132. data/text/TUTORIAL.ja.rdoc +2 -0
  133. data/text/expression.rdoc +1 -0
  134. data/vendor/local/bin/grntest.exe +0 -0
  135. data/vendor/local/bin/groonga.exe +0 -0
  136. data/vendor/local/bin/libgroonga-0.dll +0 -0
  137. data/vendor/local/include/{groonga.h → groonga/groonga.h} +93 -32
  138. data/vendor/local/lib/groonga/modules/functions/cast.dll +0 -0
  139. data/vendor/local/lib/groonga/modules/functions/cast.la +41 -0
  140. data/vendor/local/lib/pkgconfig/groonga.pc +12 -0
  141. data/vendor/local/share/groonga/admin_html/css/admin.css +104 -0
  142. data/vendor/local/share/groonga/admin_html/css/ui-lightness/jquery-ui-1.8.1.custom.css +486 -0
  143. data/vendor/local/share/groonga/admin_html/index.html +1355 -0
  144. data/vendor/local/share/groonga/admin_html/js/jquery-1.4.2.min.js +154 -0
  145. data/vendor/local/share/groonga/admin_html/js/jquery-ui-1.8.1.custom.min.js +756 -0
  146. data/vendor/local/share/groonga/munin/plugins/groonga_cpu_load +47 -0
  147. data/vendor/local/share/groonga/munin/plugins/groonga_cpu_time +57 -0
  148. data/vendor/local/share/groonga/munin/plugins/groonga_disk +162 -0
  149. data/vendor/local/share/groonga/munin/plugins/groonga_memory +51 -0
  150. data/vendor/local/share/groonga/munin/plugins/groonga_n_records +110 -0
  151. data/vendor/local/share/groonga/munin/plugins/groonga_query_performance +133 -0
  152. data/vendor/local/share/groonga/munin/plugins/groonga_status +84 -0
  153. metadata +126 -36
@@ -0,0 +1,130 @@
1
+ #--
2
+ #
3
+ # Author:: Nathaniel Talbott.
4
+ # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
5
+ # License:: Ruby license.
6
+
7
+ require 'test/unit/util/backtracefilter'
8
+
9
+ module Test
10
+ module Unit
11
+
12
+ # Encapsulates an error in a test. Created by
13
+ # Test::Unit::TestCase when it rescues an exception thrown
14
+ # during the processing of a test.
15
+ class Error
16
+ include Util::BacktraceFilter
17
+
18
+ attr_reader(:test_name, :exception)
19
+
20
+ SINGLE_CHARACTER = 'E'
21
+ LABEL = "Error"
22
+
23
+ # Creates a new Error with the given test_name and
24
+ # exception.
25
+ def initialize(test_name, exception)
26
+ @test_name = test_name
27
+ @exception = exception
28
+ end
29
+
30
+ # Returns a single character representation of an error.
31
+ def single_character_display
32
+ SINGLE_CHARACTER
33
+ end
34
+
35
+ def label
36
+ LABEL
37
+ end
38
+
39
+ # Returns the message associated with the error.
40
+ def message
41
+ "#{@exception.class.name}: #{@exception.message}"
42
+ end
43
+
44
+ # Returns a brief version of the error description.
45
+ def short_display
46
+ "#@test_name: #{message.split("\n")[0]}"
47
+ end
48
+
49
+ # Returns a verbose version of the error description.
50
+ def long_display
51
+ backtrace_display = backtrace.join("\n ")
52
+ "#{label}:\n#@test_name:\n#{message}\n #{backtrace_display}"
53
+ end
54
+
55
+ def backtrace
56
+ filter_backtrace(@exception.backtrace)
57
+ end
58
+
59
+ # Overridden to return long_display.
60
+ def to_s
61
+ long_display
62
+ end
63
+
64
+ def critical?
65
+ true
66
+ end
67
+ end
68
+
69
+ module ErrorHandler
70
+ class << self
71
+ def included(base)
72
+ base.exception_handler(:handle_all_exception)
73
+ end
74
+ end
75
+
76
+ NOT_PASS_THROUGH_EXCEPTIONS = []
77
+ PASS_THROUGH_EXCEPTIONS = [NoMemoryError, SignalException, Interrupt,
78
+ SystemExit]
79
+ private
80
+ def handle_all_exception(exception)
81
+ case exception
82
+ when *NOT_PASS_THROUGH_EXCEPTIONS
83
+ when *PASS_THROUGH_EXCEPTIONS
84
+ return false
85
+ end
86
+
87
+ problem_occurred
88
+ add_error(exception)
89
+ true
90
+ end
91
+
92
+ def add_error(exception)
93
+ current_result.add_error(Error.new(name, exception))
94
+ end
95
+ end
96
+
97
+ module TestResultErrorSupport
98
+ attr_reader :errors
99
+
100
+ # Records a Test::Unit::Error.
101
+ def add_error(error)
102
+ @errors << error
103
+ notify_fault(error)
104
+ notify_changed
105
+ end
106
+
107
+ # Returns the number of errors this TestResult has
108
+ # recorded.
109
+ def error_count
110
+ @errors.size
111
+ end
112
+
113
+ def error_occurred?
114
+ not @errors.empty?
115
+ end
116
+
117
+ private
118
+ def initialize_containers
119
+ super
120
+ @errors = []
121
+ @summary_generators << :error_summary
122
+ @problem_checkers << :error_occurred?
123
+ end
124
+
125
+ def error_summary
126
+ "#{error_count} errors"
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,39 @@
1
+ module Test
2
+ module Unit
3
+ module ExceptionHandler
4
+ @@exception_handlers = []
5
+ class << self
6
+ def exception_handlers
7
+ @@exception_handlers
8
+ end
9
+
10
+ def included(base)
11
+ base.extend(ClassMethods)
12
+
13
+ observer = Proc.new do |test_case, _, _, value, method_name|
14
+ if value
15
+ @@exception_handlers.unshift(method_name)
16
+ else
17
+ @@exception_handlers -= [method_name]
18
+ end
19
+ end
20
+ base.register_attribute_observer(:exception_handler, &observer)
21
+ end
22
+ end
23
+
24
+ module ClassMethods
25
+ def exception_handlers
26
+ ExceptionHandler.exception_handlers
27
+ end
28
+
29
+ def exception_handler(*method_names)
30
+ attribute(:exception_handler, true, *method_names)
31
+ end
32
+
33
+ def unregister_exception_handler(*method_names)
34
+ attribute(:exception_handler, false, *method_names)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,136 @@
1
+ #--
2
+ #
3
+ # Author:: Nathaniel Talbott.
4
+ # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
5
+ # License:: Ruby license.
6
+
7
+ module Test
8
+ module Unit
9
+
10
+ # Encapsulates a test failure. Created by Test::Unit::TestCase
11
+ # when an assertion fails.
12
+ class Failure
13
+ attr_reader :test_name, :location, :message
14
+ attr_reader :expected, :actual, :user_message
15
+ attr_reader :inspected_expected, :inspected_actual
16
+
17
+ SINGLE_CHARACTER = 'F'
18
+ LABEL = "Failure"
19
+
20
+ # Creates a new Failure with the given location and
21
+ # message.
22
+ def initialize(test_name, location, message, options={})
23
+ @test_name = test_name
24
+ @location = location
25
+ @message = message
26
+ @expected = options[:expected]
27
+ @actual = options[:actual]
28
+ @inspected_expected = options[:inspected_expected]
29
+ @inspected_actual = options[:inspected_actual]
30
+ @user_message = options[:user_message]
31
+ end
32
+
33
+ # Returns a single character representation of a failure.
34
+ def single_character_display
35
+ SINGLE_CHARACTER
36
+ end
37
+
38
+ def label
39
+ LABEL
40
+ end
41
+
42
+ # Returns a brief version of the error description.
43
+ def short_display
44
+ "#@test_name: #{@message.split("\n")[0]}"
45
+ end
46
+
47
+ # Returns a verbose version of the error description.
48
+ def long_display
49
+ if location.size == 1
50
+ location_display = location[0].sub(/\A(.+:\d+).*/, ' [\\1]')
51
+ else
52
+ location_display = "\n [#{location.join("\n ")}]"
53
+ end
54
+ "#{label}:\n#@test_name#{location_display}:\n#@message"
55
+ end
56
+
57
+ # Overridden to return long_display.
58
+ def to_s
59
+ long_display
60
+ end
61
+
62
+ def critical?
63
+ true
64
+ end
65
+
66
+ def diff
67
+ @diff ||= compute_diff
68
+ end
69
+
70
+ private
71
+ def compute_diff
72
+ Assertions::AssertionMessage.delayed_diff(@expected, @actual).inspect
73
+ end
74
+ end
75
+
76
+ module FailureHandler
77
+ class << self
78
+ def included(base)
79
+ base.exception_handler(:handle_assertion_failed_error)
80
+ end
81
+ end
82
+
83
+ private
84
+ def handle_assertion_failed_error(exception)
85
+ return false unless exception.is_a?(AssertionFailedError)
86
+ problem_occurred
87
+ add_failure(exception.message, exception.backtrace,
88
+ :expected => exception.expected,
89
+ :actual => exception.actual,
90
+ :inspected_expected => exception.inspected_expected,
91
+ :inspected_actual => exception.inspected_actual,
92
+ :user_message => exception.user_message)
93
+ true
94
+ end
95
+
96
+ def add_failure(message, backtrace, options={})
97
+ failure = Failure.new(name, filter_backtrace(backtrace), message,
98
+ options)
99
+ current_result.add_failure(failure)
100
+ end
101
+ end
102
+
103
+ module TestResultFailureSupport
104
+ attr_reader :failures
105
+
106
+ # Records a Test::Unit::Failure.
107
+ def add_failure(failure)
108
+ @failures << failure
109
+ notify_fault(failure)
110
+ notify_changed
111
+ end
112
+
113
+ # Returns the number of failures this TestResult has
114
+ # recorded.
115
+ def failure_count
116
+ @failures.size
117
+ end
118
+
119
+ def failure_occurred?
120
+ not @failures.empty?
121
+ end
122
+
123
+ private
124
+ def initialize_containers
125
+ super
126
+ @failures = []
127
+ @summary_generators << :failure_summary
128
+ @problem_checkers << :failure_occurred?
129
+ end
130
+
131
+ def failure_summary
132
+ "#{failure_count} failures"
133
+ end
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,176 @@
1
+ module Test
2
+ module Unit
3
+ module Fixture
4
+ class << self
5
+ def included(base)
6
+ base.extend(ClassMethods)
7
+
8
+ [:setup, :teardown].each do |fixture|
9
+ observer = Proc.new do |test_case, _, _, value, method_name|
10
+ if value.nil?
11
+ test_case.send("unregister_#{fixture}_method", method_name)
12
+ else
13
+ test_case.send("register_#{fixture}_method", method_name,
14
+ value)
15
+ end
16
+ end
17
+ base.register_attribute_observer(fixture, &observer)
18
+ end
19
+ end
20
+ end
21
+
22
+ module ClassMethods
23
+ def setup(*method_names)
24
+ register_fixture(:setup, *method_names)
25
+ end
26
+
27
+ def unregister_setup(*method_names)
28
+ unregister_fixture(:setup, *method_names)
29
+ end
30
+
31
+ def teardown(*method_names)
32
+ register_fixture(:teardown, *method_names)
33
+ end
34
+
35
+ def unregister_teardown(*method_names)
36
+ unregister_fixture(:teardown, *method_names)
37
+ end
38
+
39
+ def register_setup_method(method_name, options)
40
+ register_fixture_method(:setup, method_name, options, :after, :append)
41
+ end
42
+
43
+ def unregister_setup_method(method_name)
44
+ unregister_fixture_method(:setup, method_name)
45
+ end
46
+
47
+ def register_teardown_method(method_name, options)
48
+ register_fixture_method(:teardown, method_name, options,
49
+ :before, :prepend)
50
+ end
51
+
52
+ def unregister_teardown_method(method_name)
53
+ unregister_fixture_method(:teardown, method_name)
54
+ end
55
+
56
+ def before_setup_methods
57
+ collect_fixture_methods(:setup, :before)
58
+ end
59
+
60
+ def after_setup_methods
61
+ collect_fixture_methods(:setup, :after)
62
+ end
63
+
64
+ def before_teardown_methods
65
+ collect_fixture_methods(:teardown, :before)
66
+ end
67
+
68
+ def after_teardown_methods
69
+ collect_fixture_methods(:teardown, :after)
70
+ end
71
+
72
+ private
73
+ def register_fixture(fixture, *method_names)
74
+ options = {}
75
+ options = method_names.pop if method_names.last.is_a?(Hash)
76
+ attribute(fixture, options, *method_names)
77
+ end
78
+
79
+ def unregister_fixture(fixture, *method_names)
80
+ attribute(fixture, nil, *method_names)
81
+ end
82
+
83
+ def valid_register_fixture_options?(options)
84
+ return true if options.empty?
85
+ return false if options.size > 1
86
+
87
+ key = options.keys.first
88
+ [:before, :after].include?(key) and
89
+ [:prepend, :append].include?(options[key])
90
+ end
91
+
92
+ def add_fixture_method_name(how, variable_name, method_name)
93
+ methods = instance_eval("#{variable_name} ||= []")
94
+
95
+ if how == :prepend
96
+ methods = [method_name] | methods
97
+ else
98
+ methods = methods | [method_name]
99
+ end
100
+ instance_variable_set(variable_name, methods)
101
+ end
102
+
103
+ def registered_methods_variable_name(fixture, order)
104
+ "@#{order}_#{fixture}_methods"
105
+ end
106
+
107
+ def unregistered_methods_variable_name(fixture)
108
+ "@unregistered_#{fixture}_methods"
109
+ end
110
+
111
+ def register_fixture_method(fixture, method_name, options,
112
+ default_order, default_how)
113
+ unless valid_register_fixture_options?(options)
114
+ message = "must be {:before => :prepend}, " +
115
+ "{:before => :append}, {:after => :prepend} or " +
116
+ "{:after => :append}: #{options.inspect}"
117
+ raise ArgumentError, message
118
+ end
119
+
120
+ if options.empty?
121
+ order, how = default_order, default_how
122
+ else
123
+ order, how = options.to_a.first
124
+ end
125
+ variable_name = registered_methods_variable_name(fixture, order)
126
+ add_fixture_method_name(how, variable_name, method_name)
127
+ end
128
+
129
+ def unregister_fixture_method(fixture, method_name)
130
+ variable_name = unregistered_methods_variable_name(fixture)
131
+ add_fixture_method_name(:append, variable_name, method_name)
132
+ end
133
+
134
+ def collect_fixture_methods(fixture, order)
135
+ methods_variable = registered_methods_variable_name(fixture, order)
136
+ unregistered_methods_variable =
137
+ unregistered_methods_variable_name(fixture)
138
+
139
+ base_index = ancestors.index(Fixture)
140
+ interested_ancestors = ancestors[0, base_index].reverse
141
+ interested_ancestors.inject([]) do |result, ancestor|
142
+ if ancestor.is_a?(Class)
143
+ ancestor.class_eval do
144
+ methods = instance_eval("#{methods_variable} ||= []")
145
+ unregistered_methods =
146
+ instance_eval("#{unregistered_methods_variable} ||= []")
147
+ (result | methods) - unregistered_methods
148
+ end
149
+ else
150
+ result
151
+ end
152
+ end
153
+ end
154
+ end
155
+
156
+ private
157
+ def run_fixture(fixture)
158
+ [
159
+ self.class.send("before_#{fixture}_methods"),
160
+ fixture,
161
+ self.class.send("after_#{fixture}_methods")
162
+ ].flatten.each do |method_name|
163
+ send(method_name) if respond_to?(method_name, true)
164
+ end
165
+ end
166
+
167
+ def run_setup
168
+ run_fixture(:setup)
169
+ end
170
+
171
+ def run_teardown
172
+ run_fixture(:teardown)
173
+ end
174
+ end
175
+ end
176
+ end