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.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.env.example +39 -0
  3. data/.gitignore +52 -0
  4. data/.gitlab-ci.yml +108 -0
  5. data/.rspec +3 -0
  6. data/.rubocop.yml +16 -0
  7. data/.yardopts +7 -0
  8. data/CHANGELOG.md +487 -0
  9. data/Gemfile +12 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +860 -0
  12. data/RELEASE.md +726 -0
  13. data/Rakefile +21 -0
  14. data/conversant.gemspec +49 -0
  15. data/examples/inheritance_integration.rb +348 -0
  16. data/examples/rails_initializer.rb +69 -0
  17. data/lib/conversant/configuration.rb +132 -0
  18. data/lib/conversant/v3/base.rb +47 -0
  19. data/lib/conversant/v3/http_client.rb +456 -0
  20. data/lib/conversant/v3/mixins/authentication.rb +221 -0
  21. data/lib/conversant/v3/services/authorization.rb +194 -0
  22. data/lib/conversant/v3/services/cdn/analytics.rb +483 -0
  23. data/lib/conversant/v3/services/cdn/audit.rb +71 -0
  24. data/lib/conversant/v3/services/cdn/business.rb +122 -0
  25. data/lib/conversant/v3/services/cdn/certificate.rb +180 -0
  26. data/lib/conversant/v3/services/cdn/dashboard.rb +109 -0
  27. data/lib/conversant/v3/services/cdn/domain.rb +223 -0
  28. data/lib/conversant/v3/services/cdn/monitoring.rb +65 -0
  29. data/lib/conversant/v3/services/cdn/partner/analytics.rb +233 -0
  30. data/lib/conversant/v3/services/cdn/partner.rb +60 -0
  31. data/lib/conversant/v3/services/cdn.rb +221 -0
  32. data/lib/conversant/v3/services/lms/dashboard.rb +99 -0
  33. data/lib/conversant/v3/services/lms/domain.rb +108 -0
  34. data/lib/conversant/v3/services/lms/job.rb +211 -0
  35. data/lib/conversant/v3/services/lms/partner/analytics.rb +266 -0
  36. data/lib/conversant/v3/services/lms/partner/business.rb +151 -0
  37. data/lib/conversant/v3/services/lms/partner/report.rb +170 -0
  38. data/lib/conversant/v3/services/lms/partner.rb +58 -0
  39. data/lib/conversant/v3/services/lms/preset.rb +57 -0
  40. data/lib/conversant/v3/services/lms.rb +173 -0
  41. data/lib/conversant/v3/services/oss/partner/analytics.rb +105 -0
  42. data/lib/conversant/v3/services/oss/partner.rb +48 -0
  43. data/lib/conversant/v3/services/oss.rb +128 -0
  44. data/lib/conversant/v3/services/portal/dashboard.rb +114 -0
  45. data/lib/conversant/v3/services/portal.rb +219 -0
  46. data/lib/conversant/v3/services/vms/analytics.rb +114 -0
  47. data/lib/conversant/v3/services/vms/business.rb +190 -0
  48. data/lib/conversant/v3/services/vms/partner/analytics.rb +133 -0
  49. data/lib/conversant/v3/services/vms/partner/business.rb +90 -0
  50. data/lib/conversant/v3/services/vms/partner.rb +57 -0
  51. data/lib/conversant/v3/services/vms/transcoding.rb +184 -0
  52. data/lib/conversant/v3/services/vms.rb +166 -0
  53. data/lib/conversant/v3.rb +36 -0
  54. data/lib/conversant/version.rb +5 -0
  55. data/lib/conversant.rb +108 -0
  56. data/publish.sh +107 -0
  57. data/sig/conversant/v3/services/authorization.rbs +34 -0
  58. data/sig/conversant/v3/services/cdn.rbs +123 -0
  59. data/sig/conversant/v3/services/lms.rbs +80 -0
  60. data/sig/conversant/v3/services/portal.rbs +22 -0
  61. data/sig/conversant/v3/services/vms.rbs +64 -0
  62. data/sig/conversant/v3.rbs +85 -0
  63. data/sig/conversant.rbs +37 -0
  64. 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
@@ -0,0 +1,3 @@
1
+ --format documentation
2
+ --color
3
+ --require spec_helper
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
data/.yardopts ADDED
@@ -0,0 +1,7 @@
1
+ --markup markdown
2
+ --title "Conversant Ruby Gem Documentation"
3
+ --charset utf-8
4
+ --readme README.md
5
+ -
6
+ CHANGELOG.md
7
+ LICENSE.txt