scim-shady 0.2.1 → 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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