Sha256: 0412f3f9177e121794d99fab6c53b22a5a43bbd16a58c3ff46072242cfcd94a1

Contents?: true

Size: 719 Bytes

Versions: 8

Compression:

Stored size: 719 Bytes

Contents

module Nylas
  module Model
    # Allows models to have an attribute which is a lists of another type of thing
    class ListAttributeDefinition
      attr_accessor :type_name, :exclude_when, :default

      def initialize(type_name:, exclude_when:, default:)
        self.type_name = type_name
        self.exclude_when = exclude_when
        self.default = default
      end

      def cast(list)
        return default if list.nil? || list.empty?
        list.map { |item| type.cast(item) }
      end

      def serialize(list)
        list = default if list.nil? || list.empty?
        list.map { |item| type.serialize(item) }
      end

      def type
        Types.registry[type_name]
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
nylas-4.2.4 lib/nylas/model/list_attribute_definition.rb
nylas-4.2.3 lib/nylas/model/list_attribute_definition.rb
nylas-4.2.2 lib/nylas/model/list_attribute_definition.rb
nylas-4.2.1 lib/nylas/model/list_attribute_definition.rb
nylas-4.0.1 lib/nylas/model/list_attribute_definition.rb
nylas-4.2.0 lib/nylas/model/list_attribute_definition.rb
nylas-4.0.0.rc3 lib/nylas/model/list_attribute_definition.rb
nylas-4.0.0.rc2 lib/nylas/model/list_attribute_definition.rb