shoulda-context 1.0.2 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.travis.yml ADDED
@@ -0,0 +1,4 @@
1
+ rvm:
2
+ - 1.8.7
3
+ - 1.9.3
4
+ - 2.0.0
data/Appraisals ADDED
@@ -0,0 +1,15 @@
1
+ appraise '3.0' do
2
+ gem 'rails', '3.0.17'
3
+ end
4
+
5
+ appraise '3.1' do
6
+ gem 'rails', '3.1.8'
7
+ gem 'jquery-rails'
8
+ gem 'sass-rails'
9
+ end
10
+
11
+ appraise '3.2' do
12
+ gem 'rails', '3.2.9'
13
+ gem 'jquery-rails'
14
+ gem 'sass-rails'
15
+ end
data/MIT-LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2007, Tammer Saleh, Thoughtbot, Inc.
1
+ Copyright (c) 2006-2013, Tammer Saleh, thoughtbot, inc.
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person
4
4
  obtaining a copy of this software and associated documentation
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # shoulda-context
1
+ # shoulda-context [![Gem Version](https://badge.fury.io/rb/shoulda-context.png)](http://badge.fury.io/rb/shoulda-context) [![Build Status](https://travis-ci.org/thoughtbot/shoulda-context.png?branch=master)](https://travis-ci.org/thoughtbot/shoulda-context)
2
2
 
3
3
  [Official Documentation](http://rubydoc.info/github/thoughtbot/shoulda-context/master/frames)
4
4
 
@@ -50,5 +50,5 @@ Thank you to all the [contributors](https://github.com/thoughtbot/shoulda-contex
50
50
 
51
51
  ## License
52
52
 
53
- Shoulda is Copyright © 2006-2012 thoughtbot, inc.
53
+ Shoulda is Copyright © 2006-2013 thoughtbot, inc.
54
54
  It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.
data/Rakefile CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'bundler/setup'
2
2
  require 'bundler/gem_tasks'
3
3
  require 'rake/testtask'
4
+ require 'appraisal'
4
5
 
5
6
  $LOAD_PATH.unshift("lib")
6
7
  load 'tasks/shoulda.rake'
@@ -11,5 +12,10 @@ Rake::TestTask.new do |t|
11
12
  t.verbose = false
12
13
  end
13
14
 
15
+ desc 'Test the plugin under all supported Rails versions.'
16
+ task :all => ['appraisal:cleanup', 'appraisal:install'] do
17
+ exec('rake appraisal test')
18
+ end
19
+
14
20
  desc 'Default: run tests'
15
- task :default => [:test]
21
+ task :default => [:all]
@@ -0,0 +1,7 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "rails", "3.0.17"
6
+
7
+ gemspec :path=>"../"
@@ -0,0 +1,91 @@
1
+ PATH
2
+ remote: /Users/rmcgeary/work/oss/shoulda-context
3
+ specs:
4
+ shoulda-context (1.0.2)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ abstract (1.0.0)
10
+ actionmailer (3.0.17)
11
+ actionpack (= 3.0.17)
12
+ mail (~> 2.2.19)
13
+ actionpack (3.0.17)
14
+ activemodel (= 3.0.17)
15
+ activesupport (= 3.0.17)
16
+ builder (~> 2.1.2)
17
+ erubis (~> 2.6.6)
18
+ i18n (~> 0.5.0)
19
+ rack (~> 1.2.5)
20
+ rack-mount (~> 0.6.14)
21
+ rack-test (~> 0.5.7)
22
+ tzinfo (~> 0.3.23)
23
+ activemodel (3.0.17)
24
+ activesupport (= 3.0.17)
25
+ builder (~> 2.1.2)
26
+ i18n (~> 0.5.0)
27
+ activerecord (3.0.17)
28
+ activemodel (= 3.0.17)
29
+ activesupport (= 3.0.17)
30
+ arel (~> 2.0.10)
31
+ tzinfo (~> 0.3.23)
32
+ activeresource (3.0.17)
33
+ activemodel (= 3.0.17)
34
+ activesupport (= 3.0.17)
35
+ activesupport (3.0.17)
36
+ appraisal (0.5.1)
37
+ bundler
38
+ rake
39
+ arel (2.0.10)
40
+ builder (2.1.2)
41
+ erubis (2.6.6)
42
+ abstract (>= 1.0.0)
43
+ i18n (0.5.0)
44
+ json (1.7.7)
45
+ mail (2.2.19)
46
+ activesupport (>= 2.3.6)
47
+ i18n (>= 0.4.0)
48
+ mime-types (~> 1.16)
49
+ treetop (~> 1.4.8)
50
+ mime-types (1.21)
51
+ mocha (0.9.12)
52
+ polyglot (0.3.3)
53
+ rack (1.2.8)
54
+ rack-mount (0.6.14)
55
+ rack (>= 1.0.0)
56
+ rack-test (0.5.7)
57
+ rack (>= 1.0)
58
+ rails (3.0.17)
59
+ actionmailer (= 3.0.17)
60
+ actionpack (= 3.0.17)
61
+ activerecord (= 3.0.17)
62
+ activeresource (= 3.0.17)
63
+ activesupport (= 3.0.17)
64
+ bundler (~> 1.0)
65
+ railties (= 3.0.17)
66
+ railties (3.0.17)
67
+ actionpack (= 3.0.17)
68
+ activesupport (= 3.0.17)
69
+ rake (>= 0.8.7)
70
+ rdoc (~> 3.4)
71
+ thor (~> 0.14.4)
72
+ rake (10.0.4)
73
+ rdoc (3.12.2)
74
+ json (~> 1.4)
75
+ test-unit (2.1.2)
76
+ thor (0.14.6)
77
+ treetop (1.4.12)
78
+ polyglot
79
+ polyglot (>= 0.3.1)
80
+ tzinfo (0.3.37)
81
+
82
+ PLATFORMS
83
+ ruby
84
+
85
+ DEPENDENCIES
86
+ appraisal (~> 0.5)
87
+ mocha (~> 0.9.10)
88
+ rails (= 3.0.17)
89
+ rake
90
+ shoulda-context!
91
+ test-unit (~> 2.1.0)
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "rails", "3.1.8"
6
+ gem "jquery-rails"
7
+ gem "sass-rails"
8
+
9
+ gemspec :path=>"../"
@@ -0,0 +1,113 @@
1
+ PATH
2
+ remote: /Users/rmcgeary/work/oss/shoulda-context
3
+ specs:
4
+ shoulda-context (1.0.2)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ actionmailer (3.1.8)
10
+ actionpack (= 3.1.8)
11
+ mail (~> 2.3.3)
12
+ actionpack (3.1.8)
13
+ activemodel (= 3.1.8)
14
+ activesupport (= 3.1.8)
15
+ builder (~> 3.0.0)
16
+ erubis (~> 2.7.0)
17
+ i18n (~> 0.6)
18
+ rack (~> 1.3.6)
19
+ rack-cache (~> 1.2)
20
+ rack-mount (~> 0.8.2)
21
+ rack-test (~> 0.6.1)
22
+ sprockets (~> 2.0.4)
23
+ activemodel (3.1.8)
24
+ activesupport (= 3.1.8)
25
+ builder (~> 3.0.0)
26
+ i18n (~> 0.6)
27
+ activerecord (3.1.8)
28
+ activemodel (= 3.1.8)
29
+ activesupport (= 3.1.8)
30
+ arel (~> 2.2.3)
31
+ tzinfo (~> 0.3.29)
32
+ activeresource (3.1.8)
33
+ activemodel (= 3.1.8)
34
+ activesupport (= 3.1.8)
35
+ activesupport (3.1.8)
36
+ multi_json (>= 1.0, < 1.3)
37
+ appraisal (0.5.1)
38
+ bundler
39
+ rake
40
+ arel (2.2.3)
41
+ builder (3.0.4)
42
+ erubis (2.7.0)
43
+ hike (1.2.1)
44
+ i18n (0.6.4)
45
+ jquery-rails (2.2.1)
46
+ railties (>= 3.0, < 5.0)
47
+ thor (>= 0.14, < 2.0)
48
+ json (1.7.7)
49
+ mail (2.3.3)
50
+ i18n (>= 0.4.0)
51
+ mime-types (~> 1.16)
52
+ treetop (~> 1.4.8)
53
+ mime-types (1.21)
54
+ mocha (0.9.12)
55
+ multi_json (1.2.0)
56
+ polyglot (0.3.3)
57
+ rack (1.3.10)
58
+ rack-cache (1.2)
59
+ rack (>= 0.4)
60
+ rack-mount (0.8.3)
61
+ rack (>= 1.0.0)
62
+ rack-ssl (1.3.3)
63
+ rack
64
+ rack-test (0.6.2)
65
+ rack (>= 1.0)
66
+ rails (3.1.8)
67
+ actionmailer (= 3.1.8)
68
+ actionpack (= 3.1.8)
69
+ activerecord (= 3.1.8)
70
+ activeresource (= 3.1.8)
71
+ activesupport (= 3.1.8)
72
+ bundler (~> 1.0)
73
+ railties (= 3.1.8)
74
+ railties (3.1.8)
75
+ actionpack (= 3.1.8)
76
+ activesupport (= 3.1.8)
77
+ rack-ssl (~> 1.3.2)
78
+ rake (>= 0.8.7)
79
+ rdoc (~> 3.4)
80
+ thor (~> 0.14.6)
81
+ rake (10.0.4)
82
+ rdoc (3.12.2)
83
+ json (~> 1.4)
84
+ sass (3.2.7)
85
+ sass-rails (3.1.7)
86
+ actionpack (~> 3.1.0)
87
+ railties (~> 3.1.0)
88
+ sass (>= 3.1.10)
89
+ tilt (~> 1.3.2)
90
+ sprockets (2.0.4)
91
+ hike (~> 1.2)
92
+ rack (~> 1.0)
93
+ tilt (~> 1.1, != 1.3.0)
94
+ test-unit (2.1.2)
95
+ thor (0.14.6)
96
+ tilt (1.3.6)
97
+ treetop (1.4.12)
98
+ polyglot
99
+ polyglot (>= 0.3.1)
100
+ tzinfo (0.3.37)
101
+
102
+ PLATFORMS
103
+ ruby
104
+
105
+ DEPENDENCIES
106
+ appraisal (~> 0.5)
107
+ jquery-rails
108
+ mocha (~> 0.9.10)
109
+ rails (= 3.1.8)
110
+ rake
111
+ sass-rails
112
+ shoulda-context!
113
+ test-unit (~> 2.1.0)
@@ -0,0 +1,9 @@
1
+ # This file was generated by Appraisal
2
+
3
+ source "http://rubygems.org"
4
+
5
+ gem "rails", "3.2.9"
6
+ gem "jquery-rails"
7
+ gem "sass-rails"
8
+
9
+ gemspec :path=>"../"
@@ -0,0 +1,111 @@
1
+ PATH
2
+ remote: /Users/rmcgeary/work/oss/shoulda-context
3
+ specs:
4
+ shoulda-context (1.0.2)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ actionmailer (3.2.9)
10
+ actionpack (= 3.2.9)
11
+ mail (~> 2.4.4)
12
+ actionpack (3.2.9)
13
+ activemodel (= 3.2.9)
14
+ activesupport (= 3.2.9)
15
+ builder (~> 3.0.0)
16
+ erubis (~> 2.7.0)
17
+ journey (~> 1.0.4)
18
+ rack (~> 1.4.0)
19
+ rack-cache (~> 1.2)
20
+ rack-test (~> 0.6.1)
21
+ sprockets (~> 2.2.1)
22
+ activemodel (3.2.9)
23
+ activesupport (= 3.2.9)
24
+ builder (~> 3.0.0)
25
+ activerecord (3.2.9)
26
+ activemodel (= 3.2.9)
27
+ activesupport (= 3.2.9)
28
+ arel (~> 3.0.2)
29
+ tzinfo (~> 0.3.29)
30
+ activeresource (3.2.9)
31
+ activemodel (= 3.2.9)
32
+ activesupport (= 3.2.9)
33
+ activesupport (3.2.9)
34
+ i18n (~> 0.6)
35
+ multi_json (~> 1.0)
36
+ appraisal (0.5.1)
37
+ bundler
38
+ rake
39
+ arel (3.0.2)
40
+ builder (3.0.4)
41
+ erubis (2.7.0)
42
+ hike (1.2.1)
43
+ i18n (0.6.4)
44
+ journey (1.0.4)
45
+ jquery-rails (2.2.1)
46
+ railties (>= 3.0, < 5.0)
47
+ thor (>= 0.14, < 2.0)
48
+ json (1.7.7)
49
+ mail (2.4.4)
50
+ i18n (>= 0.4.0)
51
+ mime-types (~> 1.16)
52
+ treetop (~> 1.4.8)
53
+ mime-types (1.21)
54
+ mocha (0.9.12)
55
+ multi_json (1.7.2)
56
+ polyglot (0.3.3)
57
+ rack (1.4.5)
58
+ rack-cache (1.2)
59
+ rack (>= 0.4)
60
+ rack-ssl (1.3.3)
61
+ rack
62
+ rack-test (0.6.2)
63
+ rack (>= 1.0)
64
+ rails (3.2.9)
65
+ actionmailer (= 3.2.9)
66
+ actionpack (= 3.2.9)
67
+ activerecord (= 3.2.9)
68
+ activeresource (= 3.2.9)
69
+ activesupport (= 3.2.9)
70
+ bundler (~> 1.0)
71
+ railties (= 3.2.9)
72
+ railties (3.2.9)
73
+ actionpack (= 3.2.9)
74
+ activesupport (= 3.2.9)
75
+ rack-ssl (~> 1.3.2)
76
+ rake (>= 0.8.7)
77
+ rdoc (~> 3.4)
78
+ thor (>= 0.14.6, < 2.0)
79
+ rake (10.0.4)
80
+ rdoc (3.12.2)
81
+ json (~> 1.4)
82
+ sass (3.2.7)
83
+ sass-rails (3.2.6)
84
+ railties (~> 3.2.0)
85
+ sass (>= 3.1.10)
86
+ tilt (~> 1.3)
87
+ sprockets (2.2.2)
88
+ hike (~> 1.2)
89
+ multi_json (~> 1.0)
90
+ rack (~> 1.0)
91
+ tilt (~> 1.1, != 1.3.0)
92
+ test-unit (2.1.2)
93
+ thor (0.17.0)
94
+ tilt (1.3.6)
95
+ treetop (1.4.12)
96
+ polyglot
97
+ polyglot (>= 0.3.1)
98
+ tzinfo (0.3.37)
99
+
100
+ PLATFORMS
101
+ ruby
102
+
103
+ DEPENDENCIES
104
+ appraisal (~> 0.5)
105
+ jquery-rails
106
+ mocha (~> 0.9.10)
107
+ rails (= 3.2.9)
108
+ rake
109
+ sass-rails
110
+ shoulda-context!
111
+ test-unit (~> 2.1.0)
@@ -54,10 +54,12 @@ module Shoulda # :nodoc:
54
54
  if matcher.matches?(target)
55
55
  assert_block { true }
56
56
  if options[:message]
57
- assert_match options[:message], matcher.negative_failure_message
57
+ message = matcher.respond_to?(:failure_message_for_should_not) ? matcher.failure_message_for_should_not : matcher.negative_failure_message
58
+ assert_match options[:message], message
58
59
  end
59
60
  else
60
- assert_block(matcher.failure_message) { false }
61
+ message = matcher.respond_to?(:failure_message_for_should) ? matcher.failure_message_for_should : matcher.failure_message
62
+ assert_block(message) { false }
61
63
  end
62
64
  end
63
65
 
@@ -73,10 +75,12 @@ module Shoulda # :nodoc:
73
75
  if not_match
74
76
  assert_block { true }
75
77
  if options[:message]
76
- assert_match options[:message], matcher.failure_message
78
+ message = matcher.respond_to?(:failure_message_for_should) ? matcher.failure_message_for_should : matcher.failure_message
79
+ assert_match options[:message], message
77
80
  end
78
81
  else
79
- assert_block(matcher.negative_failure_message) { false }
82
+ message = matcher.respond_to?(:failure_message_for_should_not) ? matcher.failure_message_for_should_not : matcher.negative_failure_message
83
+ assert_block(message) { false }
80
84
  end
81
85
  end
82
86
  end
@@ -1,10 +1,10 @@
1
1
  module Shoulda
2
2
  module Context
3
3
  class << self
4
- attr_accessor :contexts
5
4
  def contexts # :nodoc:
6
5
  @contexts ||= []
7
6
  end
7
+ attr_writer :contexts
8
8
 
9
9
  def current_context # :nodoc:
10
10
  self.contexts.last
@@ -226,7 +226,7 @@ module Shoulda
226
226
  end
227
227
 
228
228
  def subject_block # :nodoc:
229
- @subject_block
229
+ @subject_block ||= nil
230
230
  end
231
231
  end
232
232
 
@@ -290,7 +290,13 @@ module Shoulda
290
290
  attr_accessor :teardown_blocks # blocks given via teardown methods
291
291
  attr_accessor :shoulds # array of hashes representing the should statements
292
292
  attr_accessor :should_eventuallys # array of hashes representing the should eventually statements
293
- attr_accessor :subject_block
293
+
294
+ # accessor with cache
295
+ def subject_block
296
+ return @subject_block if @subject_block
297
+ parent.subject_block
298
+ end
299
+ attr_writer :subject_block
294
300
 
295
301
  def initialize(name, parent, &blk)
296
302
  Shoulda::Context.add_context(self)
@@ -301,6 +307,7 @@ module Shoulda
301
307
  self.shoulds = []
302
308
  self.should_eventuallys = []
303
309
  self.subcontexts = []
310
+ self.subject_block = nil
304
311
 
305
312
  if block_given?
306
313
  merge_block(&blk)
@@ -337,8 +344,8 @@ module Shoulda
337
344
  if blk
338
345
  self.shoulds << { :name => name, :before => options[:before], :block => blk }
339
346
  else
340
- self.should_eventuallys << { :name => name }
341
- end
347
+ self.should_eventuallys << { :name => name }
348
+ end
342
349
  end
343
350
 
344
351
  def should_not(matcher)
@@ -355,11 +362,6 @@ module Shoulda
355
362
  self.subject_block = block
356
363
  end
357
364
 
358
- def subject_block
359
- return @subject_block if @subject_block
360
- parent.subject_block
361
- end
362
-
363
365
  def full_name
364
366
  parent_name = parent.full_name if am_subcontext?
365
367
  return [parent_name, name].join(" ").strip
@@ -1,5 +1,5 @@
1
1
  module Shoulda
2
2
  module Context
3
- VERSION = '1.0.2'.freeze
3
+ VERSION = '1.1.0'.freeze
4
4
  end
5
5
  end
@@ -12,12 +12,15 @@ Gem::Specification.new do |s|
12
12
  s.homepage = %q{http://thoughtbot.com/community/}
13
13
  s.summary = %q{Context framework extracted from Shoulda}
14
14
  s.description = %q{Context framework extracted from Shoulda}
15
+ s.license = %q{MIT}
15
16
 
16
17
  s.files = `git ls-files`.split("\n")
17
18
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
19
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
20
  s.require_paths = ["lib"]
20
21
 
22
+ s.add_development_dependency("appraisal", "~> 0.5")
23
+ s.add_development_dependency("rails", "3.2.9")
21
24
  s.add_development_dependency("mocha", "~> 0.9.10")
22
25
  s.add_development_dependency("rake")
23
26
  s.add_development_dependency("test-unit", "~> 2.1.0")
@@ -6,17 +6,10 @@ class ContextTest < Test::Unit::TestCase # :nodoc:
6
6
  context "with a subcontext made by a macro" do
7
7
  setup { @context_macro = :foo }
8
8
 
9
- merge_block &blk
9
+ merge_block(&blk)
10
10
  end
11
11
  end
12
12
 
13
- # def self.context_macro(&blk)
14
- # context "with a subcontext made by a macro" do
15
- # setup { @context_macro = :foo }
16
- # yield # <- this doesn't work.
17
- # end
18
- # end
19
-
20
13
  context "context with setup block" do
21
14
  setup do
22
15
  @blah = "blah"
@@ -90,7 +83,7 @@ class ContextTest < Test::Unit::TestCase # :nodoc:
90
83
 
91
84
  context "another context" do
92
85
  should "not define @blah" do
93
- assert_nil @blah
86
+ assert !instance_variable_defined?(:@blah)
94
87
  end
95
88
  end
96
89
 
@@ -200,12 +193,12 @@ class ShouldMatcherTest < Test::Unit::TestCase
200
193
  !@fail
201
194
  end
202
195
 
203
- def failure_message
204
- "a failure message"
196
+ def failure_message_for_should
197
+ "failure message for should"
205
198
  end
206
199
 
207
- def negative_failure_message
208
- "not a failure message"
200
+ def failure_message_for_should_not
201
+ "failure message for should not"
209
202
  end
210
203
  end
211
204
 
@@ -256,7 +249,7 @@ class ShouldMatcherTest < Test::Unit::TestCase
256
249
  should "fail with a failing matcher" do
257
250
  @matcher.fail = true
258
251
  run_test_suite
259
- assert_failed_with @matcher.failure_message, @test_result
252
+ assert_failed_with "failure message for should", @test_result
260
253
  end
261
254
 
262
255
  should "provide the subject" do
@@ -280,7 +273,7 @@ class ShouldMatcherTest < Test::Unit::TestCase
280
273
  should "fail with a passing matcher" do
281
274
  @matcher.fail = false
282
275
  run_test_suite
283
- assert_failed_with @matcher.negative_failure_message, @test_result
276
+ assert_failed_with "failure message for should not", @test_result
284
277
  end
285
278
 
286
279
  should "provide the subject" do
@@ -365,4 +358,3 @@ class SubjectLazinessTest < Test::Unit::TestCase
365
358
  assert_equal subject, subject
366
359
  end
367
360
  end
368
-
@@ -41,9 +41,9 @@ class HelpersTest < Test::Unit::TestCase # :nodoc:
41
41
 
42
42
  context "a matching matcher" do
43
43
  setup do
44
- @matcher = stub('matcher', :matches? => true,
45
- :failure_message => 'bad failure message',
46
- :negative_failure_message => 'big time failure')
44
+ @matcher = stub('matcher', :matches? => true,
45
+ :failure_message_for_should => 'bad failure message',
46
+ :failure_message_for_should_not => 'big time failure')
47
47
  end
48
48
 
49
49
  should "pass when given to assert_accepts with no message expectation" do
@@ -63,6 +63,7 @@ class HelpersTest < Test::Unit::TestCase # :nodoc:
63
63
  context "when given to assert_rejects" do
64
64
  context "and matcher has :does_not_match?" do
65
65
  setup do
66
+ @error = nil
66
67
  begin
67
68
  @matcher.stubs(:matches?).returns(false)
68
69
  @matcher.stubs(:does_not_match?).returns(true)
@@ -78,6 +79,7 @@ class HelpersTest < Test::Unit::TestCase # :nodoc:
78
79
 
79
80
  context "and matcher does not have :does_not_match?" do
80
81
  setup do
82
+ @error = nil
81
83
  begin
82
84
  assert_rejects @matcher, 'target'
83
85
  rescue Test::Unit::AssertionFailedError => @error
@@ -96,6 +98,46 @@ class HelpersTest < Test::Unit::TestCase # :nodoc:
96
98
  end
97
99
 
98
100
  context "a non-matching matcher" do
101
+ setup do
102
+ @matcher = stub('matcher', :matches? => false,
103
+ :failure_message_for_should => 'big time failure',
104
+ :failure_message_for_should_not => 'bad failure message')
105
+ end
106
+
107
+ should "pass when given to assert_rejects with no message expectation" do
108
+ assert_rejects @matcher, 'target'
109
+ end
110
+
111
+ should "pass when given to assert_rejects with a matching message" do
112
+ assert_rejects @matcher, 'target', :message => /big time/
113
+ end
114
+
115
+ should "fail when given to assert_rejects with a non-matching message" do
116
+ assert_raise Test::Unit::AssertionFailedError do
117
+ assert_rejects @matcher, 'target', :message => /small time/
118
+ end
119
+ end
120
+
121
+ context "when given to assert_accepts" do
122
+ setup do
123
+ begin
124
+ assert_accepts @matcher, 'target'
125
+ rescue Test::Unit::AssertionFailedError => @error
126
+ end
127
+ end
128
+
129
+ should "fail" do
130
+ assert_not_nil @error
131
+ end
132
+
133
+ should "use the error message from the matcher" do
134
+ assert_equal 'big time failure', @error.message
135
+ end
136
+ end
137
+ end
138
+
139
+
140
+ context "a matcher using antiquated syntax" do
99
141
  setup do
100
142
  @matcher = stub('matcher', :matches? => false,
101
143
  :failure_message => 'big time failure',
@@ -33,7 +33,7 @@ class ShouldTest < Test::Unit::TestCase # :nodoc:
33
33
 
34
34
  def self.should_not_see_blah
35
35
  should "not see @blah through a macro" do
36
- assert_nil @blah
36
+ assert !instance_variable_defined?(:@blah)
37
37
  end
38
38
  end
39
39
 
@@ -141,6 +141,7 @@ class ShouldTest < Test::Unit::TestCase # :nodoc:
141
141
  assert_nothing_raised do
142
142
  parent = Shoulda::Context::Context.new("Parent", self) do; end
143
143
  child = Shoulda::Context::Context.new("Child", parent) do; end
144
+ raise unless child.instance_of? Shoulda::Context::Context
144
145
  end
145
146
  end
146
147
 
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shoulda-context
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
5
4
  prerelease:
5
+ version: 1.1.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - thoughtbot, inc.
@@ -14,56 +14,88 @@ authors:
14
14
  autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
- date: 2012-12-18 00:00:00.000000000 Z
17
+ date: 2013-04-01 00:00:00.000000000 Z
18
18
  dependencies:
19
19
  - !ruby/object:Gem::Dependency
20
- name: mocha
20
+ name: appraisal
21
+ type: :development
21
22
  requirement: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0.5'
22
27
  none: false
28
+ version_requirements: !ruby/object:Gem::Requirement
23
29
  requirements:
24
30
  - - ~>
25
31
  - !ruby/object:Gem::Version
26
- version: 0.9.10
27
- type: :development
32
+ version: '0.5'
33
+ none: false
28
34
  prerelease: false
35
+ - !ruby/object:Gem::Dependency
36
+ name: rails
37
+ type: :development
38
+ requirement: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - '='
41
+ - !ruby/object:Gem::Version
42
+ version: 3.2.9
43
+ none: false
29
44
  version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - '='
47
+ - !ruby/object:Gem::Version
48
+ version: 3.2.9
49
+ none: false
50
+ prerelease: false
51
+ - !ruby/object:Gem::Dependency
52
+ name: mocha
53
+ type: :development
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ~>
57
+ - !ruby/object:Gem::Version
58
+ version: 0.9.10
30
59
  none: false
60
+ version_requirements: !ruby/object:Gem::Requirement
31
61
  requirements:
32
62
  - - ~>
33
63
  - !ruby/object:Gem::Version
34
64
  version: 0.9.10
65
+ none: false
66
+ prerelease: false
35
67
  - !ruby/object:Gem::Dependency
36
68
  name: rake
69
+ type: :development
37
70
  requirement: !ruby/object:Gem::Requirement
38
- none: false
39
71
  requirements:
40
72
  - - ! '>='
41
73
  - !ruby/object:Gem::Version
42
74
  version: '0'
43
- type: :development
44
- prerelease: false
45
- version_requirements: !ruby/object:Gem::Requirement
46
75
  none: false
76
+ version_requirements: !ruby/object:Gem::Requirement
47
77
  requirements:
48
78
  - - ! '>='
49
79
  - !ruby/object:Gem::Version
50
80
  version: '0'
81
+ none: false
82
+ prerelease: false
51
83
  - !ruby/object:Gem::Dependency
52
84
  name: test-unit
85
+ type: :development
53
86
  requirement: !ruby/object:Gem::Requirement
54
- none: false
55
87
  requirements:
56
88
  - - ~>
57
89
  - !ruby/object:Gem::Version
58
90
  version: 2.1.0
59
- type: :development
60
- prerelease: false
61
- version_requirements: !ruby/object:Gem::Requirement
62
91
  none: false
92
+ version_requirements: !ruby/object:Gem::Requirement
63
93
  requirements:
64
94
  - - ~>
65
95
  - !ruby/object:Gem::Version
66
96
  version: 2.1.0
97
+ none: false
98
+ prerelease: false
67
99
  description: Context framework extracted from Shoulda
68
100
  email: support@thoughtbot.com
69
101
  executables:
@@ -72,12 +104,20 @@ extensions: []
72
104
  extra_rdoc_files: []
73
105
  files:
74
106
  - .gitignore
107
+ - .travis.yml
108
+ - Appraisals
75
109
  - CONTRIBUTING.md
76
110
  - Gemfile
77
111
  - MIT-LICENSE
78
112
  - README.md
79
113
  - Rakefile
80
114
  - bin/convert_to_should_syntax
115
+ - gemfiles/3.0.gemfile
116
+ - gemfiles/3.0.gemfile.lock
117
+ - gemfiles/3.1.gemfile
118
+ - gemfiles/3.1.gemfile.lock
119
+ - gemfiles/3.2.gemfile
120
+ - gemfiles/3.2.gemfile.lock
81
121
  - init.rb
82
122
  - lib/shoulda-context.rb
83
123
  - lib/shoulda/context.rb
@@ -103,26 +143,33 @@ files:
103
143
  - test/shoulda/should_test.rb
104
144
  - test/test_helper.rb
105
145
  homepage: http://thoughtbot.com/community/
106
- licenses: []
146
+ licenses:
147
+ - MIT
107
148
  post_install_message:
108
149
  rdoc_options: []
109
150
  require_paths:
110
151
  - lib
111
152
  required_ruby_version: !ruby/object:Gem::Requirement
112
- none: false
113
153
  requirements:
114
154
  - - ! '>='
115
155
  - !ruby/object:Gem::Version
156
+ segments:
157
+ - 0
158
+ hash: 2086514409947675977
116
159
  version: '0'
117
- required_rubygems_version: !ruby/object:Gem::Requirement
118
160
  none: false
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
119
162
  requirements:
120
163
  - - ! '>='
121
164
  - !ruby/object:Gem::Version
165
+ segments:
166
+ - 0
167
+ hash: 2086514409947675977
122
168
  version: '0'
169
+ none: false
123
170
  requirements: []
124
171
  rubyforge_project:
125
- rubygems_version: 1.8.24
172
+ rubygems_version: 1.8.23
126
173
  signing_key:
127
174
  specification_version: 3
128
175
  summary: Context framework extracted from Shoulda