Class: DeviseScim::Scim::Group

Inherits:
Object
  • Object
show all
Defined in:
lib/devise_scim/scim/group.rb

Overview

rubocop:enable Lint/StructNewOverride

Constant Summary collapse

SCHEMAS =
[GROUP_SCHEMA].freeze

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#display_nameObject

Returns the value of attribute display_name.



16
17
18
# File 'lib/devise_scim/scim/group.rb', line 16

def display_name
  @display_name
end

#external_idObject

Returns the value of attribute external_id.



16
17
18
# File 'lib/devise_scim/scim/group.rb', line 16

def external_id
  @external_id
end

#idObject

Returns the value of attribute id.



16
17
18
# File 'lib/devise_scim/scim/group.rb', line 16

def id
  @id
end

#membersObject

Returns the value of attribute members.



16
17
18
# File 'lib/devise_scim/scim/group.rb', line 16

def members
  @members
end

#metaObject

Returns the value of attribute meta.



16
17
18
# File 'lib/devise_scim/scim/group.rb', line 16

def meta
  @meta
end

Class Method Details

.from_h(hash) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/devise_scim/scim/group.rb', line 18

def self.from_h(hash)
  group = new
  group.id           = hash["id"]
  group.external_id  = hash["externalId"]
  group.display_name = hash["displayName"]
  group.members = Array(hash["members"]).map do |entry|
    Member.new(value: entry["value"], display: entry["display"], ref: entry["$ref"])
  end
  group
end

Instance Method Details

#to_hObject



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/devise_scim/scim/group.rb', line 29

def to_h
  h = {
    "schemas" => SCHEMAS,
    "id" => id,
    "externalId" => external_id,
    "displayName" => display_name,
    "members" => (members || []).map { |member| serialize_member(member) }
  }.compact
  h["schemas"]  = SCHEMAS
  h["members"]  = (members || []).map { |member| serialize_member(member) }
  h["meta"]     = serialize_meta if meta
  h
end

#to_jsonObject



43
44
45
# File 'lib/devise_scim/scim/group.rb', line 43

def to_json(*)
  to_h.to_json
end