qodex-rails 0.1.11 → 0.1.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c8e7c8249409adc8de47a8555086b640d715b3efa3fb674a6c816330cfa92002
4
- data.tar.gz: e6cbd949bfe1859b150e00b14d310d549e68fa018bad5a12eefa6d14d7adb5fc
3
+ metadata.gz: a262b4d3d39e45f79225e099292a23a4ce9252e868417e5c8d8afa5cd241612d
4
+ data.tar.gz: 236f581a2dac8c015f7e8fe89345ed666c251d6a84bceaff03f4d762e8e4fb57
5
5
  SHA512:
6
- metadata.gz: ef9e17cbe5f8d6899c13b28221d673dc90597232501fcb37aa8d7a4c1e5c67706312d38af792618d9f6825803481ee8847b35b936c0e3b501e1c4feb8e40fb35
7
- data.tar.gz: bfd3cbfec0187b9cb6dcd457ec5fdf5733dfe641b2327600eae950c2a8e5da64ee8092417d1da52623bc60171302daa43505f320d00193c5d96b0222d71f9310
6
+ metadata.gz: c7601c3ee35b8553318cf90c13c04d893ef86aacda9cf1b87d5a3cd1b4933f67eca99484a455cd70c1cb9ccb343c0408e964a2e228c7f6f02d743d658915eca8
7
+ data.tar.gz: 878eb28294a829db2065d43e7d3c07f352d75ff5825607cf1e24b100fb4f9e22f59292f279114adfe287197a124ff659268fb5dcf61f7e116a8222599d645599
data/README.md CHANGED
@@ -22,7 +22,7 @@ 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.enabled_in_production = false # Set to true to enable in production
25
+ config.allowed_environments = ['staging', 'production'] # Default value is staging if not set. Add production to enable in production
26
26
  config.api_key = 'Your API Key'
27
27
  end
28
28
 
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Qodex
4
4
  module Rails
5
- VERSION = "0.1.11"
5
+ VERSION = "0.1.12"
6
6
  end
7
7
  end
@@ -1,11 +1,12 @@
1
1
  module QodexRails
2
2
  class Configuration
3
- attr_accessor :collection_name, :api_key, :enabled_in_production
3
+ attr_accessor :collection_name, :api_key, :allowed_environments, :frequency
4
4
 
5
5
  def initialize
6
6
  @collection_name = nil
7
7
  @api_key = nil
8
- @enabled_in_production = false
8
+ @allowed_environments = ['staging']
9
+ @frequency = 'medium'
9
10
  end
10
11
  end
11
12
  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
-
14
- is_staging = Rails.env.staging?
15
- enabled_in_production = Rails.env.production? && QodexRails.configuration.enabled_in_production
16
15
 
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,6 +22,15 @@ 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
 
@@ -1,3 +1,3 @@
1
1
  module QodexRails
2
- VERSION = "0.1.11"
2
+ VERSION = "0.1.12"
3
3
  end
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.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - sid
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-10-11 00:00:00.000000000 Z
11
+ date: 2023-11-02 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Intercept your rails application to power Qodex.ai AI copilot.
14
14
  email: