Module: A2A::Utils::RailsDetection

Included in:
Configuration, Rails::A2aController, Rails::ControllerHelpers, Server::Middleware::LoggingMiddleware
Defined in:
lib/a2a/utils/rails_detection.rb

Instance Method Summary collapse

Instance Method Details

#rails_applicationRails::Application?

Get Rails application if available



63
64
65
66
67
68
# File 'lib/a2a/utils/rails_detection.rb', line 63

def rails_application
  return nil unless rails_available?
  return nil unless ::Rails.respond_to?(:application)

  ::Rails.application
end

#rails_available?Boolean

Check if Rails is available and properly defined



14
15
16
# File 'lib/a2a/utils/rails_detection.rb', line 14

def rails_available?
  defined?(::Rails) && ::Rails.respond_to?(:version)
end

#rails_development?Boolean

Check if we're in a Rails development environment



79
80
81
82
# File 'lib/a2a/utils/rails_detection.rb', line 79

def rails_development?
  env = rails_environment
  env && env == "development"
end

#rails_environmentString?

Get Rails environment if available



54
55
56
57
58
59
# File 'lib/a2a/utils/rails_detection.rb', line 54

def rails_environment
  return nil unless rails_available?
  return nil unless ::Rails.respond_to?(:env)

  ::Rails.env
end

#rails_loggerLogger?

Get Rails logger if available



45
46
47
48
49
50
# File 'lib/a2a/utils/rails_detection.rb', line 45

def rails_logger
  return nil unless rails_available?
  return nil unless ::Rails.respond_to?(:logger)

  ::Rails.logger
end

#rails_production?Boolean

Check if we're in a Rails production environment



72
73
74
75
# File 'lib/a2a/utils/rails_detection.rb', line 72

def rails_production?
  env = rails_environment
  env && env == "production"
end

#rails_versionString?

Get Rails version string if available



86
87
88
89
90
91
92
93
94
# File 'lib/a2a/utils/rails_detection.rb', line 86

def rails_version
  return nil unless rails_available?

  begin
    ::Rails.version
  rescue StandardError
    nil
  end
end

#rails_version_requires_validation?Boolean

Check if Rails version requires validation



20
21
22
23
24
25
26
27
28
29
# File 'lib/a2a/utils/rails_detection.rb', line 20

def rails_version_requires_validation?
  return false unless rails_available?

  begin
    ::Rails.version < "6.0"
  rescue StandardError
    # If we can't get the version, assume validation is not required
    false
  end
end

#rails_version_supported?Boolean

Check if Rails version is supported (6.0+)



33
34
35
36
37
38
39
40
41
# File 'lib/a2a/utils/rails_detection.rb', line 33

def rails_version_supported?
  return false unless rails_available?

  begin
    ::Rails.version >= "6.0"
  rescue StandardError
    false
  end
end