Module: LanguageOperator::Dsl::Helpers
- Included in:
- Context, ExecutionContext, ToolDefinition
- Defined in:
- lib/language_operator/dsl/helpers.rb
Overview
Common helper methods for MCP tools
Provides validation, formatting, and utility methods that can be used within tool execute blocks. All methods are instance methods that get mixed into the tool execution context.
Instance Method Summary collapse
-
#env_get(*keys, default: nil) ⇒ Object
Get environment variable with fallbacks.
-
#env_required(*vars) ⇒ Object
Check required environment variables.
-
#error(message) ⇒ Object
Format error message.
-
#parse_csv(str) ⇒ Object
Parse comma-separated values.
-
#run_command(_cmd) ⇒ Object
deprecated
Deprecated.
This method has been removed for security reasons. Use Shell.run instead.
-
#shell_escape(str) ⇒ Object
deprecated
Deprecated.
This method is deprecated and will be removed for security reasons
-
#success(message) ⇒ Object
Format success message.
-
#truncate(text, max_length: 2000, suffix: '...') ⇒ Object
Truncate text to a maximum length.
-
#validate_email(email) ⇒ String?
Validate email address format.
-
#validate_phone(number) ⇒ String?
Validate phone number in E.164 format.
-
#validate_url(url) ⇒ String?
Validate URL format.
Instance Method Details
#env_get(*keys, default: nil) ⇒ Object
Get environment variable with fallbacks
76 77 78 79 80 81 82 |
# File 'lib/language_operator/dsl/helpers.rb', line 76 def env_get(*keys, default: nil) keys.each do |key| value = ENV.fetch(key, nil) return value if value end default end |
#env_required(*vars) ⇒ Object
Check required environment variables
68 69 70 71 72 73 |
# File 'lib/language_operator/dsl/helpers.rb', line 68 def env_required(*vars) missing = vars.reject { |v| ENV.fetch(v, nil) } return "Error: Missing required environment variables: #{missing.join(', ')}" unless missing.empty? nil end |
#error(message) ⇒ Object
Format error message
99 100 101 |
# File 'lib/language_operator/dsl/helpers.rb', line 99 def error() "Error: #{}" end |
#parse_csv(str) ⇒ Object
Parse comma-separated values
92 93 94 95 96 |
# File 'lib/language_operator/dsl/helpers.rb', line 92 def parse_csv(str) return [] if str.nil? || str.empty? str.split(',').map(&:strip).reject(&:empty?) end |
#run_command(_cmd) ⇒ Object
This method has been removed for security reasons. Use Shell.run instead.
Run a command and return structured result
63 64 65 |
# File 'lib/language_operator/dsl/helpers.rb', line 63 def run_command(_cmd) raise SecurityError, 'run_command has been removed for security reasons. Use Shell.run instead.' end |
#shell_escape(str) ⇒ Object
This method is deprecated and will be removed for security reasons
Shell escape for backtick execution (deprecated - use Shell.run instead)
55 56 57 58 |
# File 'lib/language_operator/dsl/helpers.rb', line 55 def shell_escape(str) warn 'DEPRECATION WARNING: shell_escape is deprecated and should not be used' Shellwords.escape(str.to_s) end |
#success(message) ⇒ Object
Format success message
104 105 106 |
# File 'lib/language_operator/dsl/helpers.rb', line 104 def success() end |
#truncate(text, max_length: 2000, suffix: '...') ⇒ Object
Truncate text to a maximum length
85 86 87 88 89 |
# File 'lib/language_operator/dsl/helpers.rb', line 85 def truncate(text, max_length: 2000, suffix: '...') return text if text.length <= max_length text[0...max_length] + suffix end |
#validate_email(email) ⇒ String?
Validate email address format
47 48 49 50 51 |
# File 'lib/language_operator/dsl/helpers.rb', line 47 def validate_email(email) return 'Error: Invalid email format' unless email =~ /\A[\w+\-.]+@[a-z\d-]+(\.[a-z\d-]+)*\.[a-z]+\z/i nil end |
#validate_phone(number) ⇒ String?
Validate phone number in E.164 format
37 38 39 40 41 |
# File 'lib/language_operator/dsl/helpers.rb', line 37 def validate_phone(number) return 'Error: Invalid phone number format. Use E.164 format (e.g., +1234567890)' unless number =~ /^\+\d{10,15}$/ nil end |
#validate_url(url) ⇒ String?
Validate URL format
27 28 29 30 31 |
# File 'lib/language_operator/dsl/helpers.rb', line 27 def validate_url(url) return 'Error: Invalid URL. Must start with http:// or https://' unless url =~ %r{^https?://} nil end |