Sha256: 59e5699b410b79728f8fba79ec92d95028603d95269da6c369039c52773043ec
Contents?: true
Size: 1023 Bytes
Versions: 1
Compression:
Stored size: 1023 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 do |args| if args.is_a?(Cosensee::User) args else new(**args) end end 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.8.0 | lib/cosensee/user.rb |