Skip to content

Commit

Permalink
Serializer instance methods don't change; track at class level
Browse files Browse the repository at this point in the history
  • Loading branch information
bf4 authored and João M. D. Moura committed Jan 19, 2016
1 parent f946271 commit bd3df5b
Showing 1 changed file with 10 additions and 11 deletions.
21 changes: 10 additions & 11 deletions lib/active_model/serializer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,15 @@ def self.get_serializer_for(klass)
end
end

def self._serializer_instance_method_defined?(name)
_serializer_instance_methods.include?(name)
end

def self._serializer_instance_methods
@_serializer_instance_methods ||= (public_instance_methods - Object.public_instance_methods).to_set
end
private_class_method :_serializer_instance_methods

attr_accessor :object, :root, :scope

# `scope_name` is set as :current_user by default in the controller.
Expand All @@ -209,7 +218,7 @@ def json_key
end

def read_attribute_for_serialization(attr)
if _serializer_method_defined?(attr)
if self.class._serializer_instance_method_defined?(attr)
send(attr)
elsif self.class._fragmented
self.class._fragmented.read_attribute_for_serialization(attr)
Expand All @@ -227,15 +236,5 @@ def links
protected

attr_accessor :instance_options

private

def _serializer_instance_methods
@_serializer_instance_methods ||= (public_methods - Object.public_instance_methods).to_set
end

def _serializer_method_defined?(name)
_serializer_instance_methods.include?(name)
end
end
end

0 comments on commit bd3df5b

Please sign in to comment.