Class: EasyAI::Base::SystemInfo
- Inherits:
-
Object
- Object
- EasyAI::Base::SystemInfo
- Defined in:
- lib/easyai/base/system_info.rb
Class Method Summary collapse
-
.claude_auth_check_details ⇒ Object
获取 claude_auth 环境检查详情.
- .current_shell ⇒ Object
-
.current_user ⇒ Object
用户和环境 ===.
-
.is_english_environment? ⇒ Boolean
检查是否为英语环境.
- .is_us_region? ⇒ Boolean
- .linux? ⇒ Boolean
- .macos? ⇒ Boolean
-
.meets_claude_auth_requirements? ⇒ Boolean
检查是否满足 claude_auth 的环境要求.
-
.platform ⇒ Object
平台检测 ===.
-
.region_info ⇒ Object
地区和语言检测(仅在需要时调用)===.
- .shell_config_files ⇒ Object
-
.which_command(cmd) ⇒ Object
命令检测 ===.
- .windows? ⇒ Boolean
Class Method Details
.claude_auth_check_details ⇒ Object
获取 claude_auth 环境检查详情
81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/easyai/base/system_info.rb', line 81 def claude_auth_check_details { os_supported: !windows?, os_name: platform.to_s.capitalize, is_us_region: is_us_region?, region: region_info[:region], is_english: is_english_environment?, locale: region_info[:locale], meets_requirements: meets_claude_auth_requirements? } end |
.current_shell ⇒ Object
30 31 32 |
# File 'lib/easyai/base/system_info.rb', line 30 def current_shell @current_shell ||= ENV['SHELL']&.split('/')&.last || 'bash' end |
.current_user ⇒ Object
用户和环境 ===
26 27 28 |
# File 'lib/easyai/base/system_info.rb', line 26 def current_user @current_user ||= Etc.getlogin || ENV['USER'] || ENV['LOGNAME'] end |
.is_english_environment? ⇒ Boolean
检查是否为英语环境
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/easyai/base/system_info.rb', line 48 def is_english_environment? info = region_info case platform when :macos # macOS: 检查 locale 和首选语言 locale_english = info[:locale].to_s.start_with?('en_') || info[:locale].to_s.start_with?('en.') apple_locale_english = info[:apple_locale].to_s.start_with?('en_') first_lang_english = info[:apple_languages].to_s.start_with?('en') # 任一为英语即可 locale_english || apple_locale_english || first_lang_english when :windows # Windows: 检查系统和用户地区 system_english = info[:system_locale].to_s.start_with?('en-') user_english = info[:user_locale].to_s.start_with?('en-') locale_english = info[:locale].to_s.start_with?('en_') || info[:locale].to_s.start_with?('en.') # 任一为英语即可 system_english || user_english || locale_english else # Linux/其他: 检查 LANG 环境变量 locale = info[:locale].to_s locale.start_with?('en_') || locale.start_with?('en.') end end |
.is_us_region? ⇒ Boolean
43 44 45 |
# File 'lib/easyai/base/system_info.rb', line 43 def is_us_region? region_info[:is_us] end |
.linux? ⇒ Boolean
21 22 23 |
# File 'lib/easyai/base/system_info.rb', line 21 def linux? platform == :linux end |
.macos? ⇒ Boolean
13 14 15 |
# File 'lib/easyai/base/system_info.rb', line 13 def macos? platform == :macos end |
.meets_claude_auth_requirements? ⇒ Boolean
检查是否满足 claude_auth 的环境要求
76 77 78 |
# File 'lib/easyai/base/system_info.rb', line 76 def meets_claude_auth_requirements? !windows? && is_us_region? && is_english_environment? end |
.platform ⇒ Object
平台检测 ===
9 10 11 |
# File 'lib/easyai/base/system_info.rb', line 9 def platform @platform ||= detect_platform end |
.region_info ⇒ Object
地区和语言检测(仅在需要时调用)===
39 40 41 |
# File 'lib/easyai/base/system_info.rb', line 39 def region_info @region_info ||= detect_region_info end |
.shell_config_files ⇒ Object
34 35 36 |
# File 'lib/easyai/base/system_info.rb', line 34 def shell_config_files @shell_config_files ||= detect_shell_config_files end |
.which_command(cmd) ⇒ Object
命令检测 ===
94 95 96 97 98 99 100 |
# File 'lib/easyai/base/system_info.rb', line 94 def which_command(cmd) if windows? system("where #{cmd} >nul 2>&1") else system("which #{cmd} > /dev/null 2>&1") end end |
.windows? ⇒ Boolean
17 18 19 |
# File 'lib/easyai/base/system_info.rb', line 17 def windows? platform == :windows end |