conversant 1.0.16
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.
- checksums.yaml +7 -0
- data/.env.example +39 -0
- data/.gitignore +52 -0
- data/.gitlab-ci.yml +108 -0
- data/.rspec +3 -0
- data/.rubocop.yml +16 -0
- data/.yardopts +7 -0
- data/CHANGELOG.md +487 -0
- data/Gemfile +12 -0
- data/LICENSE.txt +21 -0
- data/README.md +860 -0
- data/RELEASE.md +726 -0
- data/Rakefile +21 -0
- data/conversant.gemspec +49 -0
- data/examples/inheritance_integration.rb +348 -0
- data/examples/rails_initializer.rb +69 -0
- data/lib/conversant/configuration.rb +132 -0
- data/lib/conversant/v3/base.rb +47 -0
- data/lib/conversant/v3/http_client.rb +456 -0
- data/lib/conversant/v3/mixins/authentication.rb +221 -0
- data/lib/conversant/v3/services/authorization.rb +194 -0
- data/lib/conversant/v3/services/cdn/analytics.rb +483 -0
- data/lib/conversant/v3/services/cdn/audit.rb +71 -0
- data/lib/conversant/v3/services/cdn/business.rb +122 -0
- data/lib/conversant/v3/services/cdn/certificate.rb +180 -0
- data/lib/conversant/v3/services/cdn/dashboard.rb +109 -0
- data/lib/conversant/v3/services/cdn/domain.rb +223 -0
- data/lib/conversant/v3/services/cdn/monitoring.rb +65 -0
- data/lib/conversant/v3/services/cdn/partner/analytics.rb +233 -0
- data/lib/conversant/v3/services/cdn/partner.rb +60 -0
- data/lib/conversant/v3/services/cdn.rb +221 -0
- data/lib/conversant/v3/services/lms/dashboard.rb +99 -0
- data/lib/conversant/v3/services/lms/domain.rb +108 -0
- data/lib/conversant/v3/services/lms/job.rb +211 -0
- data/lib/conversant/v3/services/lms/partner/analytics.rb +266 -0
- data/lib/conversant/v3/services/lms/partner/business.rb +151 -0
- data/lib/conversant/v3/services/lms/partner/report.rb +170 -0
- data/lib/conversant/v3/services/lms/partner.rb +58 -0
- data/lib/conversant/v3/services/lms/preset.rb +57 -0
- data/lib/conversant/v3/services/lms.rb +173 -0
- data/lib/conversant/v3/services/oss/partner/analytics.rb +105 -0
- data/lib/conversant/v3/services/oss/partner.rb +48 -0
- data/lib/conversant/v3/services/oss.rb +128 -0
- data/lib/conversant/v3/services/portal/dashboard.rb +114 -0
- data/lib/conversant/v3/services/portal.rb +219 -0
- data/lib/conversant/v3/services/vms/analytics.rb +114 -0
- data/lib/conversant/v3/services/vms/business.rb +190 -0
- data/lib/conversant/v3/services/vms/partner/analytics.rb +133 -0
- data/lib/conversant/v3/services/vms/partner/business.rb +90 -0
- data/lib/conversant/v3/services/vms/partner.rb +57 -0
- data/lib/conversant/v3/services/vms/transcoding.rb +184 -0
- data/lib/conversant/v3/services/vms.rb +166 -0
- data/lib/conversant/v3.rb +36 -0
- data/lib/conversant/version.rb +5 -0
- data/lib/conversant.rb +108 -0
- data/publish.sh +107 -0
- data/sig/conversant/v3/services/authorization.rbs +34 -0
- data/sig/conversant/v3/services/cdn.rbs +123 -0
- data/sig/conversant/v3/services/lms.rbs +80 -0
- data/sig/conversant/v3/services/portal.rbs +22 -0
- data/sig/conversant/v3/services/vms.rbs +64 -0
- data/sig/conversant/v3.rbs +85 -0
- data/sig/conversant.rbs +37 -0
- metadata +267 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 524cbc4eca5d29c65fe76100c994fb134a03d8a98798ca90781493f9b7a9dc01
|
|
4
|
+
data.tar.gz: d1dbfc44df7dba57788ad5b9545c30561b613845a6f3113c8de60868b0ce58c0
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: 627c11b7cb53f694758529214e9217e37d0fc8f9e67a26ff34c735d2bd7bb936de55fd5195c3b3ffd32a757b17ed1fc97176786dd05d14686be53232b638e26e
|
|
7
|
+
data.tar.gz: 68983f7a639ed7327c172fc7bbc6d492bb7096bfd9d3619c3a0426b6ba1f4c64b973f58aa2f2a1d3c129d9b75bf4d944efb01cd8ef94b3df5c265a80c91ed950
|
data/.env.example
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Conversant Gem Environment Variables
|
|
2
|
+
# The gem automatically uses these ENV variables if they exist
|
|
3
|
+
# You only need to set them if they're not already in your environment
|
|
4
|
+
|
|
5
|
+
# Portal Configuration (Optional - has defaults)
|
|
6
|
+
PORTAL_ROOT_HOSTNAME=console.swiftfederation.com
|
|
7
|
+
PORTAL_SSO_HOSTNAME=sso.swiftfederation.com
|
|
8
|
+
|
|
9
|
+
# API Endpoints (Required)
|
|
10
|
+
PRIVATE_CDN_ENDPOINT=https://your-cdn-endpoint.example.com
|
|
11
|
+
PRIVATE_LMS_ENDPOINT=https://your-lms-endpoint.example.com
|
|
12
|
+
|
|
13
|
+
# Optional Endpoint Overrides
|
|
14
|
+
PRIVATE_PORTAL_ENDPOINT=https://console.swiftfederation.com
|
|
15
|
+
PRIVATE_SSO_ENDPOINT=https://sso.swiftfederation.com
|
|
16
|
+
|
|
17
|
+
# Authentication Credentials (Required)
|
|
18
|
+
SWIFTSERVE_IDENTIFIER_ID=your_identifier_id_here
|
|
19
|
+
SWIFTSERVE_IDENTIFIER_HASH=your_identifier_hash_here
|
|
20
|
+
|
|
21
|
+
# HTTP Configuration (Optional - has defaults)
|
|
22
|
+
DEFAULT_UA=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
|
|
23
|
+
DEFAULT_CONTENT_TYPE=application/json
|
|
24
|
+
|
|
25
|
+
# Additional CDN Configuration (Optional)
|
|
26
|
+
CONVERSANT_CDN_API_URL=https://cdn-api.example.com
|
|
27
|
+
|
|
28
|
+
# Redis Configuration (Optional - auto-detects $redis or uses REDIS_URL)
|
|
29
|
+
REDIS_URL=redis://localhost:6379/0
|
|
30
|
+
|
|
31
|
+
# Debug and Performance Settings (Optional)
|
|
32
|
+
CONVERSANT_DEBUG=false
|
|
33
|
+
CONVERSANT_CACHE_TTL=1200
|
|
34
|
+
|
|
35
|
+
# Rails Environment (Optional - affects SSL verification)
|
|
36
|
+
RAILS_ENV=development
|
|
37
|
+
|
|
38
|
+
# Customer ID for testing (not used by gem, but useful for examples)
|
|
39
|
+
CUSTOMER_ID=12345
|
data/.gitignore
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
*.gem
|
|
2
|
+
*.rbc
|
|
3
|
+
/.config
|
|
4
|
+
/coverage/
|
|
5
|
+
/InstalledFiles
|
|
6
|
+
/pkg/
|
|
7
|
+
/spec/reports/
|
|
8
|
+
/spec/examples.txt
|
|
9
|
+
/test/tmp/
|
|
10
|
+
/test/version_tmp/
|
|
11
|
+
/tmp/
|
|
12
|
+
|
|
13
|
+
# Used by dotenv library to load environment variables
|
|
14
|
+
.env
|
|
15
|
+
.env.local
|
|
16
|
+
.env.*.local
|
|
17
|
+
|
|
18
|
+
# Ignore Byebug command history file
|
|
19
|
+
.byebug_history
|
|
20
|
+
|
|
21
|
+
# Ignore bundler config
|
|
22
|
+
/.bundle
|
|
23
|
+
|
|
24
|
+
# Ignore all logfiles and tempfiles
|
|
25
|
+
/log/*
|
|
26
|
+
/tmp/*
|
|
27
|
+
!/log/.keep
|
|
28
|
+
!/tmp/.keep
|
|
29
|
+
|
|
30
|
+
# Ignore RSpec configuration
|
|
31
|
+
.rspec_status
|
|
32
|
+
|
|
33
|
+
# Ignore Gemfile.lock for gems
|
|
34
|
+
Gemfile.lock
|
|
35
|
+
|
|
36
|
+
# Ignore built documentation
|
|
37
|
+
/doc/
|
|
38
|
+
/rdoc/
|
|
39
|
+
/.yardoc/
|
|
40
|
+
/_yardoc/
|
|
41
|
+
|
|
42
|
+
# IDE files
|
|
43
|
+
.idea/
|
|
44
|
+
.vscode/
|
|
45
|
+
*.swp
|
|
46
|
+
*.swo
|
|
47
|
+
*~
|
|
48
|
+
.DS_Store
|
|
49
|
+
|
|
50
|
+
# Test artifacts
|
|
51
|
+
/spec/cassettes/
|
|
52
|
+
/spec/fixtures/vcr_cassettes/
|
data/.gitlab-ci.yml
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# GitLab CI/CD Pipeline for Conversant Gem
|
|
2
|
+
|
|
3
|
+
stages:
|
|
4
|
+
- test
|
|
5
|
+
- build
|
|
6
|
+
- publish
|
|
7
|
+
|
|
8
|
+
variables:
|
|
9
|
+
BUNDLE_PATH: vendor/bundle
|
|
10
|
+
|
|
11
|
+
# Cache dependencies
|
|
12
|
+
cache:
|
|
13
|
+
key: ${CI_COMMIT_REF_SLUG}
|
|
14
|
+
paths:
|
|
15
|
+
- vendor/bundle
|
|
16
|
+
- Gemfile.lock
|
|
17
|
+
|
|
18
|
+
# Template for Ruby jobs
|
|
19
|
+
.ruby_template: &ruby_template
|
|
20
|
+
image: ruby:3.0
|
|
21
|
+
before_script:
|
|
22
|
+
- gem install bundler -v 2.4.0
|
|
23
|
+
- bundle config set --local path 'vendor/bundle'
|
|
24
|
+
- bundle install --jobs $(nproc)
|
|
25
|
+
|
|
26
|
+
# Run tests on multiple Ruby versions
|
|
27
|
+
test:ruby-2.7:
|
|
28
|
+
<<: *ruby_template
|
|
29
|
+
image: ruby:2.7
|
|
30
|
+
stage: test
|
|
31
|
+
script:
|
|
32
|
+
- bundle exec rake spec
|
|
33
|
+
allow_failure: false
|
|
34
|
+
|
|
35
|
+
test:ruby-3.0:
|
|
36
|
+
<<: *ruby_template
|
|
37
|
+
image: ruby:3.0
|
|
38
|
+
stage: test
|
|
39
|
+
script:
|
|
40
|
+
- bundle exec rake spec
|
|
41
|
+
allow_failure: false
|
|
42
|
+
|
|
43
|
+
test:ruby-3.1:
|
|
44
|
+
<<: *ruby_template
|
|
45
|
+
image: ruby:3.1
|
|
46
|
+
stage: test
|
|
47
|
+
script:
|
|
48
|
+
- bundle exec rake spec
|
|
49
|
+
allow_failure: false
|
|
50
|
+
|
|
51
|
+
# Run RuboCop for code quality
|
|
52
|
+
lint:
|
|
53
|
+
<<: *ruby_template
|
|
54
|
+
stage: test
|
|
55
|
+
script:
|
|
56
|
+
- bundle exec rubocop
|
|
57
|
+
allow_failure: true
|
|
58
|
+
|
|
59
|
+
# Build the gem
|
|
60
|
+
build:
|
|
61
|
+
<<: *ruby_template
|
|
62
|
+
stage: build
|
|
63
|
+
script:
|
|
64
|
+
- gem build conversant.gemspec
|
|
65
|
+
- echo "Gem version:" && ruby -r./lib/conversant/version -e "puts Conversant::VERSION"
|
|
66
|
+
artifacts:
|
|
67
|
+
paths:
|
|
68
|
+
- "*.gem"
|
|
69
|
+
expire_in: 1 week
|
|
70
|
+
only:
|
|
71
|
+
- main
|
|
72
|
+
- tags
|
|
73
|
+
|
|
74
|
+
# Publish to RubyGems (manual trigger)
|
|
75
|
+
publish:rubygems:
|
|
76
|
+
<<: *ruby_template
|
|
77
|
+
stage: publish
|
|
78
|
+
script:
|
|
79
|
+
- 'if [ -z "$RUBYGEMS_API_KEY" ]; then echo "Error: RUBYGEMS_API_KEY is not set"; echo "Please set it in GitLab CI/CD Settings > Variables"; exit 1; fi'
|
|
80
|
+
- mkdir -p ~/.gem
|
|
81
|
+
- echo "---" > ~/.gem/credentials
|
|
82
|
+
- 'echo ":rubygems_api_key: $RUBYGEMS_API_KEY" >> ~/.gem/credentials'
|
|
83
|
+
- chmod 0600 ~/.gem/credentials
|
|
84
|
+
- gem build conversant.gemspec
|
|
85
|
+
- gem push *.gem
|
|
86
|
+
when: manual
|
|
87
|
+
only:
|
|
88
|
+
- tags
|
|
89
|
+
environment:
|
|
90
|
+
name: rubygems
|
|
91
|
+
url: https://rubygems.org/gems/conversant
|
|
92
|
+
|
|
93
|
+
# Publish to private gem server (if you have one)
|
|
94
|
+
publish:private:
|
|
95
|
+
<<: *ruby_template
|
|
96
|
+
stage: publish
|
|
97
|
+
script:
|
|
98
|
+
- 'if [ -z "$PRIVATE_GEM_SERVER_URL" ]; then echo "No private gem server configured, skipping..."; exit 0; fi'
|
|
99
|
+
- gem build conversant.gemspec
|
|
100
|
+
- 'gem push *.gem --host $PRIVATE_GEM_SERVER_URL'
|
|
101
|
+
when: manual
|
|
102
|
+
only:
|
|
103
|
+
- main
|
|
104
|
+
- tags
|
|
105
|
+
allow_failure: true
|
|
106
|
+
environment:
|
|
107
|
+
name: private-gems
|
|
108
|
+
url: $PRIVATE_GEM_SERVER_URL
|
data/.rspec
ADDED
data/.rubocop.yml
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
Layout/EndOfLine:
|
|
2
|
+
Enabled: False
|
|
3
|
+
Metrics/MethodLength:
|
|
4
|
+
Max: 50
|
|
5
|
+
Metrics/AbcSize:
|
|
6
|
+
Max: 50
|
|
7
|
+
CountRepeatedAttributes: false
|
|
8
|
+
Metrics/CyclomaticComplexity:
|
|
9
|
+
Max: 10
|
|
10
|
+
Metrics/ClassLength:
|
|
11
|
+
Max: 500
|
|
12
|
+
Metrics/ParameterLists:
|
|
13
|
+
Max: 5
|
|
14
|
+
MaxOptionalParameters: 5
|
|
15
|
+
Metrics/PerceivedComplexity:
|
|
16
|
+
Max: 10
|