From 0c91564101ab61fb17d7365ec6e8ef847c48850a Mon Sep 17 00:00:00 2001 From: Santiago Pastorino Date: Fri, 5 Jul 2013 22:12:25 -0700 Subject: [PATCH] Remove method redefined warning --- lib/active_model/serializer.rb | 6 ++++-- test/fixtures/poro.rb | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 20c58e4a..7ce3f061 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -20,8 +20,10 @@ module ActiveModel @_attributes = attrs.map(&:to_s) attrs.each do |attr| - define_method attr do - object.read_attribute_for_serialization(attr) + unless method_defined?(attr) + define_method attr do + object.read_attribute_for_serialization(attr) + end end end end diff --git a/test/fixtures/poro.rb b/test/fixtures/poro.rb index 4a143013..1b70ee4a 100644 --- a/test/fixtures/poro.rb +++ b/test/fixtures/poro.rb @@ -11,8 +11,6 @@ class Model end class ModelSerializer < ActiveModel::Serializer - attributes :attr1, :attr2 - def attr2 attr2 = object.read_attribute_for_serialization(:attr2) if scope @@ -21,4 +19,6 @@ class ModelSerializer < ActiveModel::Serializer attr2 end end + + attributes :attr1, :attr2 end