seline 0.1.0 → 0.1.1

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 (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/seline/version.rb +3 -0
  3. data/lib/seline.rb +66 -0
  4. metadata +13 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7d70a1fe10cc0194ffc086dfce8c8a4a0a097440bde33ebfea26d59f393c1b06
4
- data.tar.gz: 2a065ee71e3c42f859b422b204465d235ce4f12fcc577e63119a3ea90f52f9ef
3
+ metadata.gz: 76e9fb02a0f06248dbef3c7452cac7fd08dae69fbefcfb6e16cec2947e1e4cd7
4
+ data.tar.gz: aff904ee5c13b301bf90be6dab93592702e74a1a5b007c25b135c7bc3089b993
5
5
  SHA512:
6
- metadata.gz: 120a3c6668dcfdf3d23c44775a2dff0061d252748a915b5da0926dfea7934fc051e450a17575ef8308c579af09aae148440332068bc800620b8acd48bad7d433
7
- data.tar.gz: 2a446c40aba1766a4864780ad6fcfd00ee19253434bcf44e982b87492a8d8f3ff69b415e06753d25ee15274136279fe648206d5e77a71eacc6bb01929850753b
6
+ metadata.gz: 27b878317391b8056f6df436e36b8920de2e4d9dff8f1b7688fc8a322eea19856f5e917d46339b416cf5d830731b5f4627ca44ea4a4c07f9a4a4603ff34a6aad
7
+ data.tar.gz: 53a9b26fa670c7244a5228d9a1b494cd66894cc1861ace916e45a5ab597d82e2035a69ed37d6facf262939890d77521e46c63ff598adb6d610471a5c5f70bacb
@@ -0,0 +1,3 @@
1
+ module Seline
2
+ VERSION = "0.1.1"
3
+ end
data/lib/seline.rb ADDED
@@ -0,0 +1,66 @@
1
+ require "seline/version"
2
+ require 'net/http'
3
+ require 'uri'
4
+ require 'json'
5
+
6
+ module Seline
7
+ class << self
8
+ attr_accessor :configuration
9
+
10
+ def configure
11
+ self.configuration ||= Configuration.new
12
+ yield(configuration)
13
+ end
14
+
15
+ def track(event_name, user_id: nil, properties: {})
16
+ payload = {
17
+ name: event_name,
18
+ userId: user_id,
19
+ properties: properties
20
+ }.compact
21
+
22
+ send_request('/s/e', payload)
23
+ end
24
+
25
+ def set_user(user_id, properties = {})
26
+ payload = {
27
+ userId: user_id,
28
+ properties: properties
29
+ }
30
+
31
+ send_request('/s/su', payload)
32
+ end
33
+
34
+ private
35
+
36
+ def send_request(endpoint, payload)
37
+ raise 'Seline is not configured' if configuration.nil? || configuration.token.nil?
38
+
39
+ uri = URI.join(configuration.api_host, endpoint)
40
+ http = Net::HTTP.new(uri.host, uri.port)
41
+ http.use_ssl = (uri.scheme == 'https')
42
+
43
+ request = Net::HTTP::Post.new(uri.path, 'Content-Type' => 'application/json')
44
+ request.body = { token: configuration.token }.merge(payload).to_json
45
+
46
+ response = http.request(request)
47
+
48
+ unless response.is_a?(Net::HTTPSuccess)
49
+ raise "API request failed: #{response.code} #{response.message}"
50
+ end
51
+
52
+ JSON.parse(response.body)
53
+ rescue => e
54
+ puts "Error: #{e.message}"
55
+ raise
56
+ end
57
+ end
58
+
59
+ class Configuration
60
+ attr_accessor :token, :api_host
61
+
62
+ def initialize
63
+ @api_host = 'https://api.seline.so'
64
+ end
65
+ end
66
+ end
metadata CHANGED
@@ -1,68 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: seline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
- - Your Name
7
+ - John Paul
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
11
  date: 2024-07-25 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: bundler
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '2.0'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '2.0'
27
- - !ruby/object:Gem::Dependency
28
- name: rake
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '13.0'
34
- type: :development
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '13.0'
41
- - !ruby/object:Gem::Dependency
42
- name: rspec
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3.0'
48
- type: :development
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3.0'
55
- description: A simple wrapper for the Seline analytics API
12
+ dependencies: []
13
+ description: Ruby wrapper for seline.so API
56
14
  email:
57
- - your.email@example.com
15
+ - johnarpaul@gmail.com
58
16
  executables: []
59
17
  extensions: []
60
18
  extra_rdoc_files: []
61
- files: []
62
- homepage: https://github.com/yourusername/seline
19
+ files:
20
+ - lib/seline.rb
21
+ - lib/seline/version.rb
22
+ homepage: https://github.com/dqnamo/seline-ruby
63
23
  licenses:
64
24
  - MIT
65
- metadata: {}
25
+ metadata:
26
+ homepage_uri: https://github.com/dqnamo/seline-ruby
66
27
  post_install_message:
67
28
  rdoc_options: []
68
29
  require_paths:
@@ -71,7 +32,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
71
32
  requirements:
72
33
  - - ">="
73
34
  - !ruby/object:Gem::Version
74
- version: '0'
35
+ version: 3.0.0
75
36
  required_rubygems_version: !ruby/object:Gem::Requirement
76
37
  requirements:
77
38
  - - ">="
@@ -81,5 +42,5 @@ requirements: []
81
42
  rubygems_version: 3.4.10
82
43
  signing_key:
83
44
  specification_version: 4
84
- summary: Ruby wrapper for Seline analytics API
45
+ summary: Ruby wrapper for seline.so API
85
46
  test_files: []