qodex-rails 0.1.11 → 0.1.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/qodex/rails/version.rb +1 -1
- data/lib/qodex-rails/configuration.rb +4 -2
- data/lib/qodex-rails/middleware.rb +19 -9
- data/lib/qodex-rails/version.rb +1 -1
- data/qodex-rails-0.1.12.gem +0 -0
- metadata +7 -15
- data/qodex-rails-0.1.0.gem +0 -0
- data/qodex-rails-0.1.1.gem +0 -0
- data/qodex-rails-0.1.10.gem +0 -0
- data/qodex-rails-0.1.2.gem +0 -0
- data/qodex-rails-0.1.3.gem +0 -0
- data/qodex-rails-0.1.4.gem +0 -0
- data/qodex-rails-0.1.5.gem +0 -0
- data/qodex-rails-0.1.8.gem +0 -0
- data/qodex-rails-0.1.9.gem +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53f423fa70f86f62f2a1a68fd591468b03b62e5f81792539fd012ee4a10bac80
|
4
|
+
data.tar.gz: 7d1a50e23f1bf56ca65120f66b41871e4de476bfe55359415f528e0931e38a4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e7394d3f7afa7297acf0cff2e8cce1b887b3e49e03a9a0df009ea39be41e712858bc34d2ad154f18bc07e3037c1cc1d43aa1dbab618cf929be9bc427461737b
|
7
|
+
data.tar.gz: f136cf35b976b3aa138dd03f28fc4a93aa463910cdc05cb5444009caf3370a7408315311d6c4ef3e3c7c647ba14055f54f7a2abc19161262bd035a2228ca1d87
|
data/README.md
CHANGED
@@ -22,7 +22,8 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
22
22
|
# Your configuration settings for qodex-rails in the staging environment
|
23
23
|
project_name = Rails.application.class.module_parent_name rescue 'qodex'
|
24
24
|
config.collection_name = "#{project_name}-#{Rails.env}" # Name of the collection where logs will be stored
|
25
|
-
config.
|
25
|
+
config.allowed_environments = ['staging', 'production'] # Default value is staging if not set. Add production to enable in production
|
26
|
+
config.frequency = 'high' #default value is medium. to control the speed of the logs processing
|
26
27
|
config.api_key = 'Your API Key'
|
27
28
|
end
|
28
29
|
|
data/lib/qodex/rails/version.rb
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
module QodexRails
|
2
2
|
class Configuration
|
3
|
-
attr_accessor :collection_name, :api_key, :
|
3
|
+
attr_accessor :collection_name, :api_key, :allowed_environments, :frequency, :api_host
|
4
4
|
|
5
5
|
def initialize
|
6
6
|
@collection_name = nil
|
7
7
|
@api_key = nil
|
8
|
-
@
|
8
|
+
@allowed_environments = ['staging']
|
9
|
+
@frequency = 'medium'
|
10
|
+
@api_host = nil
|
9
11
|
end
|
10
12
|
end
|
11
13
|
end
|
@@ -7,14 +7,14 @@ module QodexRails
|
|
7
7
|
def initialize(app)
|
8
8
|
@app = app
|
9
9
|
@mutex = Mutex.new # Mutex for thread-safe logging
|
10
|
+
@allowed_environments = QodexRails.configuration.allowed_environments || ['staging']
|
11
|
+
@frequency = QodexRails.configuration.frequency || 'low'
|
10
12
|
end
|
11
13
|
|
12
14
|
def call(env)
|
13
15
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
return @app.call(env) unless is_staging || enabled_in_production
|
16
|
+
# Check if the current environment is allowed
|
17
|
+
return @app.call(env) unless @allowed_environments.include?(Rails.env)
|
18
18
|
|
19
19
|
# Exit early if collection_name or api_key are not configured
|
20
20
|
unless QodexRails.configuration.collection_name && QodexRails.configuration.api_key
|
@@ -22,23 +22,32 @@ module QodexRails
|
|
22
22
|
return @app.call(env)
|
23
23
|
end
|
24
24
|
|
25
|
+
# Decide whether to log based on frequency setting
|
26
|
+
random_number = rand(20) + 1
|
27
|
+
case @frequency
|
28
|
+
when 'low'
|
29
|
+
return @app.call(env) unless random_number == 1
|
30
|
+
when 'medium'
|
31
|
+
return @app.call(env) unless random_number <= 4
|
32
|
+
end
|
33
|
+
|
25
34
|
# Print the initializer keys to the output
|
26
35
|
# Rails.logger.info "QodexRails Initializer Keys: Collection Name: #{QodexRails.configuration.collection_name}, API Key: #{QodexRails.configuration.api_key}"
|
27
36
|
|
28
37
|
start_time = Time.now
|
29
|
-
|
38
|
+
|
30
39
|
# Capture the request details
|
31
40
|
request = Rack::Request.new(env)
|
32
41
|
request_body = request.body.read
|
33
42
|
request.body.rewind
|
34
|
-
|
43
|
+
|
35
44
|
status, headers, response = @app.call(env)
|
36
|
-
|
45
|
+
|
37
46
|
end_time = Time.now
|
38
47
|
|
39
48
|
# Capture the response details
|
40
49
|
response_body = extract_body(response)
|
41
|
-
|
50
|
+
|
42
51
|
# Construct the logs
|
43
52
|
logs = {
|
44
53
|
collection_name: QodexRails.configuration.collection_name,
|
@@ -84,7 +93,8 @@ module QodexRails
|
|
84
93
|
end
|
85
94
|
|
86
95
|
def send_to_api(logs)
|
87
|
-
|
96
|
+
api_host = QodexRails.configuration.api_host || 'https://api.app.qodex.ai'
|
97
|
+
uri = URI("#{api_host}/api/v1/collections/create_sample_data/#{QodexRails.configuration.api_key}")
|
88
98
|
request = Net::HTTP::Post.new(uri, 'Content-Type' => 'application/json')
|
89
99
|
request.body = JSON.generate(logs)
|
90
100
|
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == 'https') do |http|
|
data/lib/qodex-rails/version.rb
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qodex-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sid
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-05-30 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Intercept your rails application to power Qodex.ai AI copilot.
|
14
14
|
email:
|
@@ -30,15 +30,7 @@ files:
|
|
30
30
|
- lib/qodex-rails/version.rb
|
31
31
|
- lib/qodex/rails.rb
|
32
32
|
- lib/qodex/rails/version.rb
|
33
|
-
- qodex-rails-0.1.
|
34
|
-
- qodex-rails-0.1.1.gem
|
35
|
-
- qodex-rails-0.1.10.gem
|
36
|
-
- qodex-rails-0.1.2.gem
|
37
|
-
- qodex-rails-0.1.3.gem
|
38
|
-
- qodex-rails-0.1.4.gem
|
39
|
-
- qodex-rails-0.1.5.gem
|
40
|
-
- qodex-rails-0.1.8.gem
|
41
|
-
- qodex-rails-0.1.9.gem
|
33
|
+
- qodex-rails-0.1.12.gem
|
42
34
|
- sig/qodex/rails.rbs
|
43
35
|
homepage: https://qodex.ai
|
44
36
|
licenses:
|
@@ -48,7 +40,7 @@ metadata:
|
|
48
40
|
homepage_uri: https://qodex.ai
|
49
41
|
source_code_uri: https://github.com/qodex-ai/qodex-rails
|
50
42
|
changelog_uri: https://github.com/qodex-ai/qodex-rails
|
51
|
-
post_install_message:
|
43
|
+
post_install_message:
|
52
44
|
rdoc_options: []
|
53
45
|
require_paths:
|
54
46
|
- lib
|
@@ -63,8 +55,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
63
55
|
- !ruby/object:Gem::Version
|
64
56
|
version: '0'
|
65
57
|
requirements: []
|
66
|
-
rubygems_version: 3.
|
67
|
-
signing_key:
|
58
|
+
rubygems_version: 3.5.3
|
59
|
+
signing_key:
|
68
60
|
specification_version: 4
|
69
61
|
summary: Intercept your rails application to power Qodex.ai AI copilot.
|
70
62
|
test_files: []
|
data/qodex-rails-0.1.0.gem
DELETED
Binary file
|
data/qodex-rails-0.1.1.gem
DELETED
Binary file
|
data/qodex-rails-0.1.10.gem
DELETED
Binary file
|
data/qodex-rails-0.1.2.gem
DELETED
Binary file
|
data/qodex-rails-0.1.3.gem
DELETED
Binary file
|
data/qodex-rails-0.1.4.gem
DELETED
Binary file
|
data/qodex-rails-0.1.5.gem
DELETED
Binary file
|
data/qodex-rails-0.1.8.gem
DELETED
Binary file
|
data/qodex-rails-0.1.9.gem
DELETED
Binary file
|