Skip to content

Any easier way for rendering custom properties #155

Description

@PikachuEXE

I am using cells (concept cells)
So I kind of expect support for similar syntax in representable
But this is what I need for rendering a controller loaded neighbourhoods (with a city):

class MyRepresenter < Roar::Decorator
          include Roar::JSON

          self.representation_wrap = :city

          collection :neighbourhoods, getter: -> (args) {
            args[:neighbourhoods]
          } do
            property :name
          end
end

MyRepresenter.new(city).to_json(neighbourhoods: my_custom_neighbourhoods)

I kind of expect

class MyRepresenter < Roar::Decorator
          include Roar::JSON
          include Roar::SomeMagicModule # :P

          self.representation_wrap = :city

          collection :neighbourhoods do
            property :name
          end

          private

          def neighbourhoods
             args[:neighbourhoods] # Still not the best form but still better than setting a lambda in option
          end
end

MyRepresenter.new(city, neighbourhoods: my_custom_neighbourhoods)

I understand the class might also used for parsing input
But is there anyway to NOT use option to get custom input?
Or I should use a custom class (e.g. Struct) for carrying the data into the representer?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions