1- require 'pry-byebug'
1+ # frozen_string_literal: true
2+
3+ begin
4+ require 'pry-byebug'
5+ rescue LoadError
6+ end
7+
28require 'representable'
39
410require 'minitest/autorun'
511require 'test_xml/mini_test'
612
7- require " representable/debug"
13+ require ' representable/debug'
814require 'minitest/assertions'
915
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
1321 end
1422end
1523String . infect_an_assertion :assert_equal_xml , :must_xml
1624
1725# TODO: delete all that in 4.0:
1826class Album
1927 attr_accessor :songs , :best_song
20- def initialize ( songs = nil , best_song = nil )
28+
29+ def initialize ( songs = nil , best_song = nil )
2130 @songs = songs
2231 @best_song = best_song
2332 end
@@ -29,7 +38,8 @@ def ==(other)
2938
3039class Song
3140 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 )
3343 @name = name
3444 @track = track
3545 end
@@ -47,9 +57,9 @@ def xml(document)
4757
4858module AssertJson
4959 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 )
5363 end
5464 end
5565end
@@ -77,16 +87,18 @@ class AssertableDocument
7787 attr_reader :document
7888
7989 def initialize ( document , format )
80- @document , @format = document , format
90+ @document = document
91+ @format = format
8192 end
8293
8394 def must_equal_document ( *args )
8495 return document . must_equal_xml ( *args ) if @format == :xml
96+
8597 document . must_equal ( *args )
8698 end
8799 end
88100
89- def self . representer! ( options = { } , &block )
101+ def self . representer! ( options = { } , &block )
90102 fmt = options # we need that so the 2nd call to ::let(within a ::describe) remembers the right format.
91103
92104 name = options [ :name ] || :representer
@@ -119,25 +131,29 @@ def inject_representer(mod, options)
119131 end
120132
121133 module TestMethods
122- def representer_for ( modules = [ Representable ::Hash ] , &block )
134+ def representer_for ( modules = [ Representable ::Hash ] , &block )
123135 Module . new do
124136 extend TestMethods
125137 include ( *modules )
126138 module_exec ( &block )
127139 end
128140 end
129141
130- alias_method : representer!, : representer_for
142+ alias representer! representer_for
131143 end
132144 include TestMethods
133145end
134146
135147class BaseTest < MiniTest ::Spec
136148 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
141157end
142158
143159Band = Struct . new ( :id , :name ) do
0 commit comments