scim-shady 0.2.1 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/.gitlab-ci.yml +2 -2
  3. data/.travis.yml +2 -2
  4. data/README.md +6 -5
  5. data/lib/scim/shady.rb +6 -19
  6. data/lib/scim/shady/enterprise_user.rb +93 -0
  7. data/lib/scim/shady/group.rb +49 -17
  8. data/lib/scim/shady/user.rb +550 -63
  9. data/lib/scim/shady/version.rb +1 -1
  10. data/scim-shady.gemspec +3 -2
  11. metadata +12 -38
  12. data/lib/scim/shady/address.rb +0 -41
  13. data/lib/scim/shady/buildable.rb +0 -21
  14. data/lib/scim/shady/builders.rb +0 -14
  15. data/lib/scim/shady/builders/addresses.rb +0 -24
  16. data/lib/scim/shady/builders/bulk.rb +0 -19
  17. data/lib/scim/shady/builders/emails.rb +0 -16
  18. data/lib/scim/shady/builders/filter.rb +0 -17
  19. data/lib/scim/shady/builders/groups.rb +0 -16
  20. data/lib/scim/shady/builders/instant_messengers.rb +0 -16
  21. data/lib/scim/shady/builders/metadata.rb +0 -29
  22. data/lib/scim/shady/builders/name.rb +0 -27
  23. data/lib/scim/shady/builders/phone_numbers.rb +0 -16
  24. data/lib/scim/shady/builders/photos.rb +0 -16
  25. data/lib/scim/shady/builders/resource.rb +0 -26
  26. data/lib/scim/shady/builders/service_provider_config.rb +0 -87
  27. data/lib/scim/shady/builders/user.rb +0 -96
  28. data/lib/scim/shady/builders/x509_certificates.rb +0 -16
  29. data/lib/scim/shady/instant_messenger.rb +0 -21
  30. data/lib/scim/shady/metadata.rb +0 -45
  31. data/lib/scim/shady/name.rb +0 -17
  32. data/lib/scim/shady/phone_number.rb +0 -29
  33. data/lib/scim/shady/photo.rb +0 -29
  34. data/lib/scim/shady/resource.rb +0 -25
  35. data/lib/scim/shady/schemas.rb +0 -17
  36. data/lib/scim/shady/service_provider_config.rb +0 -71
  37. data/lib/scim/shady/x509_certificate.rb +0 -17
@@ -1,5 +1,5 @@
1
1
  module Scim
2
2
  module Shady
3
- VERSION = "0.2.1"
3
+ VERSION = "0.3.1"
4
4
  end
5
5
  end
@@ -20,9 +20,10 @@ Gem::Specification.new do |spec|
20
20
  spec.bindir = "exe"
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
+ spec.required_ruby_version = '>= 2.6.0'
23
24
 
24
- spec.add_dependency "activesupport", ">= 4.2.0"
25
- spec.add_development_dependency "bundler", "~> 1.16"
25
+ spec.add_dependency "scim-kit", "~> 0.2"
26
+ spec.add_development_dependency "bundler", "~> 2.0"
26
27
  spec.add_development_dependency "rake", "~> 10.0"
27
28
  spec.add_development_dependency "rspec", "~> 3.0"
28
29
  spec.add_development_dependency "ffaker"
metadata CHANGED
@@ -1,43 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: scim-shady
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - mo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-17 00:00:00.000000000 Z
11
+ date: 2019-02-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: activesupport
14
+ name: scim-kit
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.0
19
+ version: '0.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 4.2.0
26
+ version: '0.2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.16'
33
+ version: '2.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.16'
40
+ version: '2.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -98,35 +98,10 @@ files:
98
98
  - bin/console
99
99
  - bin/setup
100
100
  - lib/scim/shady.rb
101
- - lib/scim/shady/address.rb
102
- - lib/scim/shady/buildable.rb
103
- - lib/scim/shady/builders.rb
104
- - lib/scim/shady/builders/addresses.rb
105
- - lib/scim/shady/builders/bulk.rb
106
- - lib/scim/shady/builders/emails.rb
107
- - lib/scim/shady/builders/filter.rb
108
- - lib/scim/shady/builders/groups.rb
109
- - lib/scim/shady/builders/instant_messengers.rb
110
- - lib/scim/shady/builders/metadata.rb
111
- - lib/scim/shady/builders/name.rb
112
- - lib/scim/shady/builders/phone_numbers.rb
113
- - lib/scim/shady/builders/photos.rb
114
- - lib/scim/shady/builders/resource.rb
115
- - lib/scim/shady/builders/service_provider_config.rb
116
- - lib/scim/shady/builders/user.rb
117
- - lib/scim/shady/builders/x509_certificates.rb
101
+ - lib/scim/shady/enterprise_user.rb
118
102
  - lib/scim/shady/group.rb
119
- - lib/scim/shady/instant_messenger.rb
120
- - lib/scim/shady/metadata.rb
121
- - lib/scim/shady/name.rb
122
- - lib/scim/shady/phone_number.rb
123
- - lib/scim/shady/photo.rb
124
- - lib/scim/shady/resource.rb
125
- - lib/scim/shady/schemas.rb
126
- - lib/scim/shady/service_provider_config.rb
127
103
  - lib/scim/shady/user.rb
128
104
  - lib/scim/shady/version.rb
129
- - lib/scim/shady/x509_certificate.rb
130
105
  - scim-shady.gemspec
131
106
  homepage: http://www.mokhan.ca/
132
107
  licenses:
@@ -140,15 +115,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
140
115
  requirements:
141
116
  - - ">="
142
117
  - !ruby/object:Gem::Version
143
- version: '0'
118
+ version: 2.6.0
144
119
  required_rubygems_version: !ruby/object:Gem::Requirement
145
120
  requirements:
146
121
  - - ">="
147
122
  - !ruby/object:Gem::Version
148
123
  version: '0'
149
124
  requirements: []
150
- rubyforge_project:
151
- rubygems_version: 2.7.5
125
+ rubygems_version: 3.0.2
152
126
  signing_key:
153
127
  specification_version: 4
154
128
  summary: A simple toolkit for implementing SCIM schema. https://tools.ietf.org/html/rfc7643
@@ -1,41 +0,0 @@
1
- module Scim
2
- module Shady
3
- class Address
4
- def initialize(hash)
5
- @hash = hash
6
- end
7
-
8
- def street_address
9
- to_h['streetAddress']
10
- end
11
-
12
- def locality
13
- to_h['locality']
14
- end
15
-
16
- def region
17
- to_h['region']
18
- end
19
-
20
- def postal_code
21
- to_h['postalCode']
22
- end
23
-
24
- def country
25
- to_h['country']
26
- end
27
-
28
- def formatted
29
- "#{street_address}\n#{locality}, #{region} #{postal_code} #{country}"
30
- end
31
-
32
- def primary?
33
- to_h['primary']
34
- end
35
-
36
- def to_h
37
- @hash
38
- end
39
- end
40
- end
41
- end
@@ -1,21 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Buildable
4
- extend ActiveSupport::Concern
5
-
6
- class_methods do
7
- def build
8
- builder do |builder|
9
- yield builder if block_given?
10
- end.build
11
- end
12
-
13
- def builder
14
- builder = builder_class.new
15
- yield builder if block_given?
16
- builder
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,14 +0,0 @@
1
- require "scim/shady/builders/addresses"
2
- require "scim/shady/builders/bulk"
3
- require "scim/shady/builders/emails"
4
- require "scim/shady/builders/filter"
5
- require "scim/shady/builders/groups"
6
- require "scim/shady/builders/instant_messengers"
7
- require "scim/shady/builders/metadata"
8
- require "scim/shady/builders/name"
9
- require "scim/shady/builders/phone_numbers"
10
- require "scim/shady/builders/photos"
11
- require "scim/shady/builders/resource"
12
- require "scim/shady/builders/service_provider_config"
13
- require "scim/shady/builders/user"
14
- require "scim/shady/builders/x509_certificates"
@@ -1,24 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class Addresses
5
- def add(type:, street_address:, locality:, region:, postal_code:, country:, primary: false)
6
- @items ||= []
7
- @items.push(
8
- type: type,
9
- streetAddress: street_address,
10
- locality: locality,
11
- region: region,
12
- postalCode: postal_code,
13
- country: country,
14
- primary: primary,
15
- )
16
- end
17
-
18
- def to_h
19
- { 'addresses' => @items }
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,19 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class Bulk
5
- attr_accessor :supported
6
- attr_accessor :max_operations
7
- attr_accessor :max_payload_size
8
-
9
- def to_h
10
- {
11
- 'supported' => supported,
12
- 'maxOperations' => max_operations,
13
- 'maxPayloadSize' => max_payload_size,
14
- }
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,16 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class Emails
5
- def add(email, type: :work, primary: false)
6
- @items ||= []
7
- @items.push(value: email, type: type, primary: primary)
8
- end
9
-
10
- def to_h
11
- { 'emails' => @items }
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,17 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class Filter
5
- attr_accessor :supported
6
- attr_accessor :max_results
7
-
8
- def to_h
9
- {
10
- 'supported' => supported,
11
- 'maxResults' => max_results,
12
- }
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,16 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class Groups
5
- def add(id, url, display_name)
6
- @items ||= []
7
- @items.push(value: id, '$ref' => url, display: display_name)
8
- end
9
-
10
- def to_h
11
- { 'groups' => @items }
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class InstantMessengers
5
- def add(handle, type:)
6
- @items ||= []
7
- @items.push(value: handle, type: type)
8
- end
9
-
10
- def to_h
11
- { 'ims' => @items }
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,29 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class Metadata
5
- attr_accessor :created_at
6
- attr_accessor :updated_at
7
- attr_accessor :location
8
- attr_accessor :version
9
-
10
- def initialize(resource)
11
- @resource = resource
12
- @created_at = @updated_at = Time.now
13
- end
14
-
15
- def to_h
16
- {
17
- 'meta' => {
18
- 'resourceType' => @resource.class.name.split(/::/).last,
19
- 'created' => created_at.to_time.utc.iso8601,
20
- 'lastModified' => updated_at.to_time.utc.iso8601,
21
- 'location' => location,
22
- 'version' => version,
23
- },
24
- }
25
- end
26
- end
27
- end
28
- end
29
- end
@@ -1,27 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class Name
5
- attr_accessor :family_name
6
- attr_accessor :given_name
7
- attr_accessor :middle_name
8
- attr_accessor :honorific_prefix
9
- attr_accessor :honorific_suffix
10
- attr_accessor :formatted
11
-
12
- def to_h
13
- {
14
- 'name' => {
15
- 'formatted' => formatted,
16
- 'familyName' => family_name,
17
- 'givenName' => given_name,
18
- 'middleName' => middle_name,
19
- 'honorificPrefix' => honorific_prefix,
20
- 'honorificSuffix' => honorific_suffix,
21
- }
22
- }
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,16 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class PhoneNumbers
5
- def add(phone_number, type: :work)
6
- @items ||= []
7
- @items.push(value: phone_number, type: type)
8
- end
9
-
10
- def to_h
11
- { 'phoneNumbers' => @items }
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class Photos
5
- def add(url, type: :photo)
6
- @items ||= []
7
- @items.push(value: url, type: type)
8
- end
9
-
10
- def to_h
11
- { 'photos' => @items }
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,26 +0,0 @@
1
- module Scim
2
- module Shady
3
- module Builders
4
- class Resource
5
- extend Forwardable
6
- attr_accessor :id
7
- def_delegators :@meta, :created_at=, :updated_at=, :location=, :version=
8
-
9
- def initialize
10
- @meta = Metadata.new(self)
11
- end
12
-
13
- def meta
14
- yield @meta
15
- end
16
-
17
- def to_h
18
- {
19
- 'schemas' => [],
20
- 'id' => id,
21
- }.merge(@meta.to_h)
22
- end
23
- end
24
- end
25
- end
26
- end