class Eco::API::Common::People::BaseParser
@example Example of usage:
class ExampleParser < Eco::API::Common::People::BaseParser def process @parsers.define_attribute("example") do |parser| parser.def_parser do |str, deps| i = value.to_i rescue 0 i +=5 if deps.dig(:sum_5) i end.def_serializer do |value| value.to_s end end end end pparser = Eco::API::Common::People::PersonParser.new ExampleParser.new(pparser) pparser.parse("example","3") # out: 3 pparser.parse("example","3", deps: {sum_5: true}) # out: 8 pparser.serialise("example, 8) # out: "8"
Helper class to inherit from to ease the definition of attribute parsers in a `PersonParser` object, mostly used in for configuration loading.
Public Class Methods
new(parsers, **options)
click to toggle source
@param parsers [Eco::API::Common::People::PersonParser] set of attribute parsers/serialisers. @param options [Hash] keyword arguments to be used in the `process` method of the child class.
# File lib/eco/api/common/people/base_parser.rb, line 32 def initialize(parsers, **options) @parsers = parsers @options = options end
Public Instance Methods
process()
click to toggle source
Method to be overriden by the child class. @note this method is called to load the definition of the attribute parser/serializer.
# File lib/eco/api/common/people/base_parser.rb, line 39 def process raise "Method needs to be overriden in the child class #{self.class}" end