shared_should 0.8.1 → 0.8.2
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/VERSION +1 -1
- data/lib/shared_should.rb +37 -14
- data/shared_should.gemspec +2 -2
- data/test/test_shared_should.rb +10 -3
- data/test/test_shared_should_helper.rb +0 -1
- metadata +10 -10
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.2
|
data/lib/shared_should.rb
CHANGED
@@ -1,25 +1,51 @@
|
|
1
1
|
require 'shoulda'
|
2
2
|
|
3
|
+
# Ruby 1.9 with MiniTest
|
4
|
+
if defined?(MiniTest::Unit::TestCase)
|
5
|
+
class MiniTest::Unit::TestCase
|
6
|
+
class << self
|
7
|
+
# these methods need to be aliased for both the test class and the should context
|
8
|
+
alias_method :test_suites_without_shared_should_execute, :test_suites
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.test_suites
|
12
|
+
Test::Unit::TestCase.execute_class_shared_proxies
|
13
|
+
|
14
|
+
test_suites_without_shared_should_execute
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# Ruby 1.8 without MiniTest
|
20
|
+
if defined?(Test::Unit::TestCase.suite)
|
21
|
+
class Test::Unit::TestCase
|
22
|
+
class << self
|
23
|
+
# these methods need to be aliased for both the test class and the should context
|
24
|
+
alias_method :suite_without_shared_should_execute, :suite
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.suite
|
28
|
+
# assuming 'suite' is called before executing any tests - may be a poor assumption. Find something better?
|
29
|
+
execute_class_shared_proxies
|
30
|
+
|
31
|
+
suite_without_shared_should_execute
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
|
3
37
|
class Test::Unit::TestCase
|
4
38
|
attr_accessor :shared_value
|
5
39
|
@@shared_proxies_executed = {}
|
6
40
|
@@setup_blocks = {}
|
7
41
|
|
8
|
-
|
9
|
-
# these methods need to be aliased for both the test class and the should context
|
10
|
-
alias_method :suite_without_shared_should_execute, :suite
|
11
|
-
end
|
12
|
-
|
13
|
-
def self.suite
|
14
|
-
# assuming 'suite' is called before executing any tests - may be a poor assumption. Find something better?
|
42
|
+
def self.execute_class_shared_proxies
|
15
43
|
unless @@shared_proxies_executed[self]
|
16
44
|
shared_proxies.each do |shared_proxy|
|
17
45
|
shared_proxy.share_execute
|
18
46
|
end
|
19
47
|
@@shared_proxies_executed[self] = true
|
20
48
|
end
|
21
|
-
|
22
|
-
suite_without_shared_should_execute
|
23
49
|
end
|
24
50
|
|
25
51
|
def self.shared_context_block_owner(context_or_test_class)
|
@@ -327,7 +353,8 @@ class Shoulda::SharedProxy
|
|
327
353
|
end
|
328
354
|
|
329
355
|
# share_description called when creating test names
|
330
|
-
|
356
|
+
self.instance_variable_set("@share_description", shared_proxy.send(:test_description))
|
357
|
+
def self.share_description; @share_description; end
|
331
358
|
merge_block(&shared_proxy.test_block)
|
332
359
|
end
|
333
360
|
else
|
@@ -342,10 +369,6 @@ class Shoulda::SharedProxy
|
|
342
369
|
|
343
370
|
private
|
344
371
|
|
345
|
-
def escaped_test_description
|
346
|
-
test_description.nil? ? 'nil' : "'#{test_description.gsub('\\', '\\\\\\').gsub("'", "\\\\'")}'"
|
347
|
-
end
|
348
|
-
|
349
372
|
def setup_block_configs_description
|
350
373
|
@setup_block_configs_description
|
351
374
|
end
|
data/shared_should.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{shared_should}
|
8
|
-
s.version = "0.8.
|
8
|
+
s.version = "0.8.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Michael Pearce"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-11-30}
|
13
13
|
s.description = %q{Share and reuse shoulds, contexts, and setup in Shoulda.}
|
14
14
|
s.email = %q{michael.pearce@bookrenter.com}
|
15
15
|
s.extra_rdoc_files = [
|
data/test/test_shared_should.rb
CHANGED
@@ -490,9 +490,16 @@ class TestSharedShould < Test::Unit::TestCase
|
|
490
490
|
hash[expected_method_name] = true
|
491
491
|
hash
|
492
492
|
end
|
493
|
-
|
494
|
-
|
495
|
-
|
493
|
+
if defined?(self.class.suite)
|
494
|
+
actual_method_names = self.class.suite.tests.inject({}) do |hash, test_case|
|
495
|
+
hash[test_case.method_name] = true
|
496
|
+
hash
|
497
|
+
end
|
498
|
+
else
|
499
|
+
actual_method_names = self.class.test_methods.inject({}) do |hash, method_name|
|
500
|
+
hash[method_name] = true
|
501
|
+
hash
|
502
|
+
end
|
496
503
|
end
|
497
504
|
|
498
505
|
actual_methods_not_found = []
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shared_should
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 59
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 0.8.
|
9
|
+
- 2
|
10
|
+
version: 0.8.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Pearce
|
@@ -15,11 +15,10 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-11-30 00:00:00 -08:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
name: shoulda
|
23
22
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
24
23
|
none: false
|
25
24
|
requirements:
|
@@ -32,8 +31,8 @@ dependencies:
|
|
32
31
|
prerelease: false
|
33
32
|
type: :development
|
34
33
|
requirement: *id001
|
34
|
+
name: shoulda
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
|
-
name: bundler
|
37
36
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
38
37
|
none: false
|
39
38
|
requirements:
|
@@ -48,8 +47,8 @@ dependencies:
|
|
48
47
|
prerelease: false
|
49
48
|
type: :development
|
50
49
|
requirement: *id002
|
50
|
+
name: bundler
|
51
51
|
- !ruby/object:Gem::Dependency
|
52
|
-
name: jeweler
|
53
52
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
53
|
none: false
|
55
54
|
requirements:
|
@@ -64,8 +63,8 @@ dependencies:
|
|
64
63
|
prerelease: false
|
65
64
|
type: :development
|
66
65
|
requirement: *id003
|
66
|
+
name: jeweler
|
67
67
|
- !ruby/object:Gem::Dependency
|
68
|
-
name: rcov
|
69
68
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
70
69
|
none: false
|
71
70
|
requirements:
|
@@ -78,8 +77,8 @@ dependencies:
|
|
78
77
|
prerelease: false
|
79
78
|
type: :development
|
80
79
|
requirement: *id004
|
80
|
+
name: rcov
|
81
81
|
- !ruby/object:Gem::Dependency
|
82
|
-
name: shoulda
|
83
82
|
version_requirements: &id005 !ruby/object:Gem::Requirement
|
84
83
|
none: false
|
85
84
|
requirements:
|
@@ -92,8 +91,8 @@ dependencies:
|
|
92
91
|
prerelease: false
|
93
92
|
type: :runtime
|
94
93
|
requirement: *id005
|
95
|
-
- !ruby/object:Gem::Dependency
|
96
94
|
name: shoulda
|
95
|
+
- !ruby/object:Gem::Dependency
|
97
96
|
version_requirements: &id006 !ruby/object:Gem::Requirement
|
98
97
|
none: false
|
99
98
|
requirements:
|
@@ -106,6 +105,7 @@ dependencies:
|
|
106
105
|
prerelease: false
|
107
106
|
type: :development
|
108
107
|
requirement: *id006
|
108
|
+
name: shoulda
|
109
109
|
description: Share and reuse shoulds, contexts, and setup in Shoulda.
|
110
110
|
email: michael.pearce@bookrenter.com
|
111
111
|
executables: []
|