rspec 0.8.2 → 0.9.0
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.
- data/CHANGES +125 -9
- data/EXAMPLES.rd +50 -27
- data/README +14 -1
- data/Rakefile +95 -42
- data/UPGRADE +31 -0
- data/bin/spec +0 -1
- data/bin/spec_translator +6 -0
- data/examples/auto_spec_description_example.rb +19 -0
- data/examples/{setup_teardown_example.rb → before_and_after_example.rb} +6 -6
- data/examples/behave_as_example.rb +45 -0
- data/examples/custom_expectation_matchers.rb +13 -12
- data/examples/dynamic_spec.rb +2 -2
- data/examples/file_accessor_spec.rb +2 -2
- data/examples/greeter_spec.rb +3 -3
- data/examples/helper_method_example.rb +2 -2
- data/examples/io_processor_spec.rb +4 -4
- data/examples/legacy_spec.rb +10 -0
- data/examples/mocking_example.rb +5 -5
- data/examples/multi_threaded_behaviour_runner.rb +25 -0
- data/examples/partial_mock_example.rb +4 -4
- data/examples/predicate_example.rb +4 -4
- data/examples/priority.txt +1 -0
- data/examples/shared_behaviours_example.rb +31 -0
- data/examples/stack_spec.rb +52 -69
- data/examples/stubbing_example.rb +10 -10
- data/examples/test_case_adapter_example.rb +26 -0
- data/examples/test_case_spec.rb +6 -6
- data/lib/spec.rb +9 -4
- data/lib/spec/dsl.rb +10 -0
- data/lib/spec/dsl/behaviour.rb +189 -0
- data/lib/spec/dsl/behaviour_callbacks.rb +43 -0
- data/lib/spec/dsl/behaviour_eval.rb +170 -0
- data/lib/spec/dsl/behaviour_factory.rb +32 -0
- data/lib/spec/dsl/composite_proc_builder.rb +28 -0
- data/lib/spec/dsl/configuration.rb +38 -0
- data/lib/spec/dsl/description.rb +34 -0
- data/lib/spec/dsl/example.rb +114 -0
- data/lib/spec/dsl/example_matcher.rb +28 -0
- data/lib/spec/{runner/spec_should_raise_handler.rb → dsl/example_should_raise_handler.rb} +4 -4
- data/lib/spec/expectations.rb +0 -3
- data/lib/spec/expectations/differs/default.rb +0 -1
- data/lib/spec/expectations/extensions.rb +0 -1
- data/lib/spec/expectations/extensions/object.rb +10 -53
- data/lib/spec/expectations/handler.rb +14 -18
- data/lib/spec/extensions.rb +1 -0
- data/lib/spec/extensions/object.rb +6 -0
- data/lib/spec/matchers.rb +19 -21
- data/lib/spec/matchers/be.rb +40 -11
- data/lib/spec/matchers/be_close.rb +2 -2
- data/lib/spec/matchers/operator_matcher.rb +52 -0
- data/lib/spec/matchers/respond_to.rb +21 -11
- data/lib/spec/mocks.rb +5 -28
- data/lib/spec/mocks/argument_constraint_matchers.rb +12 -0
- data/lib/spec/mocks/argument_expectation.rb +7 -4
- data/lib/spec/mocks/methods.rb +11 -16
- data/lib/spec/mocks/mock.rb +6 -3
- data/lib/spec/mocks/{mock_handler.rb → proxy.rb} +4 -7
- data/lib/spec/mocks/space.rb +28 -0
- data/lib/spec/mocks/spec_methods.rb +30 -0
- data/lib/spec/rake/spectask.rb +23 -21
- data/lib/spec/rake/verify_rcov.rb +1 -0
- data/lib/spec/runner.rb +88 -35
- data/lib/spec/runner/backtrace_tweaker.rb +2 -1
- data/lib/spec/runner/behaviour_runner.rb +102 -0
- data/lib/spec/runner/command_line.rb +5 -17
- data/lib/spec/runner/drb_command_line.rb +2 -2
- data/lib/spec/runner/extensions/kernel.rb +22 -9
- data/lib/spec/runner/formatter.rb +4 -0
- data/lib/spec/runner/formatter/base_formatter.rb +63 -0
- data/lib/spec/runner/formatter/base_text_formatter.rb +22 -52
- data/lib/spec/runner/formatter/failing_behaviours_formatter.rb +25 -0
- data/lib/spec/runner/formatter/failing_examples_formatter.rb +22 -0
- data/lib/spec/runner/formatter/html_formatter.rb +74 -29
- data/lib/spec/runner/formatter/progress_bar_formatter.rb +6 -8
- data/lib/spec/runner/formatter/rdoc_formatter.rb +6 -6
- data/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
- data/lib/spec/runner/formatter/specdoc_formatter.rb +6 -6
- data/lib/spec/runner/heckle_runner.rb +8 -7
- data/lib/spec/runner/option_parser.rb +136 -55
- data/lib/spec/runner/options.rb +26 -0
- data/lib/spec/runner/reporter.rb +38 -31
- data/lib/spec/runner/spec_parser.rb +22 -13
- data/lib/spec/test_case_adapter.rb +10 -0
- data/lib/spec/translator.rb +103 -86
- data/lib/spec/version.rb +7 -15
- data/plugins/mock_frameworks/flexmock.rb +27 -0
- data/plugins/mock_frameworks/mocha.rb +21 -0
- data/plugins/mock_frameworks/rspec.rb +18 -0
- data/spec/spec/dsl/behaviour_eval_spec.rb +49 -0
- data/spec/spec/dsl/behaviour_factory_spec.rb +30 -0
- data/spec/spec/dsl/behaviour_spec.rb +508 -0
- data/spec/spec/dsl/composite_proc_builder_spec.rb +57 -0
- data/spec/spec/dsl/configuration_spec.rb +43 -0
- data/spec/spec/dsl/description_spec.rb +51 -0
- data/spec/spec/dsl/example_class_spec.rb +24 -0
- data/spec/spec/dsl/example_instance_spec.rb +140 -0
- data/spec/spec/dsl/example_should_raise_spec.rb +137 -0
- data/spec/spec/dsl/predicate_matcher_spec.rb +21 -0
- data/spec/spec/dsl/shared_behaviour_spec.rb +186 -0
- data/spec/spec/expectations/differs/default_spec.rb +12 -12
- data/spec/spec/expectations/extensions/object_spec.rb +10 -10
- data/spec/spec/expectations/fail_with_spec.rb +20 -20
- data/spec/spec/matchers/be_close_spec.rb +37 -31
- data/spec/spec/matchers/be_spec.rb +50 -41
- data/spec/spec/matchers/change_spec.rb +54 -54
- data/spec/spec/matchers/description_generation_spec.rb +43 -31
- data/spec/spec/matchers/eql_spec.rb +24 -37
- data/spec/spec/matchers/equal_spec.rb +24 -37
- data/spec/spec/matchers/exist_spec.rb +48 -0
- data/spec/spec/matchers/handler_spec.rb +36 -23
- data/spec/spec/matchers/has_spec.rb +8 -8
- data/spec/spec/matchers/have_spec.rb +38 -38
- data/spec/spec/matchers/include_spec.rb +6 -6
- data/spec/spec/matchers/match_spec.rb +8 -8
- data/spec/spec/matchers/matcher_methods_spec.rb +24 -31
- data/spec/spec/matchers/raise_error_spec.rb +34 -34
- data/spec/spec/matchers/respond_to_spec.rb +32 -8
- data/spec/spec/matchers/satisfy_spec.rb +6 -6
- data/spec/spec/matchers/should_===_spec.rb +38 -0
- data/spec/spec/matchers/should_==_spec.rb +37 -0
- data/spec/spec/matchers/should_=~_spec.rb +36 -0
- data/spec/spec/matchers/throw_symbol_spec.rb +47 -55
- data/spec/spec/mocks/any_number_of_times_spec.rb +16 -21
- data/spec/spec/mocks/argument_expectation_spec.rb +3 -3
- data/spec/spec/mocks/at_least_spec.rb +30 -30
- data/spec/spec/mocks/at_most_spec.rb +53 -57
- data/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
- data/spec/spec/mocks/bug_report_7611_spec.rb +3 -3
- data/spec/spec/mocks/bug_report_7805_spec.rb +3 -3
- data/spec/spec/mocks/bug_report_8165_spec.rb +5 -5
- data/spec/spec/mocks/bug_report_8302_spec.rb +5 -5
- data/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +26 -27
- data/spec/spec/mocks/mock_ordering_spec.rb +19 -15
- data/spec/spec/mocks/mock_space_spec.rb +54 -0
- data/spec/spec/mocks/mock_spec.rb +111 -141
- data/spec/spec/mocks/multiple_return_value_spec.rb +48 -48
- data/spec/spec/mocks/null_object_mock_spec.rb +10 -10
- data/spec/spec/mocks/once_counts_spec.rb +32 -35
- data/spec/spec/mocks/options_hash_spec.rb +12 -10
- data/spec/spec/mocks/partial_mock_spec.rb +15 -15
- data/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +24 -22
- data/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +19 -19
- data/spec/spec/mocks/precise_counts_spec.rb +28 -32
- data/spec/spec/mocks/record_messages_spec.rb +10 -10
- data/spec/spec/mocks/stub_spec.rb +45 -45
- data/spec/spec/mocks/twice_counts_spec.rb +21 -21
- data/spec/spec/package/bin_spec_spec.rb +12 -0
- data/spec/spec/runner/behaviour_runner_spec.rb +114 -0
- data/spec/spec/runner/command_line_spec.rb +8 -8
- data/spec/spec/runner/context_matching_spec.rb +14 -15
- data/spec/spec/runner/drb_command_line_spec.rb +12 -12
- data/spec/spec/runner/execution_context_spec.rb +8 -29
- data/spec/spec/runner/extensions/kernel_spec.rb +36 -0
- data/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +27 -0
- data/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +28 -0
- data/spec/spec/runner/formatter/html_formatter_spec.rb +9 -8
- data/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +6 -6
- data/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +10 -10
- data/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +22 -27
- data/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +6 -5
- data/spec/spec/runner/formatter/rdoc_formatter_spec.rb +17 -17
- data/spec/spec/runner/formatter/snippet_extractor_spec.rb +11 -0
- data/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +6 -6
- data/spec/spec/runner/formatter/specdoc_formatter_spec.rb +17 -17
- data/spec/spec/runner/heckle_runner_spec.rb +21 -21
- data/spec/spec/runner/heckler_spec.rb +5 -5
- data/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +12 -12
- data/spec/spec/runner/object_ext_spec.rb +3 -3
- data/spec/spec/runner/option_parser_spec.rb +171 -102
- data/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +21 -12
- data/spec/spec/runner/reporter_spec.rb +106 -97
- data/spec/spec/runner/spec_matcher_spec.rb +46 -51
- data/spec/spec/runner/spec_parser_spec.rb +72 -16
- data/spec/spec/spec_classes.rb +12 -3
- data/spec/spec/translator_spec.rb +165 -36
- metadata +66 -76
- data/RELEASE-PLAN +0 -117
- data/examples/auto_spec_name_generation_example.rb +0 -18
- data/lib/spec/callback.rb +0 -11
- data/lib/spec/callback/callback_container.rb +0 -60
- data/lib/spec/callback/extensions/module.rb +0 -24
- data/lib/spec/callback/extensions/object.rb +0 -37
- data/lib/spec/deprecated.rb +0 -3
- data/lib/spec/expectations/extensions/proc.rb +0 -57
- data/lib/spec/expectations/should.rb +0 -5
- data/lib/spec/expectations/should/base.rb +0 -64
- data/lib/spec/expectations/should/change.rb +0 -69
- data/lib/spec/expectations/should/have.rb +0 -128
- data/lib/spec/expectations/should/not.rb +0 -74
- data/lib/spec/expectations/should/should.rb +0 -81
- data/lib/spec/expectations/sugar.rb +0 -47
- data/lib/spec/runner/context.rb +0 -154
- data/lib/spec/runner/context_eval.rb +0 -142
- data/lib/spec/runner/context_runner.rb +0 -55
- data/lib/spec/runner/execution_context.rb +0 -17
- data/lib/spec/runner/spec_matcher.rb +0 -25
- data/lib/spec/runner/specification.rb +0 -114
- data/spec/spec/callback/callback_container_spec.rb +0 -27
- data/spec/spec/callback/module_spec.rb +0 -37
- data/spec/spec/callback/object_spec.rb +0 -90
- data/spec/spec/callback/object_with_class_callback_spec.rb +0 -19
- data/spec/spec/expectations/should/should_==_spec.rb +0 -19
- data/spec/spec/expectations/should/should_=~_spec.rb +0 -13
- data/spec/spec/expectations/should/should_be_a_kind_of_spec.rb +0 -21
- data/spec/spec/expectations/should/should_be_an_instance_of_spec.rb +0 -30
- data/spec/spec/expectations/should/should_be_arbitrary_predicate_spec.rb +0 -81
- data/spec/spec/expectations/should/should_be_close_spec.rb +0 -18
- data/spec/spec/expectations/should/should_be_comparison_operator_spec.rb +0 -44
- data/spec/spec/expectations/should/should_be_false_spec.rb +0 -39
- data/spec/spec/expectations/should/should_be_spec.rb +0 -11
- data/spec/spec/expectations/should/should_be_true_spec.rb +0 -27
- data/spec/spec/expectations/should/should_change_spec.rb +0 -184
- data/spec/spec/expectations/should/should_eql_spec.rb +0 -11
- data/spec/spec/expectations/should/should_equal_spec.rb +0 -11
- data/spec/spec/expectations/should/should_have_at_least_spec.rb +0 -53
- data/spec/spec/expectations/should/should_have_at_most_spec.rb +0 -45
- data/spec/spec/expectations/should/should_have_key_spec.rb +0 -21
- data/spec/spec/expectations/should/should_have_spec.rb +0 -64
- data/spec/spec/expectations/should/should_include_spec.rb +0 -59
- data/spec/spec/expectations/should/should_match_spec.rb +0 -25
- data/spec/spec/expectations/should/should_not_==_spec.rb +0 -15
- data/spec/spec/expectations/should/should_not_be_a_kind_of_spec.rb +0 -21
- data/spec/spec/expectations/should/should_not_be_an_instance_of_spec.rb +0 -11
- data/spec/spec/expectations/should/should_not_be_arbitrary_predicate_spec.rb +0 -68
- data/spec/spec/expectations/should/should_not_be_spec.rb +0 -11
- data/spec/spec/expectations/should/should_not_change_spec.rb +0 -24
- data/spec/spec/expectations/should/should_not_eql_spec.rb +0 -11
- data/spec/spec/expectations/should/should_not_equal_spec.rb +0 -11
- data/spec/spec/expectations/should/should_not_have_key_spec.rb +0 -15
- data/spec/spec/expectations/should/should_not_include_spec.rb +0 -58
- data/spec/spec/expectations/should/should_not_match_spec.rb +0 -11
- data/spec/spec/expectations/should/should_not_raise_spec.rb +0 -75
- data/spec/spec/expectations/should/should_not_respond_to_spec.rb +0 -15
- data/spec/spec/expectations/should/should_not_throw_spec.rb +0 -35
- data/spec/spec/expectations/should/should_raise_spec.rb +0 -66
- data/spec/spec/expectations/should/should_respond_to_spec.rb +0 -15
- data/spec/spec/expectations/should/should_satisfy_spec.rb +0 -35
- data/spec/spec/expectations/should/should_throw_spec.rb +0 -27
- data/spec/spec/runner/context_runner_spec.rb +0 -100
- data/spec/spec/runner/context_spec.rb +0 -405
- data/spec/spec/runner/kernel_ext_spec.rb +0 -16
- data/spec/spec/runner/spec_name_generation_spec.rb +0 -102
- data/spec/spec/runner/specification_class_spec.rb +0 -72
- data/spec/spec/runner/specification_instance_spec.rb +0 -160
- data/spec/spec/runner/specification_should_raise_spec.rb +0 -136
data/CHANGES
CHANGED
|
@@ -1,5 +1,121 @@
|
|
|
1
1
|
= RSpec Changelog
|
|
2
2
|
|
|
3
|
+
== Version 0.9.0
|
|
4
|
+
|
|
5
|
+
This release introduces #describe and #it (aliased as #context and #specify for
|
|
6
|
+
backwards compatibility). This allows you to express specs like this:
|
|
7
|
+
|
|
8
|
+
describe SomeClass do # Creates a Behaviour
|
|
9
|
+
it "should do something" do # Creates an Example
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
The command line features four new options that give you more control over what specs
|
|
14
|
+
are being run and in what order. This can be used to verify that your specs are
|
|
15
|
+
independent (by running in opposite order with --reverse). It can also be used to cut
|
|
16
|
+
down feedback time by running the most recently modified specs first (--loadby mtime --reverse).
|
|
17
|
+
|
|
18
|
+
Further, --example replaces the old --spec option, and it can now take a file name of
|
|
19
|
+
spec names as an alternative to just a spec name. The --format failing_examples:file.txt
|
|
20
|
+
option allows you to output an --example compatible file, which makes it possible to only
|
|
21
|
+
rerun the specs that failed in the last run. Spec::Rails uses all of these four options
|
|
22
|
+
by default to optimise your RSpec experience.
|
|
23
|
+
|
|
24
|
+
There is now a simple configuration model. For Spec::Rails, you do something like this:
|
|
25
|
+
|
|
26
|
+
Spec::Runner.configure do |config|
|
|
27
|
+
config.use_transactional_fixtures = true
|
|
28
|
+
config.use_instantiated_fixtures = false
|
|
29
|
+
config.fixture_path = RAILS_ROOT + '/spec/fixtures'
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
You can now use mocha or flexmock with RSpec if you prefer either to
|
|
33
|
+
RSpec's own mock framework. Just put this:
|
|
34
|
+
|
|
35
|
+
Spec::Runner.configure do |config|
|
|
36
|
+
config.mock_with :mocha
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
or this:
|
|
40
|
+
|
|
41
|
+
Spec::Runner.configure do |config|
|
|
42
|
+
config.mock_with :flexmock
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
in a file that is loaded before your specs. You can also
|
|
46
|
+
configure included modules and predicate_matchers:
|
|
47
|
+
|
|
48
|
+
Spec::Runner.configure do |config|
|
|
49
|
+
config.include SomeModule
|
|
50
|
+
config.predicate_matchers[:does_something?] = :do_something
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
See Spec::DSL::Behaviour for more on predicate_matchers
|
|
54
|
+
|
|
55
|
+
* Sugar FREE!
|
|
56
|
+
* Added [10434 ] Please Make -s synonymous with -e for autotest compat. This is temporary until autotest uses -e instead of -s.
|
|
57
|
+
* Fixed [#10133] custom predicate matchers
|
|
58
|
+
* Applied [#10473] Add should exist (new matcher) - Patch from Bret Pettichord
|
|
59
|
+
* Added another formatter: failing_behaviours. Writes the names of the failing behaviours for use with --example.
|
|
60
|
+
* Applied [#10315] Patch to fix pre_commit bug 10313 - pre_commit_rails: doesn't always build correctly (Patch from Antii Tarvainen)
|
|
61
|
+
* Applied [#10245] Patch to HTML escape the behavior name when using HTML Formatter (Patch from Josh Knowles)
|
|
62
|
+
* Applied [#10410] redirect_to does not behave consistently with regards to query string parameter ordering (Patch from Nicholas Evans)
|
|
63
|
+
* Applied [#9605] Patch for ER 9472, shared behaviour (Patch by Bob Cotton)
|
|
64
|
+
* The '--format rdoc' option no longer causes a dry-run by default. --dry-run must be used explicitly.
|
|
65
|
+
* It's possible to specify the output file in the --format option (See explanation in --help)
|
|
66
|
+
* Several --format options may be specified to output several formats in one run.
|
|
67
|
+
* The --out option is gone. Use --format html:path/to/my.html instead (or similar).
|
|
68
|
+
* Spec::Runner::Formatter::BaseTextFormatter#initialize only takes one argument - an IO. dry_run and color are setters.
|
|
69
|
+
* Made Spec::Ui *much* easier to install. It will be released separately. Check out trunk/spec_ui/examples
|
|
70
|
+
* HTML reports now include a syntax highlighted snippet of the source code where the spec failed (needs the syntax gem)
|
|
71
|
+
* Added [#10262] Better Helper testing of Erb evaluation block helpers
|
|
72
|
+
* Added [#9735] support flexmock (thanks to Jim Weirich for his modifications to flexmock to support this)
|
|
73
|
+
* Spec::Rails controller specs will no longer let mock exception ripple through to the response.
|
|
74
|
+
* Fixed [#9260] IvarProxy does not act like a hash.
|
|
75
|
+
* Applied [#9458] The rspec_resource generator does not take into account class nesting (Patch from Steve Tendon)
|
|
76
|
+
* Applied [#9132] Rakefile spec:doc can fail without preparing database (Patch from Steve Ross)
|
|
77
|
+
* Applied [#9678] Custom runner command line switch, and multi-threaded runner (Patch from Bob Cotton)
|
|
78
|
+
* Applied [#9926] Rakefile - RSPEC_DEPS constant as an Array of Hashes instead of an Array of Arrays (Patch from Scott Taylor)
|
|
79
|
+
* Applied [#9925] Changed ".rhtml" to "template" in REST spec generator (Patch from Scott Taylor)
|
|
80
|
+
* Applied [#9852] Patch for RSpec's Website using Webgen 0.4.2 (Patch from Scott Taylor)
|
|
81
|
+
* Fixed [#6523] Run rspec on rails without a db
|
|
82
|
+
* Fixed [#9295] rake spec should run anything in the spec directory (not just rspec's standard dirs)
|
|
83
|
+
* Added [#9786] infer controller and helper names from the described type
|
|
84
|
+
* Fixed [#7795] form_tag renders action='/view_spec' in view specs
|
|
85
|
+
* Fixed [#9767] rspec_on_rails should not define rescue_action on controllers
|
|
86
|
+
* Fixed [#9421] --line doesn't work with behaviours that use class names
|
|
87
|
+
* Fixed [#9760] rspec generators incompatible with changes to edge rails
|
|
88
|
+
* Added [#9786] infer controller and helper names from the described type
|
|
89
|
+
* Applied a simplified version of [#9282] Change to allow running specs from textmate with rspec installed as a rails plugin (and no rspec gem installed)
|
|
90
|
+
* Applied [#9700] Make Spec::DSL::Example#name public / Add a --timeout switch. A great way to prevent specs from getting slow.
|
|
91
|
+
* In Rails, script/generate rspec will generate a spec.opts file that optimises faster/more efficient running of specs.
|
|
92
|
+
* Added [#9522] support using rspec's expectations with test/unit
|
|
93
|
+
* Moved rspec_on_rails up to the project root, simplifying the download url
|
|
94
|
+
* Fixed [#8103] RSpec not installing spec script correctly.
|
|
95
|
+
* The --spec option is replaced by the --example option.
|
|
96
|
+
* The --loadby option no longer supports a file argument. Use --example file_name instead.
|
|
97
|
+
* The --example option can now take a file name as an argument. The file should contain example names.
|
|
98
|
+
* Internal classes are named Behaviour/Example (rather than Context/Specification).
|
|
99
|
+
* You can now use mocha by saying config.mock_with :mocha in a spec_helper
|
|
100
|
+
* before_context_eval is replaced by before_eval.
|
|
101
|
+
* Applied [#9509] allow spaced options in spec.opts
|
|
102
|
+
* Applied [#9510] Added File for Ruby 1.8.6
|
|
103
|
+
* Applied [#9511] Clarification to README file in spec/
|
|
104
|
+
* Moved all of the Spec::Rails specs down to the plugins directory - now you can run the specs after you install.
|
|
105
|
+
* Updated RSpec.tmbundle to the 0.9 syntax and replaced context/specify with describe/it.
|
|
106
|
+
* Applied [#9232] ActionController::Base#render is sometimes protected (patch from Dan Manges)
|
|
107
|
+
* Added --reverse option, allowing contexts/specs to be run in reverse order.
|
|
108
|
+
* Added --loadby option, allowing better control over load order for spec files. mtime and file.txt supported.
|
|
109
|
+
* Implemented [#8696] --order option (see --reverse and --loadby)
|
|
110
|
+
* Added describe/it as aliases for context/specify - suggestion from Dan North.
|
|
111
|
+
* Applied [#7637] [PATCH] add skip-migration option to rspec_resource generator
|
|
112
|
+
* Added [#9167] string.should have_tag
|
|
113
|
+
* Changed script/rails_spec_server to script/spec_server and added script/spec (w/ path to vendor/plugins/rspec)
|
|
114
|
+
* Fixed [#8897] Error when mixing controller spec with/without integrated views and using template system other than rhtml
|
|
115
|
+
* Updated sample app specs to 0.9 syntax
|
|
116
|
+
* Updated generated specs to 0.9 syntax
|
|
117
|
+
* Applied [#8994] trunk: generated names for be_ specs (Multiple patches from Yurii Rashkovskii)
|
|
118
|
+
|
|
3
119
|
== Version 0.8.2
|
|
4
120
|
|
|
5
121
|
Replaced assert_select fork with an assert_select wrapper for have_tag. This means that "should have_rjs" no longer supports :hide or :effect, but you can still use should_have_rjs for those.
|
|
@@ -46,7 +162,7 @@ It also sports myriad new features, bug fixes, patches and general goodness:
|
|
|
46
162
|
* Fixed [#7754] Command-R fails to run spec in TextMate (added instruction from Luke Redpath to the website)
|
|
47
163
|
* Fixed [#7826] RSpect.tmbundle web page out of date.
|
|
48
164
|
* RSpec on Rails specs are now running against RoR 1.2.1 and 1.2.2
|
|
49
|
-
* rspec_resource now generates specs for views
|
|
165
|
+
* rspec_resource now generates specs for views
|
|
50
166
|
* In a Rails app, RSpec core is only loaded when RAILS_ENV==test (init.rb)
|
|
51
167
|
* Added support for target.should arbitrary_expectation_handler and target.should_not arbitrary_expectation_handler
|
|
52
168
|
* Fixed [#7533] Spec suite fails and the process exits with a code 0
|
|
@@ -55,7 +171,7 @@ It also sports myriad new features, bug fixes, patches and general goodness:
|
|
|
55
171
|
* Fixed [#7409] default fixtures do not appear to run.
|
|
56
172
|
* Fixed [#7507] "render..and return" doesn't return
|
|
57
173
|
* Fixed [#7509] rcov/rspec incorrectly includes boot.rb (Patch from Courtenay)
|
|
58
|
-
* Fixed [#7506] unnecessary complex output on failure of response.
|
|
174
|
+
* Fixed [#7506] unnecessary complex output on failure of response.should be_redirect
|
|
59
175
|
* Applied [#6098] Make scaffold_resource generator. Based on code from Pat Maddox.
|
|
60
176
|
* The drbspec command is gone. Use spec --drb instead.
|
|
61
177
|
* The drb option is gone from the Rake task. Pass --drb to spec_opts instead.
|
|
@@ -160,7 +276,7 @@ Bug fixes and a couple o' new features.
|
|
|
160
276
|
* Fixed [#6555] should_have_tag does not match documentation
|
|
161
277
|
* Fixed [#6567] SyntaxError should not stop entire run
|
|
162
278
|
* Fixed [#6558] integrated views look for template even when redirected
|
|
163
|
-
* Fixed [#6547] response.
|
|
279
|
+
* Fixed [#6547] response.should be_redirect broken in 0.7.0
|
|
164
280
|
* Applied [#6471] Easy way to spec routes
|
|
165
281
|
* Applied [#6587] Rspec on Rails displays "Spec::Rails::ContextFactory" as context name
|
|
166
282
|
* Applied [#6514] Document has trivial typos.
|
|
@@ -182,7 +298,7 @@ There are a few changes that will require that you change your existing specs.
|
|
|
182
298
|
RSpec now handles equality exactly like ruby does:
|
|
183
299
|
|
|
184
300
|
# actual.should_equal(expected) will pass if actual.equal?(expected) returns true
|
|
185
|
-
# actual.
|
|
301
|
+
# actual.should eql(expected) will pass if actual.eql?(expected) returns true
|
|
186
302
|
# actual.should == expected will pass if actual == expected) returns true
|
|
187
303
|
|
|
188
304
|
At the high level, eql? implies equivalence, while equal? implies object identity. For more
|
|
@@ -206,7 +322,7 @@ Here's what you'll need to do to update your specs:
|
|
|
206
322
|
# search for "should_equal" and replace with "should_eql"
|
|
207
323
|
# run specs
|
|
208
324
|
|
|
209
|
-
If any specs still fail, they are probably related to
|
|
325
|
+
If any specs still fail, they are probably related to should be_true or should_be_false using
|
|
210
326
|
non-boolean values. Those you'll just have to inspect manually and adjust appropriately (sorry!).
|
|
211
327
|
|
|
212
328
|
--------------------------------------------------
|
|
@@ -307,7 +423,7 @@ Things that may break backwards compatibility:
|
|
|
307
423
|
* Fixed [#4891] RCOV task failing on windows
|
|
308
424
|
* Fixed [#4896] Shouldn't modify user's $LOAD_PATH (Tip from Gavin Sinclair)
|
|
309
425
|
* Fixed [#5369] ruby -w: warnings in RSpec 0.5.16 (Tip from Suraj Kurapati)
|
|
310
|
-
* Applied [#5141]
|
|
426
|
+
* Applied [#5141] ExampleMatcher doesn't escape strings before matching (Patch from Nikolai Weibull).
|
|
311
427
|
* Fixed [#5224] Move 'require diff-lcs' from test_helper.rb to diff_test.rb (Tip from Chris Roos)
|
|
312
428
|
* Applied [#5449] Rake stats for specs (Patch from Nick Sieger)
|
|
313
429
|
* Applied [#5468, #5058] Fix spec runner to correctly run controller specs (Patch from Daniel Siemssen)
|
|
@@ -321,7 +437,7 @@ This release makes an official commitment to underscore_syntax (with no more sup
|
|
|
321
437
|
* Converted ALL tests to use underscore syntax
|
|
322
438
|
* Fixed all remaining problems with underscores revealed by converting all the tests to underscores
|
|
323
439
|
* Enhanced sugar to support combinations of methods (i.e. once.and_return)
|
|
324
|
-
* Simplified helper structure taking advantage of dot/underscore combos (i.e. should.be.an_instance_of, which can be expressed as
|
|
440
|
+
* Simplified helper structure taking advantage of dot/underscore combos (i.e. should.be.an_instance_of, which can be expressed as should be_an_instance_of)
|
|
325
441
|
* Added support for at_most in mocks
|
|
326
442
|
* Added support for should_not_receive(:msg) (will be removing should_receive(:msg).never some time soon)
|
|
327
443
|
* Added support for should_have_exactly(5).items_in_collection
|
|
@@ -347,7 +463,7 @@ a experimental support for faster rails specs.
|
|
|
347
463
|
|
|
348
464
|
* Added proc methods for specifying differences (increments and decrements). See difference_test.rb
|
|
349
465
|
* Methods can now be defined alongside specs. This obsoletes the need for defining methods in setup. (Patch #5002 from Brian Takita)
|
|
350
|
-
* Sugar (underscores) now works correctly with
|
|
466
|
+
* Sugar (underscores) now works correctly with should be_a_kind_of and should be_an_instance_of
|
|
351
467
|
* Added support for include and inherit in contexts. (Patch #4971 from Brian Takita)
|
|
352
468
|
* Added rails_spec and rails_spec_server for faster specs on rails (still buggy - help needed)
|
|
353
469
|
* Fixed bug that caused should_render to break if given a :symbol (in Rails)
|
|
@@ -564,7 +680,7 @@ This release adds some improvements to the mock API and minor syntax improvement
|
|
|
564
680
|
|
|
565
681
|
This release adds some shoulds and improves error reporting
|
|
566
682
|
|
|
567
|
-
* Added
|
|
683
|
+
* Added should be_same_as and should_not be_same_as.
|
|
568
684
|
* Improved error reporting for comparison expectations.
|
|
569
685
|
|
|
570
686
|
== Version 0.1.0
|
data/EXAMPLES.rd
CHANGED
|
@@ -1,12 +1,21 @@
|
|
|
1
|
-
#
|
|
2
|
-
# *
|
|
3
|
-
# *
|
|
4
|
-
# *
|
|
5
|
-
# *
|
|
6
|
-
#
|
|
1
|
+
# Examples with no descriptions
|
|
2
|
+
# * should equal 5
|
|
3
|
+
# * should be < 5
|
|
4
|
+
# * should include "a"
|
|
5
|
+
# * should respond to #size
|
|
6
|
+
# State created in before(:all)
|
|
7
|
+
# * should be accessible from example
|
|
8
|
+
# * should not have sideffects
|
|
9
|
+
# BehaveAsExample::BluesGuitarist
|
|
10
|
+
# * should behave as guitarist
|
|
11
|
+
# BehaveAsExample::RockGuitarist
|
|
12
|
+
# * should behave as guitarist
|
|
13
|
+
# BehaveAsExample::ClassicGuitarist
|
|
14
|
+
# * should not behave as guitarist
|
|
15
|
+
# Animals::Mouse
|
|
7
16
|
# * should eat cheese
|
|
8
17
|
# * should not eat cat
|
|
9
|
-
#
|
|
18
|
+
# Some integers
|
|
10
19
|
# * The root of 1 square should be 1
|
|
11
20
|
# * The root of 2 square should be 2
|
|
12
21
|
# * The root of 3 square should be 3
|
|
@@ -27,6 +36,8 @@
|
|
|
27
36
|
# An IoProcessor
|
|
28
37
|
# * should raise nothing when the file is exactly 32 bytes
|
|
29
38
|
# * should raise an exception when the file length is less than 32 bytes
|
|
39
|
+
# A legacy spec
|
|
40
|
+
# * should work fine
|
|
30
41
|
# A consumer of a mock
|
|
31
42
|
# * should be able to send messages to the mock
|
|
32
43
|
# a mock
|
|
@@ -39,31 +50,39 @@
|
|
|
39
50
|
# BDD framework
|
|
40
51
|
# * should be adopted quickly
|
|
41
52
|
# * should be intuitive
|
|
42
|
-
#
|
|
43
|
-
# * should
|
|
44
|
-
#
|
|
45
|
-
#
|
|
53
|
+
# SharedBehaviourExample::OneThing
|
|
54
|
+
# * should do what things do
|
|
55
|
+
# SharedBehaviourExample::AnotherThing
|
|
56
|
+
# * should do what things do
|
|
57
|
+
# Stack (empty)
|
|
58
|
+
# * should be empty
|
|
59
|
+
# * should not be full
|
|
46
60
|
# * should add to the top when sent #push
|
|
61
|
+
# * should complain when sent #peek
|
|
62
|
+
# * should complain when sent #pop
|
|
63
|
+
# Stack (with one item)
|
|
64
|
+
# * should not be empty
|
|
65
|
+
# * should return the top item when sent #peek
|
|
66
|
+
# * should NOT remove the top item when sent #peek
|
|
67
|
+
# * should return the top item when sent #pop
|
|
68
|
+
# * should remove the top item when sent #pop
|
|
69
|
+
# * should not be full
|
|
70
|
+
# * should add to the top when sent #push
|
|
71
|
+
# Stack (with one item less than capacity)
|
|
72
|
+
# * should not be empty
|
|
73
|
+
# * should return the top item when sent #peek
|
|
74
|
+
# * should NOT remove the top item when sent #peek
|
|
75
|
+
# * should return the top item when sent #pop
|
|
76
|
+
# * should remove the top item when sent #pop
|
|
77
|
+
# * should not be full
|
|
78
|
+
# * should add to the top when sent #push
|
|
79
|
+
# Stack (full)
|
|
80
|
+
# * should be full
|
|
81
|
+
# * should not be empty
|
|
47
82
|
# * should return the top item when sent #peek
|
|
48
83
|
# * should NOT remove the top item when sent #peek
|
|
49
84
|
# * should return the top item when sent #pop
|
|
50
85
|
# * should remove the top item when sent #pop
|
|
51
|
-
# An empty stack
|
|
52
|
-
# * NAME NOT GENERATED
|
|
53
|
-
# * should no longer be empty after #push
|
|
54
|
-
# * should complain when sent #peek
|
|
55
|
-
# * should complain when sent #pop
|
|
56
|
-
# An almost empty stack (with one item)
|
|
57
|
-
# * NAME NOT GENERATED
|
|
58
|
-
# * should remain not empty after #peek
|
|
59
|
-
# * should become empty after #pop
|
|
60
|
-
# An almost full stack (with one item less than capacity)
|
|
61
|
-
# * NAME NOT GENERATED
|
|
62
|
-
# * should become full when sent #push
|
|
63
|
-
# A full stack
|
|
64
|
-
# * NAME NOT GENERATED
|
|
65
|
-
# * should remain full after #peek
|
|
66
|
-
# * should no longer be full after #pop
|
|
67
86
|
# * should complain on #push
|
|
68
87
|
# A consumer of a stub
|
|
69
88
|
# * should be able to stub methods on any Object
|
|
@@ -79,3 +98,7 @@
|
|
|
79
98
|
# * TestCase#setup should be called.
|
|
80
99
|
# * RSpec should be able to access TestCase methods
|
|
81
100
|
# * RSpec should be able to accept included modules
|
|
101
|
+
|
|
102
|
+
Finished in 0.045999 seconds
|
|
103
|
+
|
|
104
|
+
74 examples, 0 failures
|
data/README
CHANGED
|
@@ -19,7 +19,7 @@ Spec::Mocks supports creating Mock Objects, Stubs, and adding Mock/Stub
|
|
|
19
19
|
behaviour to your existing objects.
|
|
20
20
|
|
|
21
21
|
Spec::Runner provides a very small but powerful DSL for writing executable
|
|
22
|
-
|
|
22
|
+
examples of how your code should work.
|
|
23
23
|
|
|
24
24
|
== Installation
|
|
25
25
|
|
|
@@ -47,6 +47,19 @@ In order to run RSpec's full suite of specs (rake pre_commit) you must install t
|
|
|
47
47
|
* meta_project # Required in order to make releases at RubyForge
|
|
48
48
|
* heckle # Required if you use the --heckle switch
|
|
49
49
|
|
|
50
|
+
Once those are all installed, you should be able to run the suite with the following steps:
|
|
51
|
+
|
|
52
|
+
svn co svn://rubyforge.org/var/svn/rspec/trunk rspec
|
|
53
|
+
cd rspec
|
|
54
|
+
rake install_dependencies
|
|
55
|
+
cd example_rails_app
|
|
56
|
+
export RSPEC_RAILS_VERSION=1.2.3
|
|
57
|
+
rake rspec:generate_mysql_config
|
|
58
|
+
mysql -u root < db/mysql_setup.sql
|
|
59
|
+
cd ..
|
|
60
|
+
rake pre_commit
|
|
61
|
+
|
|
62
|
+
|
|
50
63
|
Note that RSpec itself - once built - doesn't have any dependencies outside the Ruby core
|
|
51
64
|
and stdlib - with a few exceptions:
|
|
52
65
|
|
data/Rakefile
CHANGED
|
@@ -20,15 +20,30 @@ PKG_FILES = FileList[
|
|
|
20
20
|
'[A-Z]*',
|
|
21
21
|
'lib/**/*.rb',
|
|
22
22
|
'spec/**/*.rb',
|
|
23
|
-
'examples/**/*'
|
|
23
|
+
'examples/**/*',
|
|
24
|
+
'plugins/**/*'
|
|
24
25
|
]
|
|
26
|
+
FileUtils.touch(File.dirname(__FILE__) + '/previous_failures.txt')
|
|
25
27
|
|
|
26
|
-
task :default => [:
|
|
28
|
+
task :default => [:verify_rcov]
|
|
27
29
|
|
|
28
30
|
desc "Run all specs"
|
|
29
31
|
Spec::Rake::SpecTask.new do |t|
|
|
30
32
|
t.spec_files = FileList['spec/**/*_spec.rb', '../RSpec.tmbundle/Support/spec/*_spec.rb']
|
|
31
|
-
t.spec_opts = ['--
|
|
33
|
+
t.spec_opts = ['--options', 'spec.opts']
|
|
34
|
+
t.rcov = true
|
|
35
|
+
t.rcov_dir = '../doc/output/coverage'
|
|
36
|
+
t.rcov_opts = ['--exclude', 'spec\/spec,bin\/spec,examples']
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
desc "Run all translated specs"
|
|
40
|
+
Spec::Rake::SpecTask.new('translated_specs') do |t|
|
|
41
|
+
t.spec_files = FileList['translated_specs/**/*_spec.rb'].exclude( # These translate, but have other quirks
|
|
42
|
+
'translated_specs/spec/translator_spec.rb',
|
|
43
|
+
'translated_specs/spec/runner/formatter/html_formatter_spec.rb',
|
|
44
|
+
'translated_specs/spec/runner/option_parser_spec.rb'
|
|
45
|
+
)
|
|
46
|
+
t.spec_opts = ['--options', 'spec.opts']
|
|
32
47
|
t.rcov = true
|
|
33
48
|
t.rcov_dir = '../doc/output/coverage'
|
|
34
49
|
t.rcov_opts = ['--exclude', 'spec\/spec,bin\/spec,examples']
|
|
@@ -37,7 +52,7 @@ end
|
|
|
37
52
|
desc "Run all specs and store html output in doc/output/report.html"
|
|
38
53
|
Spec::Rake::SpecTask.new('spec_html') do |t|
|
|
39
54
|
t.spec_files = FileList['spec/**/*_spec.rb', 'vendor/RSpec.tmbundle/Support/spec/*_spec.rb']
|
|
40
|
-
t.spec_opts = ['--format html
|
|
55
|
+
t.spec_opts = ['--format html:../doc/output/report.html','--backtrace']
|
|
41
56
|
end
|
|
42
57
|
|
|
43
58
|
desc "Run all failing examples"
|
|
@@ -45,14 +60,6 @@ Spec::Rake::SpecTask.new('failing_examples') do |t|
|
|
|
45
60
|
t.spec_files = FileList['failing_examples/**/*_spec.rb']
|
|
46
61
|
end
|
|
47
62
|
|
|
48
|
-
desc 'Verify that no warnings occur'
|
|
49
|
-
task :verify_warnings do
|
|
50
|
-
`ruby -w #{File.dirname(__FILE__) + '/bin/spec'} --help 2> warnings.txt`
|
|
51
|
-
warnings = File.open('warnings.txt').read
|
|
52
|
-
File.rm 'warnings.txt' rescue nil
|
|
53
|
-
raise "There were warnings:\n#{warnings}" if warnings =~ /warning/n
|
|
54
|
-
end
|
|
55
|
-
|
|
56
63
|
desc 'Generate HTML documentation for website'
|
|
57
64
|
task :webgen do
|
|
58
65
|
Dir.chdir '../doc' do
|
|
@@ -71,7 +78,7 @@ desc 'Generate RDoc'
|
|
|
71
78
|
rd = Rake::RDocTask.new do |rdoc|
|
|
72
79
|
rdoc.rdoc_dir = '../doc/output/rdoc'
|
|
73
80
|
rdoc.options << '--title' << 'RSpec' << '--line-numbers' << '--inline-source' << '--main' << 'README'
|
|
74
|
-
rdoc.rdoc_files.include('README', 'CHANGES', 'MIT-LICENSE', 'EXAMPLES.rd', '
|
|
81
|
+
rdoc.rdoc_files.include('README', 'CHANGES', 'MIT-LICENSE', 'EXAMPLES.rd', 'UPGRADE', 'lib/**/*.rb')
|
|
75
82
|
end
|
|
76
83
|
task :rdoc => :examples_specdoc # We generate EXAMPLES.rd
|
|
77
84
|
|
|
@@ -95,7 +102,7 @@ spec = Gem::Specification.new do |s|
|
|
|
95
102
|
|
|
96
103
|
s.autorequire = 'spec'
|
|
97
104
|
s.bindir = 'bin'
|
|
98
|
-
s.executables = ['spec']
|
|
105
|
+
s.executables = ['spec', 'spec_translator']
|
|
99
106
|
s.default_executable = 'spec'
|
|
100
107
|
s.author = ["RSpec Development Team"]
|
|
101
108
|
s.email = "rspec-devel@rubyforge.org"
|
|
@@ -145,24 +152,28 @@ end
|
|
|
145
152
|
|
|
146
153
|
desc "Creates a tag in svn"
|
|
147
154
|
task :tag do
|
|
155
|
+
from = `svn info #{File.dirname(__FILE__)}`.match(/URL: (.*)\/rspec/n)[1]
|
|
156
|
+
to = from.gsub(/trunk/, "tags/#{Spec::VERSION::TAG}")
|
|
157
|
+
tag_cmd = "svn cp #{from} #{to} -m \"Tag release #{Spec::VERSION::FULL_VERSION}\""
|
|
158
|
+
raise "Can't tag to the same place: #{tag_cmd}" if to == from
|
|
148
159
|
puts "Creating tag in SVN"
|
|
149
|
-
|
|
150
|
-
|
|
160
|
+
`#{tag_cmd}`
|
|
161
|
+
raise "Tagging failed" unless $? == 0
|
|
151
162
|
end
|
|
152
163
|
|
|
153
164
|
desc "Run this task before you commit. You should see 'OK TO COMMIT'"
|
|
154
165
|
task :pre_commit => [
|
|
155
|
-
:verify_warnings,
|
|
156
166
|
:website,
|
|
157
167
|
:examples,
|
|
158
|
-
:
|
|
168
|
+
:translated_specs,
|
|
169
|
+
:failing_examples_with_html
|
|
159
170
|
]
|
|
160
171
|
|
|
161
172
|
desc "Build the website, but do not publish it"
|
|
162
173
|
task :website => [:clobber, :verify_rcov, :spec_html, :webgen, :failing_examples_with_html, :examples_specdoc, :rdoc, :rdoc_rails]
|
|
163
174
|
|
|
164
175
|
task :rdoc_rails do
|
|
165
|
-
Dir.chdir '../rspec_on_rails
|
|
176
|
+
Dir.chdir '../rspec_on_rails' do
|
|
166
177
|
rake = (PLATFORM == "i386-mswin32") ? "rake.cmd" : "rake"
|
|
167
178
|
`#{rake} rdoc`
|
|
168
179
|
end
|
|
@@ -174,50 +185,92 @@ end
|
|
|
174
185
|
|
|
175
186
|
desc "Upload Website to RubyForge"
|
|
176
187
|
task :publish_website => [:verify_user, :website] do
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
188
|
+
unless Spec::VERSION::RELEASE_CANDIDATE
|
|
189
|
+
publisher = Rake::SshDirPublisher.new(
|
|
190
|
+
"rspec-website@rubyforge.org",
|
|
191
|
+
"/var/www/gforge-projects/#{PKG_NAME}",
|
|
192
|
+
"../doc/output"
|
|
193
|
+
)
|
|
194
|
+
publisher.upload
|
|
195
|
+
else
|
|
196
|
+
puts "** Not publishing packages to RubyForge - this is a prerelease"
|
|
197
|
+
end
|
|
184
198
|
end
|
|
185
199
|
|
|
186
200
|
desc "Package the RSpec.tmbundle"
|
|
187
|
-
task :package_tmbundle
|
|
188
|
-
|
|
201
|
+
task :package_tmbundle do
|
|
202
|
+
mkdir 'pkg' rescue nil
|
|
203
|
+
rm_rf 'pkg/RSpec.tmbundle' rescue nil
|
|
189
204
|
`svn export ../RSpec.tmbundle pkg/RSpec.tmbundle`
|
|
190
205
|
Dir.chdir 'pkg' do
|
|
191
206
|
`tar cvzf RSpec-#{PKG_VERSION}.tmbundle.tgz RSpec.tmbundle`
|
|
192
207
|
end
|
|
193
208
|
end
|
|
194
|
-
task :
|
|
209
|
+
task :pkg => :package_tmbundle
|
|
210
|
+
|
|
211
|
+
desc "Package the Spec::Ui gem"
|
|
212
|
+
task :package_spec_ui do
|
|
213
|
+
Dir.chdir '../spec_ui' do
|
|
214
|
+
`rake clobber gem`
|
|
215
|
+
end
|
|
216
|
+
end
|
|
217
|
+
task :pkg => :package_spec_ui
|
|
195
218
|
|
|
196
219
|
desc "Publish gem+tgz+zip on RubyForge. You must make sure lib/version.rb is aligned with the CHANGELOG file"
|
|
197
220
|
task :publish_packages => [:verify_user, :package] do
|
|
198
|
-
require '
|
|
199
|
-
require 'rake/contrib/xforge'
|
|
221
|
+
require File.dirname(__FILE__) + '/../spec_ui/lib/spec/ui/version'
|
|
200
222
|
release_files = FileList[
|
|
201
223
|
"pkg/#{PKG_FILE_NAME}.gem",
|
|
202
224
|
"pkg/#{PKG_FILE_NAME}.tgz",
|
|
203
225
|
"pkg/#{PKG_FILE_NAME}.zip",
|
|
204
|
-
"pkg/RSpec-#{PKG_VERSION}.tmbundle.tgz"
|
|
226
|
+
"pkg/RSpec-#{PKG_VERSION}.tmbundle.tgz",
|
|
227
|
+
"../spec_ui/pkg/spec_ui-#{Spec::Ui::VERSION::STRING}.gem"
|
|
205
228
|
]
|
|
229
|
+
unless Spec::VERSION::RELEASE_CANDIDATE
|
|
230
|
+
require 'meta_project'
|
|
231
|
+
require 'rake/contrib/xforge'
|
|
232
|
+
|
|
233
|
+
Rake::XForge::Release.new(MetaProject::Project::XForge::RubyForge.new(PKG_NAME)) do |xf|
|
|
234
|
+
# Never hardcode user name and password in the Rakefile!
|
|
235
|
+
xf.user_name = ENV['RUBYFORGE_USER']
|
|
236
|
+
xf.files = release_files.to_a
|
|
237
|
+
xf.release_name = "RSpec #{PKG_VERSION}"
|
|
238
|
+
end
|
|
239
|
+
else
|
|
240
|
+
puts "SINCE THIS IS A PRERELEASE, FILES ARE UPLOADED WITH SSH, NOT TO THE RUBYFORGE FILE SECTION"
|
|
241
|
+
puts "YOU MUST TYPE THE PASSWORD #{release_files.length} TIMES..."
|
|
242
|
+
|
|
243
|
+
host = "rspec-website@rubyforge.org"
|
|
244
|
+
remote_dir = "/var/www/gforge-projects/#{PKG_NAME}"
|
|
206
245
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
246
|
+
publisher = Rake::SshFilePublisher.new(
|
|
247
|
+
host,
|
|
248
|
+
remote_dir,
|
|
249
|
+
File.dirname(__FILE__),
|
|
250
|
+
*release_files
|
|
251
|
+
)
|
|
252
|
+
publisher.upload
|
|
253
|
+
|
|
254
|
+
puts "UPLADED THE FOLLOWING FILES:"
|
|
255
|
+
release_files.each do |file|
|
|
256
|
+
name = file.match(/pkg\/(.*)/)[1]
|
|
257
|
+
puts "* http://rspec.rubyforge.org/#{name}"
|
|
258
|
+
end
|
|
259
|
+
|
|
260
|
+
puts "They are not linked to anywhere, so don't forget to tell people!"
|
|
212
261
|
end
|
|
213
262
|
end
|
|
214
263
|
|
|
215
264
|
desc "Publish news on RubyForge"
|
|
216
265
|
task :publish_news => [:verify_user] do
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
266
|
+
unless Spec::VERSION::RELEASE_CANDIDATE
|
|
267
|
+
require 'meta_project'
|
|
268
|
+
require 'rake/contrib/xforge'
|
|
269
|
+
Rake::XForge::NewsPublisher.new(MetaProject::Project::XForge::RubyForge.new(PKG_NAME)) do |news|
|
|
270
|
+
# Never hardcode user name and password in the Rakefile!
|
|
271
|
+
news.user_name = ENV['RUBYFORGE_USER']
|
|
272
|
+
end
|
|
273
|
+
else
|
|
274
|
+
puts "** Not publishing news to RubyForge - this is a prerelease"
|
|
222
275
|
end
|
|
223
276
|
end
|