ronin-support 0.5.1 → 0.5.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.
Files changed (194) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +11 -0
  3. data/.github/workflows/ruby.yml +28 -0
  4. data/.ruby-version +1 -0
  5. data/.yardopts +1 -1
  6. data/ChangeLog.md +28 -0
  7. data/Gemfile +6 -7
  8. data/README.md +53 -32
  9. data/Rakefile +1 -2
  10. data/gemspec.yml +16 -7
  11. data/lib/ronin/binary.rb +5 -5
  12. data/lib/ronin/binary/hexdump.rb +5 -5
  13. data/lib/ronin/binary/hexdump/parser.rb +5 -5
  14. data/lib/ronin/binary/struct.rb +5 -5
  15. data/lib/ronin/binary/template.rb +7 -7
  16. data/lib/ronin/extensions.rb +5 -5
  17. data/lib/ronin/extensions/enumerable.rb +5 -5
  18. data/lib/ronin/extensions/file.rb +37 -31
  19. data/lib/ronin/extensions/ip_addr.rb +6 -7
  20. data/lib/ronin/extensions/kernel.rb +5 -5
  21. data/lib/ronin/extensions/meta.rb +5 -5
  22. data/lib/ronin/extensions/regexp.rb +5 -5
  23. data/lib/ronin/extensions/resolv.rb +5 -5
  24. data/lib/ronin/extensions/string.rb +5 -5
  25. data/lib/ronin/formatting.rb +5 -5
  26. data/lib/ronin/formatting/binary.rb +5 -5
  27. data/lib/ronin/formatting/digest.rb +5 -5
  28. data/lib/ronin/formatting/extensions.rb +5 -5
  29. data/lib/ronin/formatting/extensions/binary.rb +5 -5
  30. data/lib/ronin/formatting/extensions/binary/array.rb +6 -6
  31. data/lib/ronin/formatting/extensions/binary/base64.rb +5 -5
  32. data/lib/ronin/formatting/extensions/binary/file.rb +5 -5
  33. data/lib/ronin/formatting/extensions/binary/float.rb +6 -6
  34. data/lib/ronin/formatting/extensions/binary/integer.rb +6 -6
  35. data/lib/ronin/formatting/extensions/binary/string.rb +6 -6
  36. data/lib/ronin/formatting/extensions/digest.rb +5 -5
  37. data/lib/ronin/formatting/extensions/digest/file.rb +5 -5
  38. data/lib/ronin/formatting/extensions/digest/string.rb +5 -5
  39. data/lib/ronin/formatting/extensions/html.rb +5 -5
  40. data/lib/ronin/formatting/extensions/html/integer.rb +5 -5
  41. data/lib/ronin/formatting/extensions/html/string.rb +7 -7
  42. data/lib/ronin/formatting/extensions/http.rb +5 -5
  43. data/lib/ronin/formatting/extensions/http/integer.rb +6 -6
  44. data/lib/ronin/formatting/extensions/http/string.rb +7 -7
  45. data/lib/ronin/formatting/extensions/sql.rb +5 -5
  46. data/lib/ronin/formatting/extensions/sql/string.rb +15 -13
  47. data/lib/ronin/formatting/extensions/text.rb +5 -5
  48. data/lib/ronin/formatting/extensions/text/array.rb +5 -5
  49. data/lib/ronin/formatting/extensions/text/string.rb +5 -5
  50. data/lib/ronin/formatting/html.rb +5 -5
  51. data/lib/ronin/formatting/http.rb +5 -5
  52. data/lib/ronin/formatting/sql.rb +5 -5
  53. data/lib/ronin/formatting/text.rb +5 -5
  54. data/lib/ronin/fuzzing.rb +5 -5
  55. data/lib/ronin/fuzzing/extensions.rb +5 -5
  56. data/lib/ronin/fuzzing/extensions/string.rb +5 -5
  57. data/lib/ronin/fuzzing/fuzzer.rb +5 -5
  58. data/lib/ronin/fuzzing/fuzzing.rb +7 -7
  59. data/lib/ronin/fuzzing/mutator.rb +5 -5
  60. data/lib/ronin/fuzzing/repeater.rb +5 -5
  61. data/lib/ronin/fuzzing/template.rb +5 -5
  62. data/lib/ronin/mixin.rb +2 -2
  63. data/lib/ronin/network.rb +5 -5
  64. data/lib/ronin/network/dns.rb +5 -5
  65. data/lib/ronin/network/esmtp.rb +5 -5
  66. data/lib/ronin/network/extensions.rb +5 -5
  67. data/lib/ronin/network/extensions/dns.rb +5 -5
  68. data/lib/ronin/network/extensions/dns/net.rb +5 -5
  69. data/lib/ronin/network/extensions/esmtp.rb +5 -5
  70. data/lib/ronin/network/extensions/esmtp/net.rb +5 -5
  71. data/lib/ronin/network/extensions/http.rb +5 -5
  72. data/lib/ronin/network/extensions/http/net.rb +5 -5
  73. data/lib/ronin/network/extensions/http/uri/http.rb +5 -5
  74. data/lib/ronin/network/extensions/imap.rb +5 -5
  75. data/lib/ronin/network/extensions/imap/net.rb +5 -5
  76. data/lib/ronin/network/extensions/pop3.rb +5 -5
  77. data/lib/ronin/network/extensions/pop3/net.rb +5 -5
  78. data/lib/ronin/network/extensions/smtp.rb +5 -5
  79. data/lib/ronin/network/extensions/smtp/net.rb +5 -5
  80. data/lib/ronin/network/extensions/ssl.rb +5 -5
  81. data/lib/ronin/network/extensions/ssl/net.rb +5 -5
  82. data/lib/ronin/network/extensions/tcp.rb +5 -5
  83. data/lib/ronin/network/extensions/tcp/net.rb +5 -5
  84. data/lib/ronin/network/extensions/telnet.rb +5 -5
  85. data/lib/ronin/network/extensions/telnet/net.rb +5 -5
  86. data/lib/ronin/network/extensions/udp.rb +5 -5
  87. data/lib/ronin/network/extensions/udp/net.rb +5 -5
  88. data/lib/ronin/network/ftp.rb +5 -5
  89. data/lib/ronin/network/http.rb +5 -5
  90. data/lib/ronin/network/http/exceptions.rb +5 -5
  91. data/lib/ronin/network/http/exceptions/unknown_request.rb +5 -5
  92. data/lib/ronin/network/http/http.rb +52 -57
  93. data/lib/ronin/network/http/proxy.rb +5 -5
  94. data/lib/ronin/network/imap.rb +5 -5
  95. data/lib/ronin/network/mixins.rb +5 -5
  96. data/lib/ronin/network/mixins/dns.rb +5 -5
  97. data/lib/ronin/network/mixins/esmtp.rb +5 -5
  98. data/lib/ronin/network/mixins/ftp.rb +5 -5
  99. data/lib/ronin/network/mixins/http.rb +7 -7
  100. data/lib/ronin/network/mixins/imap.rb +5 -5
  101. data/lib/ronin/network/mixins/mixin.rb +5 -5
  102. data/lib/ronin/network/mixins/pop3.rb +5 -5
  103. data/lib/ronin/network/mixins/smtp.rb +5 -5
  104. data/lib/ronin/network/mixins/ssl.rb +5 -5
  105. data/lib/ronin/network/mixins/tcp.rb +5 -5
  106. data/lib/ronin/network/mixins/telnet.rb +5 -5
  107. data/lib/ronin/network/mixins/udp.rb +5 -5
  108. data/lib/ronin/network/mixins/unix.rb +5 -5
  109. data/lib/ronin/network/network.rb +5 -5
  110. data/lib/ronin/network/pop3.rb +5 -5
  111. data/lib/ronin/network/proxy.rb +5 -5
  112. data/lib/ronin/network/smtp.rb +5 -5
  113. data/lib/ronin/network/smtp/email.rb +6 -6
  114. data/lib/ronin/network/smtp/smtp.rb +5 -5
  115. data/lib/ronin/network/ssl.rb +7 -7
  116. data/lib/ronin/network/tcp.rb +5 -5
  117. data/lib/ronin/network/tcp/proxy.rb +5 -5
  118. data/lib/ronin/network/tcp/tcp.rb +32 -23
  119. data/lib/ronin/network/telnet.rb +7 -5
  120. data/lib/ronin/network/udp.rb +5 -5
  121. data/lib/ronin/network/udp/proxy.rb +5 -5
  122. data/lib/ronin/network/udp/udp.rb +28 -26
  123. data/lib/ronin/network/unix.rb +7 -7
  124. data/lib/ronin/path.rb +32 -36
  125. data/lib/ronin/spec/ui/output.rb +5 -5
  126. data/lib/ronin/support.rb +5 -5
  127. data/lib/ronin/support/inflector.rb +5 -5
  128. data/lib/ronin/support/support.rb +5 -5
  129. data/lib/ronin/support/version.rb +6 -6
  130. data/lib/ronin/templates.rb +5 -5
  131. data/lib/ronin/templates/erb.rb +5 -5
  132. data/lib/ronin/templates/template.rb +5 -5
  133. data/lib/ronin/ui/output.rb +5 -5
  134. data/lib/ronin/ui/output/helpers.rb +5 -5
  135. data/lib/ronin/ui/output/output.rb +17 -21
  136. data/lib/ronin/ui/output/terminal.rb +5 -5
  137. data/lib/ronin/ui/output/terminal/color.rb +5 -5
  138. data/lib/ronin/ui/output/terminal/raw.rb +5 -5
  139. data/lib/ronin/ui/shell.rb +5 -5
  140. data/lib/ronin/wordlist.rb +7 -7
  141. data/ronin-support.gemspec +1 -0
  142. data/spec/binary/hexdump/parser_spec.rb +22 -22
  143. data/spec/binary/struct_spec.rb +56 -56
  144. data/spec/binary/template_spec.rb +106 -104
  145. data/spec/extensions/enumerable_spec.rb +4 -4
  146. data/spec/extensions/file_spec.rb +12 -14
  147. data/spec/extensions/ip_addr_spec.rb +30 -30
  148. data/spec/extensions/kernel_spec.rb +7 -7
  149. data/spec/extensions/regexp_spec.rb +69 -69
  150. data/spec/extensions/resolv_spec.rb +2 -2
  151. data/spec/extensions/string_spec.rb +30 -29
  152. data/spec/formatting/binary/array_spec.rb +2 -2
  153. data/spec/formatting/binary/base64_spec.rb +8 -8
  154. data/spec/formatting/binary/float_spec.rb +6 -4
  155. data/spec/formatting/binary/integer_spec.rb +25 -25
  156. data/spec/formatting/binary/string_spec.rb +32 -30
  157. data/spec/formatting/digest/string_spec.rb +5 -5
  158. data/spec/formatting/html/integer_spec.rb +6 -6
  159. data/spec/formatting/html/string_spec.rb +10 -10
  160. data/spec/formatting/http/integer_spec.rb +3 -3
  161. data/spec/formatting/http/string_spec.rb +5 -5
  162. data/spec/formatting/sql/string_spec.rb +21 -19
  163. data/spec/formatting/text/array_spec.rb +15 -15
  164. data/spec/formatting/text/string_spec.rb +33 -33
  165. data/spec/fuzzing/extensions/string_spec.rb +11 -11
  166. data/spec/fuzzing/fuzzer_spec.rb +15 -15
  167. data/spec/fuzzing/fuzzing_spec.rb +5 -5
  168. data/spec/fuzzing/mutator_spec.rb +15 -15
  169. data/spec/fuzzing/repeater_spec.rb +7 -7
  170. data/spec/fuzzing/template_spec.rb +11 -11
  171. data/spec/mixin_spec.rb +10 -12
  172. data/spec/network/dns_spec.rb +34 -32
  173. data/spec/network/ftp_spec.rb +9 -9
  174. data/spec/network/http/http_spec.rb +237 -144
  175. data/spec/network/http/proxy_spec.rb +37 -37
  176. data/spec/network/network_spec.rb +1 -1
  177. data/spec/network/proxy_spec.rb +19 -19
  178. data/spec/network/smtp/email_spec.rb +14 -14
  179. data/spec/network/ssl_spec.rb +9 -9
  180. data/spec/network/tcp/proxy_spec.rb +9 -7
  181. data/spec/network/tcp/tcp_spec.rb +161 -118
  182. data/spec/network/telnet_spec.rb +5 -5
  183. data/spec/network/udp/udp_spec.rb +123 -96
  184. data/spec/network/unix_spec.rb +24 -25
  185. data/spec/path_spec.rb +43 -18
  186. data/spec/spec_helper.rb +0 -1
  187. data/spec/support/inflector_spec.rb +4 -4
  188. data/spec/support_spec.rb +1 -1
  189. data/spec/templates/erb_spec.rb +3 -3
  190. data/spec/templates/template_spec.rb +10 -10
  191. data/spec/ui/shell_spec.rb +15 -15
  192. data/spec/wordlist_spec.rb +19 -19
  193. metadata +408 -366
  194. data/.gemtest +0 -0
@@ -3,19 +3,19 @@ require 'ronin/fuzzing/extensions/string'
3
3
 
4
4
  describe String do
5
5
  it "should provide String.generate" do
6
- described_class.should respond_to(:generate)
6
+ expect(described_class).to respond_to(:generate)
7
7
  end
8
8
 
9
9
  it "should provide String#repeating" do
10
- subject.should respond_to(:repeating)
10
+ expect(subject).to respond_to(:repeating)
11
11
  end
12
12
 
13
13
  it "should provide String#fuzz" do
14
- subject.should respond_to(:fuzz)
14
+ expect(subject).to respond_to(:fuzz)
15
15
  end
16
16
 
17
17
  it "should provide String#mutate" do
18
- subject.should respond_to(:mutate)
18
+ expect(subject).to respond_to(:mutate)
19
19
  end
20
20
 
21
21
  describe "generate" do
@@ -24,7 +24,7 @@ describe String do
24
24
  it "should generate Strings from a template" do
25
25
  strings = subject.generate([:numeric, 2]).to_a
26
26
 
27
- strings.grep(/^[0-9]{2}$/).should == strings
27
+ expect(strings.grep(/^[0-9]{2}$/)).to eq(strings)
28
28
  end
29
29
  end
30
30
 
@@ -35,7 +35,7 @@ describe String do
35
35
  let(:n) { 100 }
36
36
 
37
37
  it "should multiply the String by n" do
38
- subject.repeating(n).should == (subject * n)
38
+ expect(subject.repeating(n)).to eq(subject * n)
39
39
  end
40
40
  end
41
41
 
@@ -45,7 +45,7 @@ describe String do
45
45
  it "should repeat the String by each length" do
46
46
  strings = subject.repeating(n).to_a
47
47
 
48
- strings.should == n.map { |length| subject * length }
48
+ expect(strings).to eq(n.map { |length| subject * length })
49
49
  end
50
50
  end
51
51
  end
@@ -56,14 +56,14 @@ describe String do
56
56
  it "should apply each fuzzing rule individually" do
57
57
  strings = subject.fuzz(/o/ => ['O', '0'], /a/ => ['A', '@']).to_a
58
58
 
59
- strings.should =~ [
59
+ expect(strings).to match_array([
60
60
  "fOo bar",
61
61
  "f0o bar",
62
62
  "foO bar",
63
63
  "fo0 bar",
64
64
  "foo bAr",
65
65
  "foo b@r"
66
- ]
66
+ ])
67
67
  end
68
68
  end
69
69
 
@@ -73,7 +73,7 @@ describe String do
73
73
  it "should apply every combination of mutation rules" do
74
74
  strings = subject.mutate(/o/ => ['0'], /a/ => ['@']).to_a
75
75
 
76
- strings.should =~ [
76
+ expect(strings).to match_array([
77
77
  "f0o bar",
78
78
  "fo0 bar",
79
79
  "f00 bar",
@@ -81,7 +81,7 @@ describe String do
81
81
  "f0o b@r",
82
82
  "fo0 b@r",
83
83
  "f00 b@r"
84
- ]
84
+ ])
85
85
  end
86
86
  end
87
87
  end
@@ -13,14 +13,14 @@ describe Fuzzing::Fuzzer do
13
13
  it "should accept Regexps" do
14
14
  fuzzer = subject.new(/foo/ => substitutions)
15
15
 
16
- fuzzer.rules.should have_key(/foo/)
16
+ expect(fuzzer.rules).to have_key(/foo/)
17
17
  end
18
18
 
19
19
  context "when given Strings" do
20
20
  subject { described_class.new('foo' => substitutions) }
21
21
 
22
22
  it "should convert to Regexp" do
23
- subject.rules.should have_key(/foo/)
23
+ expect(subject.rules).to have_key(/foo/)
24
24
  end
25
25
  end
26
26
 
@@ -28,15 +28,15 @@ describe Fuzzing::Fuzzer do
28
28
  subject { described_class.new(:word => substitutions) }
29
29
 
30
30
  it "should lookup the Regexp constant" do
31
- subject.rules.should have_key(Regexp::WORD)
31
+ expect(subject.rules).to have_key(Regexp::WORD)
32
32
  end
33
33
  end
34
34
 
35
35
  context "otherwise" do
36
36
  it "should raise a TypeError" do
37
- lambda {
37
+ expect {
38
38
  subject.new(Object.new => substitutions)
39
- }.should raise_error(TypeError)
39
+ }.to raise_error(TypeError)
40
40
  end
41
41
  end
42
42
  end
@@ -47,22 +47,22 @@ describe Fuzzing::Fuzzer do
47
47
  it "should accept Enumerable values" do
48
48
  fuzzer = subject.new(pattern => ['bar'])
49
49
 
50
- fuzzer.rules[pattern].should == ['bar']
50
+ expect(fuzzer.rules[pattern]).to eq(['bar'])
51
51
  end
52
52
 
53
53
  context "when given Symbols" do
54
54
  subject { described_class.new(pattern => :bad_strings) }
55
55
 
56
56
  it "should map to an Enumerator for a Fuzzing method" do
57
- subject.rules[pattern].should be_kind_of(Enumerable)
57
+ expect(subject.rules[pattern]).to be_kind_of(Enumerable)
58
58
  end
59
59
  end
60
60
 
61
61
  context "otherwise" do
62
62
  it "should raise a TypeError" do
63
- lambda {
63
+ expect {
64
64
  subject.new(pattern => Object.new)
65
- }.should raise_error(TypeError)
65
+ }.to raise_error(TypeError)
66
66
  end
67
67
  end
68
68
  end
@@ -74,24 +74,24 @@ describe Fuzzing::Fuzzer do
74
74
  subject { described_class.new(/o/ => ['O', '0'], /a/ => ['A', '@']) }
75
75
 
76
76
  it "should apply each fuzzing rule individually" do
77
- subject.each(string).to_a.should =~ [
77
+ expect(subject.each(string).to_a).to match_array([
78
78
  "fOo bar",
79
79
  "f0o bar",
80
80
  "foO bar",
81
81
  "fo0 bar",
82
82
  "foo bAr",
83
83
  "foo b@r"
84
- ]
84
+ ])
85
85
  end
86
86
 
87
87
  context "when mutations contain Integers" do
88
88
  subject { described_class.new(/o/ => [48]) }
89
89
 
90
90
  it "should convert them to characters" do
91
- subject.each(string).to_a.should =~ [
91
+ expect(subject.each(string).to_a).to match_array([
92
92
  "f0o bar",
93
93
  "fo0 bar"
94
- ]
94
+ ])
95
95
  end
96
96
  end
97
97
 
@@ -99,10 +99,10 @@ describe Fuzzing::Fuzzer do
99
99
  subject { described_class.new(/o/ => [lambda { |str| str.upcase }]) }
100
100
 
101
101
  it "should call them with the matched String" do
102
- subject.each(string).to_a.should =~ [
102
+ expect(subject.each(string).to_a).to match_array([
103
103
  "fOo bar",
104
104
  "foO bar"
105
- ]
105
+ ])
106
106
  end
107
107
  end
108
108
  end
@@ -6,19 +6,19 @@ describe Fuzzing do
6
6
  let(:method) { :bad_strings }
7
7
 
8
8
  it "should return Enumerators for fuzzing methods" do
9
- subject[method].should be_kind_of(Enumerable)
9
+ expect(subject[method]).to be_kind_of(Enumerable)
10
10
  end
11
11
 
12
12
  it "should raise NoMethodError for unknown methods" do
13
- lambda {
13
+ expect {
14
14
  subject[:foo]
15
- }.should raise_error(NoMethodError)
15
+ }.to raise_error(NoMethodError)
16
16
  end
17
17
 
18
18
  it "should not allow accessing inherited methods" do
19
- lambda {
19
+ expect {
20
20
  subject[:instance_eval]
21
- }.should raise_error(NoMethodError)
21
+ }.to raise_error(NoMethodError)
22
22
  end
23
23
  end
24
24
  end
@@ -13,14 +13,14 @@ describe Fuzzing::Mutator do
13
13
  it "should accept Regexps" do
14
14
  fuzzer = subject.new(/foo/ => substitutions)
15
15
 
16
- fuzzer.rules.should have_key(/foo/)
16
+ expect(fuzzer.rules).to have_key(/foo/)
17
17
  end
18
18
 
19
19
  context "when given Strings" do
20
20
  subject { described_class.new('foo' => substitutions) }
21
21
 
22
22
  it "should convert to Regexp" do
23
- subject.rules.should have_key(/foo/)
23
+ expect(subject.rules).to have_key(/foo/)
24
24
  end
25
25
  end
26
26
 
@@ -28,15 +28,15 @@ describe Fuzzing::Mutator do
28
28
  subject { described_class.new(:word => substitutions) }
29
29
 
30
30
  it "should lookup the Regexp constant" do
31
- subject.rules.should have_key(Regexp::WORD)
31
+ expect(subject.rules).to have_key(Regexp::WORD)
32
32
  end
33
33
  end
34
34
 
35
35
  context "otherwise" do
36
36
  it "should raise a TypeError" do
37
- lambda {
37
+ expect {
38
38
  subject.new(Object.new => substitutions)
39
- }.should raise_error(TypeError)
39
+ }.to raise_error(TypeError)
40
40
  end
41
41
  end
42
42
  end
@@ -47,22 +47,22 @@ describe Fuzzing::Mutator do
47
47
  it "should accept Enumerable values" do
48
48
  fuzzer = subject.new(pattern => ['bar'])
49
49
 
50
- fuzzer.rules[pattern].should == ['bar']
50
+ expect(fuzzer.rules[pattern]).to eq(['bar'])
51
51
  end
52
52
 
53
53
  context "when given Symbols" do
54
54
  subject { described_class.new(pattern => :bad_strings) }
55
55
 
56
56
  it "should map to an Enumerator for a Fuzzing method" do
57
- subject.rules[pattern].should be_kind_of(Enumerable)
57
+ expect(subject.rules[pattern]).to be_kind_of(Enumerable)
58
58
  end
59
59
  end
60
60
 
61
61
  context "otherwise" do
62
62
  it "should raise a TypeError" do
63
- lambda {
63
+ expect {
64
64
  subject.new(pattern => Object.new)
65
- }.should raise_error(TypeError)
65
+ }.to raise_error(TypeError)
66
66
  end
67
67
  end
68
68
  end
@@ -74,7 +74,7 @@ describe Fuzzing::Mutator do
74
74
  subject { described_class.new(/o/ => ['0'], /a/ => ['@']) }
75
75
 
76
76
  it "should apply every combination of mutation rules" do
77
- subject.each(string).to_a.should =~ [
77
+ expect(subject.each(string).to_a).to match_array([
78
78
  "f0o bar",
79
79
  "fo0 bar",
80
80
  "f00 bar",
@@ -82,18 +82,18 @@ describe Fuzzing::Mutator do
82
82
  "f0o b@r",
83
83
  "fo0 b@r",
84
84
  "f00 b@r"
85
- ]
85
+ ])
86
86
  end
87
87
 
88
88
  context "when mutations contain Integers" do
89
89
  subject { described_class.new(/o/ => [48]) }
90
90
 
91
91
  it "should convert them to characters" do
92
- subject.each(string).to_a.should =~ [
92
+ expect(subject.each(string).to_a).to match_array([
93
93
  "f0o bar",
94
94
  "fo0 bar",
95
95
  "f00 bar"
96
- ]
96
+ ])
97
97
  end
98
98
  end
99
99
 
@@ -101,11 +101,11 @@ describe Fuzzing::Mutator do
101
101
  subject { described_class.new(/o/ => [lambda { |str| str.upcase }]) }
102
102
 
103
103
  it "should call them with the matched String" do
104
- subject.each(string).to_a.should =~ [
104
+ expect(subject.each(string).to_a).to match_array([
105
105
  "fOo bar",
106
106
  "foO bar",
107
107
  "fOO bar"
108
- ]
108
+ ])
109
109
  end
110
110
  end
111
111
  end
@@ -9,15 +9,15 @@ describe Fuzzing::Repeater do
9
9
  it "should coerce lengths to an Enumerable" do
10
10
  repeator = subject.new(10)
11
11
 
12
- repeator.lengths.should be_kind_of(Enumerable)
12
+ expect(repeator.lengths).to be_kind_of(Enumerable)
13
13
  end
14
14
  end
15
15
 
16
16
  context "when lengths is not Enumerable or an Integer" do
17
17
  it "should raise a TypeError" do
18
- lambda {
18
+ expect {
19
19
  subject.new(Object.new)
20
- }.should raise_error(TypeError)
20
+ }.to raise_error(TypeError)
21
21
  end
22
22
  end
23
23
  end
@@ -33,7 +33,7 @@ describe Fuzzing::Repeater do
33
33
  it "should yield one repeated value" do
34
34
  values = subject.each(repeatable).to_a
35
35
 
36
- values.should == [repeatable * length]
36
+ expect(values).to eq([repeatable * length])
37
37
  end
38
38
  end
39
39
 
@@ -43,14 +43,14 @@ describe Fuzzing::Repeater do
43
43
  subject { described_class.new(lengths) }
44
44
 
45
45
  it "should yield repeated values for each length" do
46
- values = subject.each(repeatable).to_a.should
46
+ values = subject.each(repeatable).to_a
47
47
 
48
- values.should == [
48
+ expect(values).to eq([
49
49
  repeatable * 1,
50
50
  repeatable * 2,
51
51
  repeatable * 3,
52
52
  repeatable * 4
53
- ]
53
+ ])
54
54
  end
55
55
  end
56
56
  end
@@ -7,48 +7,48 @@ describe Fuzzing::Template do
7
7
  it "should generate Strings from CharSets" do
8
8
  strings = subject.new([:lowercase_hexadecimal, :numeric]).to_a
9
9
 
10
- strings.grep(/^[0-9a-f][0-9]$/).should == strings
10
+ expect(strings.grep(/^[0-9a-f][0-9]$/)).to eq(strings)
11
11
  end
12
12
 
13
13
  it "should generate Strings from lengths of CharSets" do
14
14
  strings = subject.new([[:numeric, 2]]).to_a
15
15
 
16
- strings.grep(/^[0-9]{2}$/).should == strings
16
+ expect(strings.grep(/^[0-9]{2}$/)).to eq(strings)
17
17
  end
18
18
 
19
19
  it "should generate Strings from varying lengths of CharSets" do
20
20
  strings = subject.new([[:numeric, 1..2]]).to_a
21
21
 
22
- strings.grep(/^[0-9]{1,2}$/).should == strings
22
+ expect(strings.grep(/^[0-9]{1,2}$/)).to eq(strings)
23
23
  end
24
24
 
25
25
  it "should generate Strings from custom CharSets" do
26
26
  strings = subject.new([[%w[a b c], 2]]).to_a
27
27
 
28
- strings.grep(/^[abc]{2}$/).should == strings
28
+ expect(strings.grep(/^[abc]{2}$/)).to eq(strings)
29
29
  end
30
30
 
31
31
  it "should generate Strings containing known Strings" do
32
32
  strings = subject.new(['foo', [%w[a b c], 2]]).to_a
33
33
 
34
- strings.grep(/^foo[abc]{2}$/).should == strings
34
+ expect(strings.grep(/^foo[abc]{2}$/)).to eq(strings)
35
35
  end
36
36
 
37
37
  it "should raise a TypeError for non String, Symbol, Enumerable CharSets" do
38
- lambda {
38
+ expect {
39
39
  subject.new([[Object.new, 2]]).to_a
40
- }.should raise_error(TypeError)
40
+ }.to raise_error(TypeError)
41
41
  end
42
42
 
43
43
  it "should raise an ArgumentError for unknown CharSets" do
44
- lambda {
44
+ expect {
45
45
  subject.new([[:foo_bar, 2]]).to_a
46
- }.should raise_error(ArgumentError)
46
+ }.to raise_error(ArgumentError)
47
47
  end
48
48
 
49
49
  it "should raise a TypeError for non Integer,Array,Range lengths" do
50
- lambda {
50
+ expect {
51
51
  subject.new([[:numeric, 'foo']]).to_a
52
- }.should raise_error(TypeError)
52
+ }.to raise_error(TypeError)
53
53
  end
54
54
  end
data/spec/mixin_spec.rb CHANGED
@@ -20,34 +20,32 @@ describe Mixin do
20
20
  end
21
21
 
22
22
  context "when included" do
23
- before(:all) do
24
- @base = Class.new
25
- @base.send :include, subject
23
+ let(:klass) do
24
+ Class.new.tap { |klass| klass.send :include, subject }
26
25
  end
27
26
 
28
27
  it "should include the mixed in modules" do
29
- @base.should include(Mixins::Test1)
30
- @base.should include(Mixins::Test2)
28
+ expect(klass).to include(Mixins::Test1)
29
+ expect(klass).to include(Mixins::Test2)
31
30
  end
32
31
 
33
32
  it "should evaluate the mixin block" do
34
- @base.instance_variable_get("@var").should == 1
33
+ expect(klass.instance_variable_get("@var")).to eq(1)
35
34
  end
36
35
  end
37
36
 
38
37
  context "when extended" do
39
- before(:all) do
40
- @base = Object.new
41
- @base.send :extend, subject
38
+ let(:object) do
39
+ Object.new.tap { |obj| obj.extend(subject) }
42
40
  end
43
41
 
44
42
  it "should extend the mixed in modules" do
45
- @base.should be_kind_of(Mixins::Test1)
46
- @base.should be_kind_of(Mixins::Test2)
43
+ expect(object).to be_kind_of(Mixins::Test1)
44
+ expect(object).to be_kind_of(Mixins::Test2)
47
45
  end
48
46
 
49
47
  it "should evaluate the mixin block" do
50
- @base.instance_variable_get("@var").should == 1
48
+ expect(object.instance_variable_get("@var")).to eq(1)
51
49
  end
52
50
  end
53
51
  end