helix_sdk 1.0.0

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: c0578c2aa076e6f7ea6b818cdfb90d09474592fa9cac6be69f387938af8576de
4
+ data.tar.gz: 415c4192622c885917f37bc941607c7f3ca07b81363307fa7aecad46c188f305
5
+ SHA512:
6
+ metadata.gz: dfe2ea8a4221434f39058e0132e8aab1203e6ca0f9f1cd7c6a27e61eadc7323cd3fa796ed868a5d89e0417ed98cda15fe8a30ee06f12b8c67d4a2c302b2c212f
7
+ data.tar.gz: 746627ece674b373013fba2f06e4b2daf0fd31ff090b2f39ee92d1c3a1dada4ed6ab704be5c3dd95af3a720cba10ca8d3e292be88e000066a770b19e8069bdac
data/Gemfile ADDED
@@ -0,0 +1,11 @@
1
+ # frozen_string_literal: true
2
+
3
+ source "https://rubygems.org"
4
+
5
+ # Specify your gem's dependencies in helix_analytics.gemspec
6
+ gemspec
7
+
8
+ gem "rake", "~> 13.0"
9
+ gem "rspec", "~> 3.0"
10
+ gem "rubocop", "~> 1.21"
11
+ gem "webmock", "~> 3.0"
data/Gemfile.lock ADDED
@@ -0,0 +1,99 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ helix_sdk (1.0.0)
5
+ concurrent-ruby (~> 1.1)
6
+ faraday (~> 2.0)
7
+ faraday-retry (~> 2.0)
8
+
9
+ GEM
10
+ remote: https://rubygems.org/
11
+ specs:
12
+ addressable (2.8.7)
13
+ public_suffix (>= 2.0.2, < 7.0)
14
+ ast (2.4.3)
15
+ bigdecimal (3.2.3)
16
+ concurrent-ruby (1.3.5)
17
+ crack (1.0.0)
18
+ bigdecimal
19
+ rexml
20
+ diff-lcs (1.6.2)
21
+ faraday (2.13.4)
22
+ faraday-net_http (>= 2.0, < 3.5)
23
+ json
24
+ logger
25
+ faraday-net_http (3.4.1)
26
+ net-http (>= 0.5.0)
27
+ faraday-retry (2.3.2)
28
+ faraday (~> 2.0)
29
+ hashdiff (1.2.1)
30
+ json (2.13.2)
31
+ language_server-protocol (3.17.0.5)
32
+ lint_roller (1.1.0)
33
+ logger (1.7.0)
34
+ net-http (0.6.0)
35
+ uri
36
+ parallel (1.27.0)
37
+ parser (3.3.9.0)
38
+ ast (~> 2.4.1)
39
+ racc
40
+ prism (1.5.1)
41
+ public_suffix (6.0.2)
42
+ racc (1.8.1)
43
+ rainbow (3.1.1)
44
+ rake (13.3.0)
45
+ regexp_parser (2.11.3)
46
+ rexml (3.4.4)
47
+ rspec (3.13.1)
48
+ rspec-core (~> 3.13.0)
49
+ rspec-expectations (~> 3.13.0)
50
+ rspec-mocks (~> 3.13.0)
51
+ rspec-core (3.13.5)
52
+ rspec-support (~> 3.13.0)
53
+ rspec-expectations (3.13.5)
54
+ diff-lcs (>= 1.2.0, < 2.0)
55
+ rspec-support (~> 3.13.0)
56
+ rspec-mocks (3.13.5)
57
+ diff-lcs (>= 1.2.0, < 2.0)
58
+ rspec-support (~> 3.13.0)
59
+ rspec-support (3.13.6)
60
+ rubocop (1.80.2)
61
+ json (~> 2.3)
62
+ language_server-protocol (~> 3.17.0.2)
63
+ lint_roller (~> 1.1.0)
64
+ parallel (~> 1.10)
65
+ parser (>= 3.3.0.2)
66
+ rainbow (>= 2.2.2, < 4.0)
67
+ regexp_parser (>= 2.9.3, < 3.0)
68
+ rubocop-ast (>= 1.46.0, < 2.0)
69
+ ruby-progressbar (~> 1.7)
70
+ unicode-display_width (>= 2.4.0, < 4.0)
71
+ rubocop-ast (1.46.0)
72
+ parser (>= 3.3.7.2)
73
+ prism (~> 1.4)
74
+ ruby-progressbar (1.13.0)
75
+ unicode-display_width (3.2.0)
76
+ unicode-emoji (~> 4.1)
77
+ unicode-emoji (4.1.0)
78
+ uri (1.0.3)
79
+ webmock (3.25.1)
80
+ addressable (>= 2.8.0)
81
+ crack (>= 0.3.2)
82
+ hashdiff (>= 0.4.0, < 2.0.0)
83
+ yard (0.9.37)
84
+
85
+ PLATFORMS
86
+ arm64-darwin-24
87
+ ruby
88
+
89
+ DEPENDENCIES
90
+ bundler (~> 2.0)
91
+ helix_sdk!
92
+ rake (~> 13.0)
93
+ rspec (~> 3.0)
94
+ rubocop (~> 1.21, ~> 1.0)
95
+ webmock (~> 3.0)
96
+ yard (~> 0.9)
97
+
98
+ BUNDLED WITH
99
+ 2.7.0
data/README.md ADDED
@@ -0,0 +1,453 @@
1
+ # Helix Analytics Ruby SDK
2
+
3
+ Official Ruby SDK for Helix Analytics - AI-powered growth analytics platform with enhanced business intelligence capabilities.
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'helix_sdk'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ ```bash
16
+ bundle install
17
+ ```
18
+
19
+ Or install it yourself as:
20
+
21
+ ```bash
22
+ gem install helix_sdk
23
+ ```
24
+
25
+ ## Quick Start
26
+
27
+ ### 1. Initialize the Client
28
+
29
+ ```ruby
30
+ require 'helix_sdk'
31
+
32
+ helix = HelixSdk::Client.new(
33
+ api_key: 'your-api-key',
34
+ api_url: 'https://helix-sdk-ha4shte2cq-uc.a.run.app',
35
+ company_id: 'your-company-id'
36
+ )
37
+ ```
38
+
39
+ ### 2. Track Events
40
+
41
+ ```ruby
42
+ # Track a user action
43
+ helix.track(
44
+ user_id: 'user-123',
45
+ event: 'button_clicked',
46
+ properties: {
47
+ button_name: 'signup',
48
+ page: 'landing'
49
+ }
50
+ )
51
+
52
+ # Identify a user
53
+ helix.identify(
54
+ user_id: 'user-123',
55
+ traits: {
56
+ email: 'user@example.com',
57
+ plan: 'premium'
58
+ }
59
+ )
60
+
61
+ # Track page views
62
+ helix.page(
63
+ user_id: 'user-123',
64
+ name: 'Landing Page',
65
+ properties: {
66
+ url: 'https://example.com',
67
+ title: 'Welcome'
68
+ }
69
+ )
70
+ ```
71
+
72
+ ### 3. Batch Events
73
+
74
+ ```ruby
75
+ # Send multiple events efficiently
76
+ events = [
77
+ {
78
+ type: 'track',
79
+ user_id: 'user-123',
80
+ event: 'signup',
81
+ properties: { plan: 'free' }
82
+ },
83
+ {
84
+ type: 'track',
85
+ user_id: 'user-123',
86
+ event: 'first_login',
87
+ properties: { timestamp: Time.now }
88
+ }
89
+ ]
90
+
91
+ helix.batch(events)
92
+ ```
93
+
94
+ ## Configuration
95
+
96
+ ### Client Options
97
+
98
+ ```ruby
99
+ helix = HelixSdk::Client.new(
100
+ api_key: 'your-api-key', # Required: Your Helix API key
101
+ api_url: 'https://api.helix.com', # Optional: API endpoint
102
+ company_id: 'company-123', # Optional: Company ID
103
+ timeout: 10, # Optional: Request timeout in seconds
104
+ retries: 3, # Optional: Number of retries
105
+ batch_size: 100 # Optional: Batch size for bulk operations
106
+ )
107
+ ```
108
+
109
+ ### Environment Variables
110
+
111
+ You can also configure the client using environment variables:
112
+
113
+ ```bash
114
+ export HELIX_API_KEY=your-api-key
115
+ export HELIX_API_URL=https://helix-sdk-ha4shte2cq-uc.a.run.app
116
+ export HELIX_COMPANY_ID=your-company-id
117
+ ```
118
+
119
+ ```ruby
120
+ # Client will automatically use environment variables
121
+ helix = HelixSdk::Client.new
122
+ ```
123
+
124
+ ## API Reference
125
+
126
+ ### Track Events
127
+
128
+ Track user actions and behaviors:
129
+
130
+ ```ruby
131
+ helix.track(
132
+ user_id: 'user-123', # Required: User identifier
133
+ event: 'purchase', # Required: Event name
134
+ properties: { # Optional: Event properties
135
+ product_id: 'prod-456',
136
+ revenue: 99.99,
137
+ currency: 'USD'
138
+ },
139
+ context: { # Optional: Additional context
140
+ page: {
141
+ url: 'https://example.com/checkout',
142
+ title: 'Checkout'
143
+ }
144
+ },
145
+ timestamp: Time.now # Optional: Event timestamp
146
+ )
147
+ ```
148
+
149
+ ### Identify Users
150
+
151
+ Associate user traits with a user ID:
152
+
153
+ ```ruby
154
+ helix.identify(
155
+ user_id: 'user-123',
156
+ traits: {
157
+ email: 'user@example.com',
158
+ name: 'John Doe',
159
+ plan: 'premium',
160
+ created_at: Time.now
161
+ }
162
+ )
163
+ ```
164
+
165
+ ### Page Views
166
+
167
+ Track page views and navigation:
168
+
169
+ ```ruby
170
+ helix.page(
171
+ user_id: 'user-123',
172
+ name: 'Product Page',
173
+ category: 'ecommerce',
174
+ properties: {
175
+ url: 'https://example.com/products/123',
176
+ title: 'Amazing Product',
177
+ referrer: 'https://google.com'
178
+ }
179
+ )
180
+ ```
181
+
182
+ ### Screen Views
183
+
184
+ Track screen views in mobile applications:
185
+
186
+ ```ruby
187
+ helix.screen(
188
+ user_id: 'user-123',
189
+ name: 'Dashboard',
190
+ category: 'app',
191
+ properties: {
192
+ screen_id: 'dashboard_v2',
193
+ version: '2.1.0'
194
+ }
195
+ )
196
+ ```
197
+
198
+ ## Advanced Usage
199
+
200
+ ### Error Handling
201
+
202
+ ```ruby
203
+ begin
204
+ helix.track(
205
+ user_id: 'user-123',
206
+ event: 'purchase',
207
+ properties: { amount: 99.99 }
208
+ )
209
+ rescue HelixSdk::Error => e
210
+ puts "Failed to track event: #{e.message}"
211
+ end
212
+ ```
213
+
214
+ ### Async Processing
215
+
216
+ ```ruby
217
+ # Non-blocking event tracking
218
+ helix.track_async(
219
+ user_id: 'user-123',
220
+ event: 'background_job_completed',
221
+ properties: { job_id: 'job-456' }
222
+ )
223
+ ```
224
+
225
+ ### Custom Context
226
+
227
+ ```ruby
228
+ helix.track(
229
+ user_id: 'user-123',
230
+ event: 'api_call',
231
+ properties: { endpoint: '/api/users' },
232
+ context: {
233
+ app: {
234
+ name: 'MyApp',
235
+ version: '1.2.3'
236
+ },
237
+ library: {
238
+ name: 'helix_sdk',
239
+ version: HelixSdk::VERSION
240
+ },
241
+ device: {
242
+ type: 'server'
243
+ }
244
+ }
245
+ )
246
+ ```
247
+
248
+ ## Business Intelligence Integration
249
+
250
+ ### Enhanced Analytics
251
+
252
+ The Ruby SDK integrates with Helix's enhanced analytics capabilities:
253
+
254
+ - **User Engagement Tracking** - DAU/WAU/MAU metrics
255
+ - **Conversion Funnel Analysis** - Multi-step conversion tracking
256
+ - **Revenue Attribution** - Marketing channel performance
257
+ - **Behavioral Segmentation** - User categorization and insights
258
+ - **Real-time Dashboards** - Live metrics and monitoring
259
+ - **Anomaly Detection** - Automated pattern recognition
260
+
261
+ ### Event Best Practices
262
+
263
+ ```ruby
264
+ # E-commerce tracking
265
+ helix.track(
266
+ user_id: 'user-123',
267
+ event: 'purchase',
268
+ properties: {
269
+ product_id: 'prod-456',
270
+ product_name: 'Premium Plan',
271
+ revenue: 99.99,
272
+ currency: 'USD',
273
+ category: 'subscription'
274
+ }
275
+ )
276
+
277
+ # User onboarding
278
+ helix.track(
279
+ user_id: 'user-123',
280
+ event: 'onboarding_step_completed',
281
+ properties: {
282
+ step: 3,
283
+ step_name: 'profile_setup',
284
+ total_steps: 5
285
+ }
286
+ )
287
+
288
+ # Feature usage
289
+ helix.track(
290
+ user_id: 'user-123',
291
+ event: 'feature_used',
292
+ properties: {
293
+ feature_name: 'advanced_search',
294
+ usage_count: 1,
295
+ user_plan: 'premium'
296
+ }
297
+ )
298
+ ```
299
+
300
+ ## Rails Integration
301
+
302
+ ### Initializer
303
+
304
+ Create `config/initializers/helix.rb`:
305
+
306
+ ```ruby
307
+ HelixSdk.configure do |config|
308
+ config.api_key = ENV['HELIX_API_KEY']
309
+ config.api_url = ENV['HELIX_API_URL']
310
+ config.company_id = ENV['HELIX_COMPANY_ID']
311
+ end
312
+ ```
313
+
314
+ ### Controller Usage
315
+
316
+ ```ruby
317
+ class ApplicationController < ActionController::Base
318
+ before_action :track_page_view
319
+
320
+ private
321
+
322
+ def track_page_view
323
+ HelixSdk.page(
324
+ user_id: current_user&.id,
325
+ name: controller_name.humanize,
326
+ properties: {
327
+ action: action_name,
328
+ url: request.url,
329
+ user_agent: request.user_agent
330
+ }
331
+ )
332
+ end
333
+ end
334
+ ```
335
+
336
+ ### Model Integration
337
+
338
+ ```ruby
339
+ class User < ApplicationRecord
340
+ after_create :track_signup
341
+ after_update :track_profile_update
342
+
343
+ private
344
+
345
+ def track_signup
346
+ HelixSdk.track(
347
+ user_id: id,
348
+ event: 'user_signup',
349
+ properties: {
350
+ email: email,
351
+ plan: plan,
352
+ source: utm_source
353
+ }
354
+ )
355
+ end
356
+
357
+ def track_profile_update
358
+ HelixSdk.track(
359
+ user_id: id,
360
+ event: 'profile_updated',
361
+ properties: {
362
+ fields_changed: changed_attributes.keys
363
+ }
364
+ )
365
+ end
366
+ end
367
+ ```
368
+
369
+ ## Testing
370
+
371
+ ### RSpec Integration
372
+
373
+ ```ruby
374
+ # spec/spec_helper.rb
375
+ require 'helix_sdk'
376
+ require 'webmock/rspec'
377
+
378
+ RSpec.configure do |config|
379
+ config.before(:each) do
380
+ # Stub Helix API calls in tests
381
+ stub_request(:post, /helix-sdk/)
382
+ .to_return(status: 200, body: '{"success": true}')
383
+ end
384
+ end
385
+ ```
386
+
387
+ ### Test Examples
388
+
389
+ ```ruby
390
+ RSpec.describe 'User tracking' do
391
+ let(:helix) { HelixSdk::Client.new(api_key: 'test-key') }
392
+
393
+ it 'tracks user signup' do
394
+ expect {
395
+ helix.track(
396
+ user_id: 'user-123',
397
+ event: 'signup',
398
+ properties: { plan: 'free' }
399
+ )
400
+ }.not_to raise_error
401
+ end
402
+ end
403
+ ```
404
+
405
+ ## Development
406
+
407
+ ### Setup
408
+
409
+ ```bash
410
+ git clone https://github.com/3-Elements-Design/helix-analytics-sdk.git
411
+ cd helix-analytics-sdk/sdk/ruby
412
+ bundle install
413
+ ```
414
+
415
+ ### Running Tests
416
+
417
+ ```bash
418
+ bundle exec rspec
419
+ ```
420
+
421
+ ### Code Quality
422
+
423
+ ```bash
424
+ bundle exec rubocop
425
+ ```
426
+
427
+ ### Documentation
428
+
429
+ ```bash
430
+ bundle exec yard doc
431
+ ```
432
+
433
+ ## Contributing
434
+
435
+ 1. Fork the repository
436
+ 2. Create your feature branch (`git checkout -b feature/amazing-feature`)
437
+ 3. Commit your changes (`git commit -am 'Add amazing feature'`)
438
+ 4. Push to the branch (`git push origin feature/amazing-feature`)
439
+ 5. Open a Pull Request
440
+
441
+ ## License
442
+
443
+ This project is licensed under the MIT License - see the [LICENSE](../../LICENSE) file for details.
444
+
445
+ ## Support
446
+
447
+ - **Documentation**: [GitHub Repository](https://github.com/3-Elements-Design/helix-analytics-sdk)
448
+ - **Issues**: [GitHub Issues](https://github.com/3-Elements-Design/helix-analytics-sdk/issues)
449
+ - **Email**: support@helix-analytics.com
450
+
451
+ ---
452
+
453
+ **Transform your Ruby applications with powerful analytics and business intelligence.**
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module HelixSdk
4
+ VERSION = "1.0.0"
5
+ end
data/lib/helix_sdk.rb ADDED
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "helix_sdk/version"
4
+ require_relative "helix_sdk/configuration"
5
+ require_relative "helix_sdk/client"
6
+ require_relative "helix_sdk/event"
7
+ require_relative "helix_sdk/batch_processor"
8
+ require_relative "helix_sdk/middleware/rails" if defined?(Rails)
9
+
10
+ module HelixSdk
11
+ class Error < StandardError; end
12
+ class ConfigurationError < Error; end
13
+ class APIError < Error; end
14
+ class TimeoutError < Error; end
15
+
16
+ class << self
17
+ attr_accessor :configuration
18
+
19
+ def configure
20
+ self.configuration ||= Configuration.new
21
+ yield(configuration) if block_given?
22
+ configuration
23
+ end
24
+
25
+ def client
26
+ @client ||= Client.new(configuration)
27
+ end
28
+
29
+ # Convenience methods that delegate to the default client
30
+ def track(user_id:, event:, **options)
31
+ client.track(user_id: user_id, event: event, **options)
32
+ end
33
+
34
+ def identify(user_id:, **options)
35
+ client.identify(user_id: user_id, **options)
36
+ end
37
+
38
+ def page(user_id:, **options)
39
+ client.page(user_id: user_id, **options)
40
+ end
41
+
42
+ def screen(user_id:, **options)
43
+ client.screen(user_id: user_id, **options)
44
+ end
45
+
46
+ def batch(events)
47
+ client.batch(events)
48
+ end
49
+
50
+ def flush
51
+ client.flush
52
+ end
53
+ end
54
+ end
metadata ADDED
@@ -0,0 +1,177 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: helix_sdk
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - Helix SDK Team
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: faraday
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '2.0'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '2.0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: faraday-retry
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '2.0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.0'
40
+ - !ruby/object:Gem::Dependency
41
+ name: concurrent-ruby
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '1.1'
47
+ type: :runtime
48
+ prerelease: false
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '1.1'
54
+ - !ruby/object:Gem::Dependency
55
+ name: bundler
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '2.0'
61
+ type: :development
62
+ prerelease: false
63
+ version_requirements: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '2.0'
68
+ - !ruby/object:Gem::Dependency
69
+ name: rake
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '13.0'
75
+ type: :development
76
+ prerelease: false
77
+ version_requirements: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '13.0'
82
+ - !ruby/object:Gem::Dependency
83
+ name: rspec
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '3.0'
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '3.0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: webmock
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '3.0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '3.0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: rubocop
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '1.0'
117
+ type: :development
118
+ prerelease: false
119
+ version_requirements: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '1.0'
124
+ - !ruby/object:Gem::Dependency
125
+ name: yard
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0.9'
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '0.9'
138
+ description: Official Ruby SDK for Helix Analytics - AI-powered growth analytics platform
139
+ with enhanced business intelligence capabilities
140
+ email:
141
+ - support@hangarx.ai
142
+ executables: []
143
+ extensions: []
144
+ extra_rdoc_files: []
145
+ files:
146
+ - Gemfile
147
+ - Gemfile.lock
148
+ - README.md
149
+ - lib/helix_sdk.rb
150
+ - lib/helix_sdk/version.rb
151
+ homepage: https://github.com/3-Elements-Design/helix-sdk
152
+ licenses:
153
+ - MIT
154
+ metadata:
155
+ allowed_push_host: https://rubygems.org
156
+ homepage_uri: https://github.com/3-Elements-Design/helix-sdk
157
+ source_code_uri: https://github.com/3-Elements-Design/helix-sdk
158
+ changelog_uri: https://github.com/3-Elements-Design/helix-sdk/blob/main/CHANGELOG.md
159
+ documentation_uri: https://github.com/3-Elements-Design/helix-sdk/tree/main/sdk/ruby
160
+ rdoc_options: []
161
+ require_paths:
162
+ - lib
163
+ required_ruby_version: !ruby/object:Gem::Requirement
164
+ requirements:
165
+ - - ">="
166
+ - !ruby/object:Gem::Version
167
+ version: 2.7.0
168
+ required_rubygems_version: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '0'
173
+ requirements: []
174
+ rubygems_version: 3.6.9
175
+ specification_version: 4
176
+ summary: Ruby SDK for Helix Analytics
177
+ test_files: []