Sha256: 1e07fcea4c826af762181737070debaf4edd87633631251b476eb58b0476fb11
Contents?: true
Size: 926 Bytes
Versions: 1
Compression:
Stored size: 926 Bytes
Contents
# frozen_string_literal: true require 'json' module Cosensee # for User User = Data.define(:id, :name, :display_name, :email) do def self.from_array(users_args) users_args.map { |args| new(**args) } end # allow both `:display_key` and `:displayKey` def initialize(id:, name:, email:, **kwargs) display_name = if kwargs.keys == [:display_name] kwargs[:display_name] elsif kwargs.keys == [:displayName] kwargs[:displayName] else raise Cosensee::Error, 'Cosensee::User.new need an argument :display_name or :displayName' end super( id:, display_name:, name:, email: ) end def to_obj { id:, name:, displayName: display_name, email: } end def to_json(*) to_obj.to_json(*) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cosensee-0.6.0 | lib/cosensee/user.rb |