Я хочу сопоставить некоторые данные из facebook в моем классе User. Теперь я прочитал несколько статей о наследовании, расширении, включая и т. Д. Но, может быть, я понимаю что-то не так. Это правильный подход к DataMapping в Ruby?Лучший способ отображения данных?
class User
attr_accessible :name, :address
def map_facebook
FacebookUserMapper.new(facebook_object, self)
end
end
class FacebookUserMapper
def initialize(facebook_user, user)
@facebook_user = facebook_user
@user = user
mapit
end
def self.map_it()
username
address
return @user
end
def username
@user.username = @facebook_user.name
end
def address
@user.address = @facebook_user.address
end
end
Это был мой первый подход. CodeClimate говорит, что это длинный метод, и я решил реорганизовать этот метод на небольшие. также лучше проводить тесты. – Jan
Вы вызываете mapit (метод класса) из конструктора через объект. Вы должны скорее назвать «self.class.mapit». И, приступив к тестированию, вы также можете выполнить тест для метода, который я дал. Это не длинный метод, если удалить «связанные с oauth детали» он будет меньше 6 строк. Не уверен, почему CodeClimate ссылается на другой длинный подход. –
Длинный метод пришел, потому что я собираюсь рядом со всеми параметрами из facebook ... – Jan