power_assert 1.1.0 → 1.1.1

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.
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