Skip to content

Commit ef09c90

Browse files
committed
Small perf, readability refactor to Test::Serializer
1 parent 37a6d2b commit ef09c90

File tree

1 file changed

+12
-16
lines changed

1 file changed

+12
-16
lines changed

lib/active_model_serializers/test/serializer.rb

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
require 'set'
12
module ActiveModelSerializers
23
module Test
34
module Serializer
@@ -35,34 +36,29 @@ def assert_serializer(expectation, message = nil)
3536
end
3637

3738
class AssertSerializer
39+
EVENT_NAME = 'render.active_model_serializers'
3840
attr_reader :serializers, :message
3941
attr_accessor :response, :expectation
4042

4143
def initialize
42-
@serializers = []
44+
@serializers = Set.new
4345
end
4446

4547
def message=(message)
46-
@message = message || "expecting <#{expectation.inspect}> but rendering with <#{serializers}>"
48+
@message = message || "expecting <#{expectation.inspect}> but rendering with <#{serializers.to_a}>"
4749
end
4850

4951
def matches?
5052
# Force body to be read in case the template is being streamed.
5153
response.body
5254

5355
case expectation
54-
when a_serializer?
55-
matches_class?
56-
when Symbol
57-
matches_symbol?
58-
when String
59-
matches_string?
60-
when Regexp
61-
matches_regexp?
62-
when NilClass
63-
matches_nil?
64-
else
65-
fail ArgumentError, 'assert_serializer only accepts a String, Symbol, Regexp, ActiveModel::Serializer, or nil'
56+
when a_serializer? then matches_class?
57+
when Symbol then matches_symbol?
58+
when String then matches_string?
59+
when Regexp then matches_regexp?
60+
when NilClass then matches_nil?
61+
else fail ArgumentError, 'assert_serializer only accepts a String, Symbol, Regexp, ActiveModel::Serializer, or nil'
6662
end
6763
end
6864

@@ -99,15 +95,15 @@ def matches_regexp?
9995
end
10096

10197
def matches_nil?
102-
serializers.blank?
98+
serializers.empty?
10399
end
104100

105101
def a_serializer?
106102
->(exp) { exp.is_a?(Class) && exp < ActiveModel::Serializer }
107103
end
108104

109105
def event_name
110-
'render.active_model_serializers'
106+
EVENT_NAME
111107
end
112108
end
113109

0 commit comments

Comments
 (0)