grape-roar
grape-roar copied to clipboard
Add support for documentation fields
Grape exposures give you entity_name
, exposures
and documentation
. We can add those for out-of-the-box support for https://github.com/tim-vandecasteele/grape-swagger.
module Grape
module Roar
module Representer
def self.included(base)
base.extend(ClassMethods)
end
module ClassMethods
def entity_name
self.name.split('::').last.gsub(/Presenter$/, '')
end
def exposures
{}
end
def documentation
Hash[representable_attrs.map do |attribute|
property_name = attribute[:as].evaluate nil, nil
next if property_name == '_links'
[ property_name, { desc: attribute[:desc], type: attribute[:type] }]
end.compact]
end
end
end
end
end