1
- require 'pry-byebug'
1
+ # frozen_string_literal: true
2
+
3
+ begin
4
+ require 'pry-byebug'
5
+ rescue LoadError
6
+ end
7
+
2
8
require 'representable'
3
9
4
10
require 'minitest/autorun'
5
11
require 'test_xml/mini_test'
6
12
7
- require " representable/debug"
13
+ require ' representable/debug'
8
14
require 'minitest/assertions'
9
15
10
- module MiniTest ::Assertions
11
- def assert_equal_xml ( text , subject )
12
- assert_equal ( text . gsub ( "\n " , "" ) . gsub ( /(\s \s +)/ , "" ) ) , subject . gsub ( "\n " , "" ) . gsub ( /(\s \s +)/ , "" )
16
+ module MiniTest
17
+ module Assertions
18
+ def assert_equal_xml ( text , subject )
19
+ assert_equal text . gsub ( "\n " , '' ) . gsub ( /(\s \s +)/ , '' ) , subject . gsub ( "\n " , '' ) . gsub ( /(\s \s +)/ , '' )
20
+ end
13
21
end
14
22
end
15
23
String . infect_an_assertion :assert_equal_xml , :must_xml
16
24
17
25
# TODO: delete all that in 4.0:
18
26
class Album
19
27
attr_accessor :songs , :best_song
20
- def initialize ( songs = nil , best_song = nil )
28
+
29
+ def initialize ( songs = nil , best_song = nil )
21
30
@songs = songs
22
31
@best_song = best_song
23
32
end
@@ -29,7 +38,8 @@ def ==(other)
29
38
30
39
class Song
31
40
attr_accessor :name , :track # never change this, track rendered with Rails#to_json.
32
- def initialize ( name = nil , track = nil )
41
+
42
+ def initialize ( name = nil , track = nil )
33
43
@name = name
34
44
@track = track
35
45
end
@@ -47,9 +57,9 @@ def xml(document)
47
57
48
58
module AssertJson
49
59
module Assertions
50
- def assert_json ( expected , actual , msg = nil )
51
- msg = message ( msg , "" ) { diff expected , actual }
52
- assert_equal ( expected . split ( "" ) . sort , actual . split ( "" ) . sort , msg )
60
+ def assert_json ( expected , actual , msg = nil )
61
+ msg = message ( msg , '' ) { diff expected , actual }
62
+ assert_equal ( expected . split ( '' ) . sort , actual . split ( '' ) . sort , msg )
53
63
end
54
64
end
55
65
end
@@ -77,16 +87,18 @@ class AssertableDocument
77
87
attr_reader :document
78
88
79
89
def initialize ( document , format )
80
- @document , @format = document , format
90
+ @document = document
91
+ @format = format
81
92
end
82
93
83
94
def must_equal_document ( *args )
84
95
return document . must_equal_xml ( *args ) if @format == :xml
96
+
85
97
document . must_equal ( *args )
86
98
end
87
99
end
88
100
89
- def self . representer! ( options = { } , &block )
101
+ def self . representer! ( options = { } , &block )
90
102
fmt = options # we need that so the 2nd call to ::let(within a ::describe) remembers the right format.
91
103
92
104
name = options [ :name ] || :representer
@@ -119,25 +131,29 @@ def inject_representer(mod, options)
119
131
end
120
132
121
133
module TestMethods
122
- def representer_for ( modules = [ Representable ::Hash ] , &block )
134
+ def representer_for ( modules = [ Representable ::Hash ] , &block )
123
135
Module . new do
124
136
extend TestMethods
125
137
include ( *modules )
126
138
module_exec ( &block )
127
139
end
128
140
end
129
141
130
- alias_method : representer!, : representer_for
142
+ alias representer! representer_for
131
143
end
132
144
include TestMethods
133
145
end
134
146
135
147
class BaseTest < MiniTest ::Spec
136
148
let ( :new_album ) { OpenStruct . new . extend ( representer ) }
137
- let ( :album ) { OpenStruct . new ( :songs => [ "Fuck Armageddon" ] ) . extend ( representer ) }
138
- let ( :song ) { OpenStruct . new ( :title => "Resist Stance" ) }
139
- let ( :song_representer ) { Module . new do include Representable ::Hash ; property :title end }
140
-
149
+ let ( :album ) { OpenStruct . new ( songs : [ 'Fuck Armageddon' ] ) . extend ( representer ) }
150
+ let ( :song ) { OpenStruct . new ( title : 'Resist Stance' ) }
151
+ let ( :song_representer ) do
152
+ Module . new do
153
+ include Representable ::Hash
154
+ property :title
155
+ end
156
+ end
141
157
end
142
158
143
159
Band = Struct . new ( :id , :name ) do
0 commit comments