minitest-bang 1.0.4 → 1.1.0.beta

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9ba29e21e6c4caef88885884164781f6f5bf4b01
4
- data.tar.gz: 9044189d6f029e6d266831d212ae607ae1f1c474
3
+ metadata.gz: ea4ee63404be924d6133aab08acd463921c03856
4
+ data.tar.gz: c1f6123c3f2b89944dabc9adbd846e4a679177ba
5
5
  SHA512:
6
- metadata.gz: 59102e3c4f089ae5ffa0fb31a8b7b9fc593a3297b415b644767989fc79d65f91e830e87b75081585ef9f33d2785bc9094d6813bf9a4ca447c8f316ea432837f3
7
- data.tar.gz: 4dfdcf5b28e147f158ad707c8318ae74158f69ed82904b8fbd33c0433f851091570e8332ba7dc3cd14685ed2a2d562009cd38eafd04a96d98ff34944f83d0490
6
+ metadata.gz: fdfdb293e730ae6a2c27d3e64bd8a7d0c0f74df5936dac514fa9f17098f2795c8cbd69e9248af853ed2071aec86c07e3cb04b715a4c9cad5024abd2e3ffea5e6
7
+ data.tar.gz: 5fa6be9fca4b4bc91d8332cf40ed272af605318a382c9ecf09fa076c8e3131a58fcef2acb00c67700a447df18a4243694fa63b15f210bdfbde9e67a4b6d08325
data/lib/minitest/bang.rb CHANGED
@@ -5,9 +5,7 @@ module Minitest
5
5
  module Bang
6
6
  def before_setup
7
7
  super
8
- self.class.bangs.each do |bang|
9
- send(bang)
10
- end
8
+ self.class.all_bangs.each(&method(:send))
11
9
  end
12
10
  end
13
11
 
data/lib/minitest/dsl.rb CHANGED
@@ -3,21 +3,45 @@ require 'minitest/spec'
3
3
 
4
4
  module Minitest
5
5
  module Spec::DSL
6
- def bangs
7
- @bangs ||= Set.new
8
- @bangs = @bangs + bangs_from_parent_scope
9
- end
10
6
 
11
7
  def let!(name, &block)
12
8
  let(name, &block)
13
9
  bangs << name
14
10
  end
15
11
 
12
+ def all_bangs
13
+ return Set.new if @before_ran
14
+ bangs + bangs_from_parent_scope
15
+ end
16
+
16
17
  private
17
18
 
19
+ def bangs
20
+ @bangs ||= Set.new
21
+ end
22
+
23
+ def before_with_bangs(_type=nil, &block)
24
+ @before_ran = true
25
+
26
+ before_bangs = Set.new(bangs + bangs_from_parent_scope)
27
+ bangs.clear
28
+ after_bangs = bangs
29
+
30
+ block_with_bangs = ->(arg) do
31
+ before_bangs.each(&method(:send))
32
+ self.instance_exec(arg, &block)
33
+ after_bangs.each(&method(:send))
34
+ end
35
+
36
+ before_without_bangs(_type, &block_with_bangs)
37
+ end
38
+
39
+ alias_method :before_without_bangs, :before
40
+ alias_method :before, :before_with_bangs
41
+
18
42
  def bangs_from_parent_scope
19
- return Set.new unless defined? self.superclass.bangs
20
- self.superclass.bangs
43
+ return Set.new unless defined? self.superclass.all_bangs
44
+ self.superclass.all_bangs
21
45
  end
22
46
  end
23
47
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-bang
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 1.1.0.beta
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kyle Stevens
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-05-17 00:00:00.000000000 Z
13
+ date: 2015-06-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rake
@@ -77,9 +77,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
77
77
  version: '0'
78
78
  required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - ">"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: 1.3.1
83
83
  requirements: []
84
84
  rubyforge_project:
85
85
  rubygems_version: 2.4.6