module GraphqlRails::Decorator
adds `.decorate` class method to any class. Handy when using with paginated responses
usage: class FriendDecorator < SimpleDecorator
include GraphqlRails::Decorator graphql.attribute :full_name
end
class User
has_many :friends graphql.attribute :decorated_friends, paginated: true, type: 'FriendDecorator!' def decorated_friends FriendDecorator.decorate(friends) end
end
Public Instance Methods
decorate(object, *args)
click to toggle source
# File lib/graphql_rails/decorator.rb, line 28 def decorate(object, *args) if Decorator::RelationDecorator.decorates?(object) Decorator::RelationDecorator.new(relation: object, decorator: self, decorator_args: args) elsif object.nil? nil elsif object.is_a?(Array) object.map { |item| new(item, *args) } else new(object, *args) end end