super_diff 0.6.2 → 0.7.0

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.
@@ -188,10 +188,12 @@ RSpec.describe "Integration with RSpec's #eq matcher", type: :integration do
188
188
  expectation: proc {
189
189
  line do
190
190
  plain %|Expected |
191
- actual %|2011-12-13 14:15:16.000 UTC +00:00 (Time)|
192
- plain %| to eq |
193
- expected %|2011-12-13 14:15:16.500 UTC +00:00 (Time)|
194
- plain %|.|
191
+ actual %|#<Time 2011-12-13 14:15:16 +00:00 (UTC)>|
192
+ end
193
+
194
+ line do
195
+ plain %| to eq |
196
+ expected %|#<Time 2011-12-13 14:15:16+(1/2) +00:00 (UTC)>|
195
197
  end
196
198
  },
197
199
  diff: proc {
@@ -202,10 +204,10 @@ RSpec.describe "Integration with RSpec's #eq matcher", type: :integration do
202
204
  plain_line " hour: 14,"
203
205
  plain_line " min: 15,"
204
206
  plain_line " sec: 16,"
205
- expected_line "- nsec: 500000000,"
206
- actual_line "+ nsec: 0,"
207
+ expected_line "- subsec: (1/2),"
208
+ actual_line "+ subsec: 0,"
207
209
  plain_line " zone: \"UTC\","
208
- plain_line " gmt_offset: 0"
210
+ plain_line " utc_offset: 0"
209
211
  plain_line " }>"
210
212
  },
211
213
  )
@@ -234,12 +236,12 @@ RSpec.describe "Integration with RSpec's #eq matcher", type: :integration do
234
236
  expectation: proc {
235
237
  line do
236
238
  plain %| Expected |
237
- actual %|2011-12-13 14:15:16.000 UTC +00:00 (Time)|
239
+ actual %|#<Time 2011-12-13 14:15:16 +00:00 (UTC)>|
238
240
  end
239
241
 
240
242
  line do
241
243
  plain %|not to eq |
242
- expected %|2011-12-13 14:15:16.000 UTC +00:00 (Time)|
244
+ expected %|#<Time 2011-12-13 14:15:16 +00:00 (UTC)>|
243
245
  end
244
246
  },
245
247
  )
@@ -270,31 +272,41 @@ RSpec.describe "Integration with RSpec's #eq matcher", type: :integration do
270
272
  expectation: proc {
271
273
  line do
272
274
  plain %|Expected |
273
- actual %|2011-12-13 14:15:16.000 UTC +00:00 (Time)|
275
+ actual %|#<Time 2011-12-13 14:15:16 +00:00 (UTC)>|
274
276
  end
275
277
 
276
278
  line do
277
279
  plain %| to eq |
278
- expected %|2011-12-13 16:15:16.000 CET +01:00 (ActiveSupport::TimeWithZone)|
280
+ expected %|#<ActiveSupport::TimeWithZone 2011-12-13 16:15:16 +01:00 (CET)>|
279
281
  end
280
282
  },
281
283
  diff: proc {
282
- plain_line " #<ActiveSupport::TimeWithZone {"
283
- plain_line " year: 2011,"
284
- plain_line " month: 12,"
285
- plain_line " day: 13,"
286
- expected_line "- hour: 16,"
287
- actual_line "+ hour: 14,"
288
- plain_line " min: 15,"
289
- plain_line " sec: 16,"
290
- plain_line " nsec: 0,"
291
- expected_line "- zone: \"CET\","
292
- actual_line "+ zone: \"UTC\","
293
- expected_line "- gmt_offset: 3600,"
294
- actual_line "+ gmt_offset: 0,"
295
- expected_line "- utc: 2011-12-13 15:15:16.000 UTC +00:00 (Time)"
296
- actual_line "+ utc: 2011-12-13 14:15:16.000 UTC +00:00 (Time)"
297
- plain_line " }>"
284
+ plain_line %| #<ActiveSupport::TimeWithZone {|
285
+ plain_line %| year: 2011,|
286
+ plain_line %| month: 12,|
287
+ plain_line %| day: 13,|
288
+ expected_line %|- hour: 16,|
289
+ actual_line %|+ hour: 14,|
290
+ plain_line %| min: 15,|
291
+ plain_line %| sec: 16,|
292
+ plain_line %| subsec: 0,|
293
+ expected_line %|- zone: \"CET\",|
294
+ actual_line %|+ zone: \"UTC\",|
295
+ expected_line %|- utc_offset: 3600,|
296
+ actual_line %|+ utc_offset: 0,|
297
+ plain_line %| utc: #<Time {|
298
+ plain_line %| year: 2011,|
299
+ plain_line %| month: 12,|
300
+ plain_line %| day: 13,|
301
+ expected_line %|- hour: 15,|
302
+ actual_line %|+ hour: 14,|
303
+ plain_line %| min: 15,|
304
+ plain_line %| sec: 16,|
305
+ plain_line %| subsec: 0,|
306
+ plain_line %| zone: "UTC",|
307
+ plain_line %| utc_offset: 0|
308
+ plain_line %| }>|
309
+ plain_line %| }>|
298
310
  },
299
311
  )
300
312
 
@@ -411,7 +411,17 @@ RSpec.describe "Integration with RSpec's #have_attributes matcher", type: :integ
411
411
  expected_line %|- data: #<a hash including (|
412
412
  expected_line %|- active: true|
413
413
  expected_line %|- )>,|
414
- expected_line %|- created_at: #<a value within 1 of 2020-04-09 00:00:00.000 UTC +00:00 (Time)>|
414
+ expected_line %|- created_at: #<a value within 1 of #<Time {|
415
+ expected_line %|- year: 2020,|
416
+ expected_line %|- month: 4,|
417
+ expected_line %|- day: 9,|
418
+ expected_line %|- hour: 0,|
419
+ expected_line %|- min: 0,|
420
+ expected_line %|- sec: 0,|
421
+ expected_line %|- subsec: 0,|
422
+ expected_line %|- zone: "UTC",|
423
+ expected_line %|- utc_offset: 0|
424
+ expected_line %|- }>>|
415
425
  plain_line %| }|
416
426
  },
417
427
  )
@@ -341,6 +341,48 @@ RSpec.describe "Integration with RSpec's #match matcher", type: :integration do
341
341
  end
342
342
  end
343
343
 
344
+ # HINT: `a_hash_including` is an alias of `include` in the rspec-expectations gem.
345
+ # `hash_including` is an argument matcher in the rspec-mocks gem.
346
+ context "when the expected value is `hash-including-<something>`, not `a-hash-including-<something>`" do
347
+ it "produces the correct failure message" do
348
+ as_both_colored_and_uncolored do |color_enabled|
349
+ snippet = <<~TEST.strip
350
+ expected = hash_including(city: "Hill Valley")
351
+ actual = { city: "Burbank" }
352
+ expect(actual).to match(expected)
353
+ TEST
354
+ program = make_plain_test_program(
355
+ snippet,
356
+ color_enabled: color_enabled,
357
+ )
358
+
359
+ expected_output = build_expected_output(
360
+ color_enabled: color_enabled,
361
+ snippet: %|expect(actual).to match(expected)|,
362
+ expectation: proc {
363
+ line do
364
+ plain %|Expected |
365
+ actual %|{ city: "Burbank" }|
366
+ plain %| to match |
367
+ expected %|#<a hash including (city: "Hill Valley")>|
368
+ plain %|.|
369
+ end
370
+ },
371
+ diff: proc {
372
+ plain_line %| {|
373
+ expected_line %|- city: "Hill Valley"|
374
+ actual_line %|+ city: "Burbank"|
375
+ plain_line %| }|
376
+ },
377
+ )
378
+
379
+ expect(program).
380
+ to produce_output_when_run(expected_output).
381
+ in_color(color_enabled)
382
+ end
383
+ end
384
+ end
385
+
344
386
  context "when the expected value is a collection-including-<something>" do
345
387
  context "that is small" do
346
388
  it "produces the correct failure message when used in the positive" do
@@ -647,6 +689,47 @@ RSpec.describe "Integration with RSpec's #match matcher", type: :integration do
647
689
  end
648
690
  end
649
691
 
692
+ context "when the expected value is an array-including-<something>" do
693
+ it "produces the correct failure message" do
694
+ as_both_colored_and_uncolored do |color_enabled|
695
+ snippet = <<~TEST.strip
696
+ expected = array_including("a")
697
+ actual = ["b"]
698
+ expect(actual).to match(expected)
699
+ TEST
700
+ program = make_plain_test_program(
701
+ snippet,
702
+ color_enabled: color_enabled,
703
+ )
704
+
705
+ expected_output = build_expected_output(
706
+ color_enabled: color_enabled,
707
+ snippet: %|expect(actual).to match(expected)|,
708
+ expectation: proc {
709
+ line do
710
+ plain %|Expected |
711
+ actual %|["b"]|
712
+ plain %| to match |
713
+ expected %|#<a collection including ("a")>|
714
+ plain %|.|
715
+ end
716
+ },
717
+ diff: proc {
718
+ plain_line %| [|
719
+ plain_line %| "b"|
720
+ # expected_line %|- "a",| # FIXME
721
+ expected_line %|- "a"|
722
+ plain_line %| ]|
723
+ },
724
+ )
725
+
726
+ expect(program).
727
+ to produce_output_when_run(expected_output).
728
+ in_color(color_enabled)
729
+ end
730
+ end
731
+ end
732
+
650
733
  context "when the expected value is an object-having-attributes" do
651
734
  context "that is small" do
652
735
  it "produces the correct failure message when used in the positive" do
data/spec/spec_helper.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require "pp"
2
+
1
3
  begin
2
4
  require "pry-byebug"
3
5
  rescue LoadError
@@ -8,7 +10,7 @@ begin
8
10
  rescue LoadError
9
11
  end
10
12
 
11
- require "pp"
13
+ require "climate_control"
12
14
 
13
15
  #---
14
16
 
@@ -1166,8 +1166,8 @@ RSpec.describe SuperDiff::EqualityMatchers::Main do
1166
1166
  is_translation_enabled: false,
1167
1167
  profile_background_color: "FFF1E0",
1168
1168
  profile_background_image_url_https: "https://abs.twimg.com/images/themes/theme1/bg.png",
1169
- profile_background_tile: false,
1170
1169
  profile_banner_url: "https://pbs.twimg.com/profile_banners/18949452/1581526592",
1170
+ profile_background_tile: false,
1171
1171
  }
1172
1172
  )
1173
1173
 
@@ -1177,7 +1177,7 @@ RSpec.describe SuperDiff::EqualityMatchers::Main do
1177
1177
  #{
1178
1178
  colored do
1179
1179
  expected_line %(Expected: { created_at: "Tue Jan 13 19:28:24 +0000 2009", favourites_count: 38, geo_enabled: false, verified: true, media_count: 51044, statuses_count: 273860, contributors_enabled: false, profile_background_image_url_https: "https://abs.twimg.com/images/themes/theme1/bg.png", profile_background_color: "FFF1E0", profile_background_tile: false, profile_image_url: "http://pbs.twimg.com/profile_images/931156393108885504/EqEMtLhM_normal.jpg", listed_count: 37009, profile_banner_url: "https://pbs.twimg.com/profile_banners/18949452/1581526592" })
1180
- actual_line %( Actual: { listed_count: 37009, created_at: "Tue Jan 13 19:28:24 +0000 2009", favourites_count: 38, utc_offset: nil, statuses_count: 273860, media_count: 51044, contributors_enabled: false, is_translator: false, is_translation_enabled: false, profile_background_color: "FFF1E0", profile_background_image_url_https: "https://abs.twimg.com/images/themes/theme1/bg.png", profile_background_tile: false, profile_banner_url: "https://pbs.twimg.com/profile_banners/18949452/1581526592" })
1180
+ actual_line %( Actual: { listed_count: 37009, created_at: "Tue Jan 13 19:28:24 +0000 2009", favourites_count: 38, utc_offset: nil, statuses_count: 273860, media_count: 51044, contributors_enabled: false, is_translator: false, is_translation_enabled: false, profile_background_color: "FFF1E0", profile_background_image_url_https: "https://abs.twimg.com/images/themes/theme1/bg.png", profile_banner_url: "https://pbs.twimg.com/profile_banners/18949452/1581526592", profile_background_tile: false })
1181
1181
  end
1182
1182
  }
1183
1183
 
@@ -1199,9 +1199,9 @@ RSpec.describe SuperDiff::EqualityMatchers::Main do
1199
1199
  actual_line %(+ is_translation_enabled: false,)
1200
1200
  plain_line %( profile_background_color: "FFF1E0",)
1201
1201
  plain_line %( profile_background_image_url_https: "https://abs.twimg.com/images/themes/theme1/bg.png",)
1202
- plain_line %( profile_background_tile: false,)
1203
1202
  expected_line %(- profile_image_url: "http://pbs.twimg.com/profile_images/931156393108885504/EqEMtLhM_normal.jpg",)
1204
- plain_line %( profile_banner_url: "https://pbs.twimg.com/profile_banners/18949452/1581526592")
1203
+ plain_line %( profile_banner_url: "https://pbs.twimg.com/profile_banners/18949452/1581526592",)
1204
+ plain_line %( profile_background_tile: false)
1205
1205
  plain_line %( })
1206
1206
  end
1207
1207
  }
@@ -430,6 +430,84 @@ RSpec.describe SuperDiff do
430
430
  end
431
431
  end
432
432
 
433
+ context "given a Time object" do
434
+ context "that does not have an associated time zone" do
435
+ context "given as_single_line: true" do
436
+ it "returns a representation of the time on a single line" do
437
+ inspection = described_class.inspect_object(
438
+ Time.new(2021, 5, 5, 10, 23, 28.1234567891, "-05:00"),
439
+ as_single_line: true,
440
+ )
441
+ expect(inspection).to eq(
442
+ "#<Time 2021-05-05 10:23:28+(34749996836695/281474976710656) -05:00>"
443
+ )
444
+ end
445
+ end
446
+
447
+ context "given as_single_line: false" do
448
+ it "returns a representation of the time across multiple lines" do
449
+ inspection = described_class.inspect_object(
450
+ Time.new(2021, 5, 5, 10, 23, 28.1234567891, "-05:00"),
451
+ as_single_line: false,
452
+ )
453
+ expect(inspection).to eq(<<~INSPECTION.rstrip)
454
+ #<Time {
455
+ year: 2021,
456
+ month: 5,
457
+ day: 5,
458
+ hour: 10,
459
+ min: 23,
460
+ sec: 28,
461
+ subsec: (34749996836695/281474976710656),
462
+ zone: nil,
463
+ utc_offset: -18000
464
+ }>
465
+ INSPECTION
466
+ end
467
+ end
468
+ end
469
+
470
+ context "that has an associated time zone" do
471
+ around do |example|
472
+ ClimateControl.modify(TZ: 'America/Chicago', &example)
473
+ end
474
+
475
+ context "given as_single_line: true" do
476
+ it "returns a representation of the time on a single line" do
477
+ inspection = described_class.inspect_object(
478
+ Time.new(2021, 5, 5, 10, 23, 28.1234567891),
479
+ as_single_line: true,
480
+ )
481
+ expect(inspection).to eq(
482
+ "#<Time 2021-05-05 10:23:28+(34749996836695/281474976710656) -05:00 (CDT)>"
483
+ )
484
+ end
485
+ end
486
+
487
+ context "given as_single_line: false" do
488
+ it "returns a representation of the time across multiple lines" do
489
+ inspection = described_class.inspect_object(
490
+ Time.new(2021, 5, 5, 10, 23, 28.1234567891),
491
+ as_single_line: false,
492
+ )
493
+ expect(inspection).to eq(<<~INSPECTION.rstrip)
494
+ #<Time {
495
+ year: 2021,
496
+ month: 5,
497
+ day: 5,
498
+ hour: 10,
499
+ min: 23,
500
+ sec: 28,
501
+ subsec: (34749996836695/281474976710656),
502
+ zone: "CDT",
503
+ utc_offset: -18000
504
+ }>
505
+ INSPECTION
506
+ end
507
+ end
508
+ end
509
+ end
510
+
433
511
  context "given a class" do
434
512
  context "given as_single_line: true" do
435
513
  it "returns a representation of the object on a single line" do
@@ -842,21 +920,31 @@ RSpec.describe SuperDiff do
842
920
  )
843
921
 
844
922
  expect(inspection).to eq(
845
- %(#<a value within 1 of 2020-04-09 00:00:00.000 UTC +00:00 (Time)>),
923
+ %(#<a value within 1 of #<Time 2020-04-09 00:00:00 +00:00 (UTC)>>),
846
924
  )
847
925
  end
848
926
  end
849
927
 
850
928
  context "given as_single_line: false" do
851
- it "returns a representation of the object on a single line" do
929
+ it "returns a representation of the object across multiple lines" do
852
930
  inspection = described_class.inspect_object(
853
931
  a_value_within(1).of(Time.utc(2020, 4, 9)),
854
932
  as_single_line: false,
855
933
  )
856
934
 
857
- expect(inspection).to eq(
858
- %(#<a value within 1 of 2020-04-09 00:00:00.000 UTC +00:00 (Time)>),
859
- )
935
+ expect(inspection).to eq(<<~INSPECTION.rstrip)
936
+ #<a value within 1 of #<Time {
937
+ year: 2020,
938
+ month: 4,
939
+ day: 9,
940
+ hour: 0,
941
+ min: 0,
942
+ sec: 0,
943
+ subsec: 0,
944
+ zone: "UTC",
945
+ utc_offset: 0
946
+ }>>
947
+ INSPECTION
860
948
  end
861
949
  end
862
950
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super_diff
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elliot Winkler
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-17 00:00:00.000000000 Z
11
+ date: 2021-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: attr_extras
@@ -223,7 +223,6 @@ files:
223
223
  - lib/super_diff/rspec/operation_tree_builders/hash_including.rb
224
224
  - lib/super_diff/rspec/operation_tree_builders/object_having_attributes.rb
225
225
  - lib/super_diff/version.rb
226
- - spec/combustion/Gemfile.lock
227
226
  - spec/examples.txt
228
227
  - spec/integration/rails/active_record_spec.rb
229
228
  - spec/integration/rails/hash_with_indifferent_access_spec.rb
@@ -291,7 +290,7 @@ homepage: https://github.com/mcmire/super_diff
291
290
  licenses:
292
291
  - MIT
293
292
  metadata: {}
294
- post_install_message:
293
+ post_install_message:
295
294
  rdoc_options: []
296
295
  require_paths:
297
296
  - lib
@@ -309,8 +308,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
309
308
  - !ruby/object:Gem::Version
310
309
  version: '0'
311
310
  requirements: []
312
- rubygems_version: 3.1.2
313
- signing_key:
311
+ rubyforge_project:
312
+ rubygems_version: 2.7.6.3
313
+ signing_key:
314
314
  specification_version: 4
315
315
  summary: A better way to view differences between complex data structures in RSpec.
316
316
  test_files:
@@ -376,4 +376,3 @@ test_files:
376
376
  - spec/support/colorizer.rb
377
377
  - spec/support/shared_examples/hash_with_indifferent_access.rb
378
378
  - spec/support/shared_examples/active_record.rb
379
- - spec/combustion/Gemfile.lock
@@ -1,173 +0,0 @@
1
- GEM
2
- remote: https://rubygems.org/
3
- specs:
4
- actioncable (6.1.2.1)
5
- actionpack (= 6.1.2.1)
6
- activesupport (= 6.1.2.1)
7
- nio4r (~> 2.0)
8
- websocket-driver (>= 0.6.1)
9
- actionmailbox (6.1.2.1)
10
- actionpack (= 6.1.2.1)
11
- activejob (= 6.1.2.1)
12
- activerecord (= 6.1.2.1)
13
- activestorage (= 6.1.2.1)
14
- activesupport (= 6.1.2.1)
15
- mail (>= 2.7.1)
16
- actionmailer (6.1.2.1)
17
- actionpack (= 6.1.2.1)
18
- actionview (= 6.1.2.1)
19
- activejob (= 6.1.2.1)
20
- activesupport (= 6.1.2.1)
21
- mail (~> 2.5, >= 2.5.4)
22
- rails-dom-testing (~> 2.0)
23
- actionpack (6.1.2.1)
24
- actionview (= 6.1.2.1)
25
- activesupport (= 6.1.2.1)
26
- rack (~> 2.0, >= 2.0.9)
27
- rack-test (>= 0.6.3)
28
- rails-dom-testing (~> 2.0)
29
- rails-html-sanitizer (~> 1.0, >= 1.2.0)
30
- actiontext (6.1.2.1)
31
- actionpack (= 6.1.2.1)
32
- activerecord (= 6.1.2.1)
33
- activestorage (= 6.1.2.1)
34
- activesupport (= 6.1.2.1)
35
- nokogiri (>= 1.8.5)
36
- actionview (6.1.2.1)
37
- activesupport (= 6.1.2.1)
38
- builder (~> 3.1)
39
- erubi (~> 1.4)
40
- rails-dom-testing (~> 2.0)
41
- rails-html-sanitizer (~> 1.1, >= 1.2.0)
42
- activejob (6.1.2.1)
43
- activesupport (= 6.1.2.1)
44
- globalid (>= 0.3.6)
45
- activemodel (6.1.2.1)
46
- activesupport (= 6.1.2.1)
47
- activerecord (6.1.2.1)
48
- activemodel (= 6.1.2.1)
49
- activesupport (= 6.1.2.1)
50
- activestorage (6.1.2.1)
51
- actionpack (= 6.1.2.1)
52
- activejob (= 6.1.2.1)
53
- activerecord (= 6.1.2.1)
54
- activesupport (= 6.1.2.1)
55
- marcel (~> 0.3.1)
56
- mimemagic (~> 0.3.2)
57
- activesupport (6.1.2.1)
58
- concurrent-ruby (~> 1.0, >= 1.0.2)
59
- i18n (>= 1.6, < 2)
60
- minitest (>= 5.1)
61
- tzinfo (~> 2.0)
62
- zeitwerk (~> 2.3)
63
- attr_extras (6.2.4)
64
- builder (3.2.4)
65
- combustion (1.3.1)
66
- activesupport (>= 3.0.0)
67
- railties (>= 3.0.0)
68
- thor (>= 0.14.6)
69
- concurrent-ruby (1.1.8)
70
- crass (1.0.6)
71
- diff-lcs (1.4.4)
72
- erubi (1.10.0)
73
- globalid (0.4.2)
74
- activesupport (>= 4.2.0)
75
- i18n (1.8.8)
76
- concurrent-ruby (~> 1.0)
77
- loofah (2.9.0)
78
- crass (~> 1.0.2)
79
- nokogiri (>= 1.5.9)
80
- mail (2.7.1)
81
- mini_mime (>= 0.1.1)
82
- marcel (0.3.3)
83
- mimemagic (~> 0.3.2)
84
- method_source (1.0.0)
85
- mimemagic (0.3.5)
86
- mini_mime (1.0.2)
87
- mini_portile2 (2.5.0)
88
- minitest (5.14.3)
89
- nio4r (2.5.5)
90
- nokogiri (1.11.1)
91
- mini_portile2 (~> 2.5.0)
92
- racc (~> 1.4)
93
- patience_diff (1.1.0)
94
- trollop (~> 1.16)
95
- racc (1.5.2)
96
- rack (2.2.3)
97
- rack-test (1.1.0)
98
- rack (>= 1.0, < 3)
99
- rails (6.1.2.1)
100
- actioncable (= 6.1.2.1)
101
- actionmailbox (= 6.1.2.1)
102
- actionmailer (= 6.1.2.1)
103
- actionpack (= 6.1.2.1)
104
- actiontext (= 6.1.2.1)
105
- actionview (= 6.1.2.1)
106
- activejob (= 6.1.2.1)
107
- activemodel (= 6.1.2.1)
108
- activerecord (= 6.1.2.1)
109
- activestorage (= 6.1.2.1)
110
- activesupport (= 6.1.2.1)
111
- bundler (>= 1.15.0)
112
- railties (= 6.1.2.1)
113
- sprockets-rails (>= 2.0.0)
114
- rails-dom-testing (2.0.3)
115
- activesupport (>= 4.2.0)
116
- nokogiri (>= 1.6)
117
- rails-html-sanitizer (1.3.0)
118
- loofah (~> 2.3)
119
- railties (6.1.2.1)
120
- actionpack (= 6.1.2.1)
121
- activesupport (= 6.1.2.1)
122
- method_source
123
- rake (>= 0.8.7)
124
- thor (~> 1.0)
125
- rake (13.0.3)
126
- rspec-core (3.10.1)
127
- rspec-support (~> 3.10.0)
128
- rspec-expectations (3.10.1)
129
- diff-lcs (>= 1.2.0, < 2.0)
130
- rspec-support (~> 3.10.0)
131
- rspec-mocks (3.10.2)
132
- diff-lcs (>= 1.2.0, < 2.0)
133
- rspec-support (~> 3.10.0)
134
- rspec-rails (4.0.2)
135
- actionpack (>= 4.2)
136
- activesupport (>= 4.2)
137
- railties (>= 4.2)
138
- rspec-core (~> 3.10)
139
- rspec-expectations (~> 3.10)
140
- rspec-mocks (~> 3.10)
141
- rspec-support (~> 3.10)
142
- rspec-support (3.10.2)
143
- sprockets (4.0.2)
144
- concurrent-ruby (~> 1.0)
145
- rack (> 1, < 3)
146
- sprockets-rails (3.2.2)
147
- actionpack (>= 4.0)
148
- activesupport (>= 4.0)
149
- sprockets (>= 3.0.0)
150
- super_diff (0.5.3)
151
- attr_extras (>= 6.2.4)
152
- diff-lcs
153
- patience_diff
154
- thor (1.1.0)
155
- trollop (1.16.2)
156
- tzinfo (2.0.4)
157
- concurrent-ruby (~> 1.0)
158
- websocket-driver (0.7.3)
159
- websocket-extensions (>= 0.1.0)
160
- websocket-extensions (0.1.5)
161
- zeitwerk (2.4.2)
162
-
163
- PLATFORMS
164
- ruby
165
-
166
- DEPENDENCIES
167
- combustion
168
- rails
169
- rspec-rails
170
- super_diff (= 0.5.3)
171
-
172
- BUNDLED WITH
173
- 2.1.4