power_assert 1.1.0 → 1.1.1

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: 1444d874d5d014e20312a4644073d9fc166211ff
4
- data.tar.gz: 3be96faed9006385ebd30d2d6694aaead254c426
3
+ metadata.gz: 94700e701d6e70078cff18ec8db5689ebcb69fc1
4
+ data.tar.gz: cf854f8bb406169ccf8b22869d77b8320191a07c
5
5
  SHA512:
6
- metadata.gz: 4f19ff06f13f40abb6f4f70516618634b5b5131e2e4119fa8430ff857b01f17e82330ec9e6477b545a4d1641476e4949f0125ccd0b2fddf81ff13f09241351a8
7
- data.tar.gz: 2f9b2f75d552b3c25bbbab548d8990bbcfb540b00e35ab9a57a987f6125cb497c79dc475c31f88a1ed4a057f9e61797c08258957fecdfa0ab11c2474e7d8c3a8
6
+ metadata.gz: 52ee0c7f1fb5ea27e42f64c99160e71d54ab3ca8787f703d173a340c98bccb0a0f5fc322c96c97ec99c0f04f6cabd664e4cae1085653c47e34a25c1de71a49db
7
+ data.tar.gz: def9341626a182f990d568a67fb8970d004644dfe0d48d89daef2671fa87e18c6f48099594c237130da74e4d762a9f38c9af723f86fd443ebdea19e189505509
@@ -23,4 +23,52 @@ Use following test frameworks or extensions instead.
23
23
  == Reference
24
24
  * {Power Assert in Ruby (at RubyKaigi 2014) // Speaker Deck}[https://speakerdeck.com/k_tsj/power-assert-in-ruby]
25
25
 
26
+ == Known Limitations
27
+ * Expressions must be put in one line. Expressions with folded long lines produce nothing report, e.g.:
28
+ assert do
29
+ # reported
30
+ func(foo: 0123456789, bar: "abcdefg")
31
+ end
32
+
33
+ assert do
34
+ # won't be reported
35
+ func(foo: 0123456789,
36
+ bar: "abcdefg")
37
+ end
38
+ * Expressions must have one or more method call. Expressions with no method call produce nothing report, e.g.:
39
+ val = false
40
+ assert do
41
+ # reported
42
+ val == true
43
+ end
44
+
45
+ assert do
46
+ # won't be reported
47
+ val
48
+ end
49
+ * Returned values from accessor methods, method missing, or "super" produce nothing report, e.g:
50
+ class Foo
51
+ attr_accessor :val
52
+ end
53
+ foo = Foo.new
54
+ foo.val = false
55
+
56
+ assert do
57
+ # reported (only the value of "foo" and the literal "true")
58
+ foo.val == true
59
+ end
60
+
61
+ assert do
62
+ # won't be reported
63
+ foo.val
64
+ end
65
+ * Expressions should not have conditional branches. Expressions with such conditional codes may produce nothing report, e.g.:
66
+ condition = true
67
+ expected = false
68
+ actual = true
69
+ assert do
70
+ # this will fail but nothing reported
71
+ condition ? expected == actual : expected == actual
72
+ end
73
+
26
74
  == Travis Build Status {<img src="https://secure.travis-ci.org/k-tsj/power_assert.png?branch=master"/>}[http://travis-ci.org/k-tsj/power_assert]
@@ -76,7 +76,13 @@ module PowerAssert
76
76
  vals = (return_values + ref_values).find_all(&:column).sort_by(&:column).reverse
77
77
  return line if vals.empty?
78
78
 
79
- fmt = (0..vals[0].column).map {|i| vals.find {|v| v.column == i } ? "%<#{i}>s" : ' ' }.join
79
+ fmt = (0..vals[0].column).map do |i|
80
+ if vals.find {|v| v.column == i }
81
+ "%<#{i}>s"
82
+ else
83
+ line[i] == "\t" ? "\t" : ' '
84
+ end
85
+ end.join
80
86
  lines = []
81
87
  lines << line.chomp
82
88
  lines << sprintf(fmt, vals.each_with_object({}) {|v, h| h[v.column.to_s.to_sym] = '|' }).chomp
@@ -139,12 +139,15 @@ module PowerAssert
139
139
  (tag3 == :@ident or tag3 == :@const) and mname == @assertion_method_name and (tag4 == :brace_block or tag4 == :do_block)
140
140
  ss.flat_map {|s| extract_idents(s) }
141
141
  else
142
- _, (s, *) = sexp
143
- extract_idents(s)
142
+ _, (s0, *) = sexp
143
+ extract_idents(s0)
144
144
  end
145
145
  when :ifop
146
146
  _, s0, s1, s2 = sexp
147
147
  [*extract_idents(s0), Branch[extract_idents(s1), extract_idents(s2)]]
148
+ when :if, :unless
149
+ _, s0, ss0, (_, ss1) = sexp
150
+ [*extract_idents(s0), Branch[ss0.flat_map {|s| extract_idents(s) }, ss1 ? ss1.flat_map {|s| extract_idents(s) } : []]]
148
151
  when :if_mod, :unless_mod
149
152
  _, s0, s1 = sexp
150
153
  [*extract_idents(s0), Branch[extract_idents(s1), []]]
@@ -1,3 +1,3 @@
1
1
  module PowerAssert
2
- VERSION = "1.1.0"
2
+ VERSION = "1.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: power_assert
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kazuki Tsujimoto
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-08-19 00:00:00.000000000 Z
11
+ date: 2017-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: test-unit