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 +7 -0
- data/Gemfile +11 -0
- data/Gemfile.lock +99 -0
- data/README.md +453 -0
- data/lib/helix_sdk/version.rb +5 -0
- data/lib/helix_sdk.rb +54 -0
- metadata +177 -0
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
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.**
|
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: []
|