Module: Trailblazer::Operation::Representer::ClassMethods

Defined in:
lib/trailblazer/operation/representer.rb

Instance Method Summary collapse

Instance Method Details

#infer_representer_classObject



30
31
32
33
34
35
36
37
38
# File 'lib/trailblazer/operation/representer.rb', line 30

def infer_representer_class
  Disposable::Twin::Schema.from(contract_class,
    include:          [Representable::JSON],
    options_from:     :deserializer, # use :instance etc. in deserializer.
    superclass:       Representable::Decorator,
    representer_from: lambda { |inline| inline.representer_class },
    exclude_options:  [:default, :populator] # TODO: test with populator: in an operation.
  )
end

#representer(constant = nil, &block) ⇒ Object



15
16
17
18
19
20
# File 'lib/trailblazer/operation/representer.rb', line 15

def representer(constant=nil, &block)
  return representer_class unless constant or block_given?

  self.representer_class= Class.new(constant) if constant
  representer_class.class_eval(&block) if block_given?
end

#representer_classObject



22
23
24
# File 'lib/trailblazer/operation/representer.rb', line 22

def representer_class
  self._representer_class ||= infer_representer_class
end

#representer_class=(constant) ⇒ Object



26
27
28
# File 'lib/trailblazer/operation/representer.rb', line 26

def representer_class=(constant)
  self._representer_class = constant
end