Class: Whoosh::ClientGen::DependencyChecker
- Inherits:
-
Object
- Object
- Whoosh::ClientGen::DependencyChecker
- Defined in:
- lib/whoosh/client_gen/dependency_checker.rb
Constant Summary collapse
- DEPENDENCIES =
{ react_spa: [{ cmd: "node", check: "node --version", min_version: "18" }], expo: [ { cmd: "node", check: "node --version", min_version: "18" }, { cmd: "npx", check: "npx expo --version", min_version: nil } ], ios: [{ cmd: "xcodebuild", check: "xcodebuild -version", min_version: "15" }], flutter: [{ cmd: "flutter", check: "flutter --version", min_version: "3" }], htmx: [], telegram_bot: [{ cmd: "ruby", check: "ruby --version", min_version: "3.2" }], telegram_mini_app: [{ cmd: "node", check: "node --version", min_version: "18" }] }.freeze
Class Method Summary collapse
Class Method Details
.check(client_type) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/whoosh/client_gen/dependency_checker.rb', line 20 def self.check(client_type) deps = DEPENDENCIES[client_type.to_sym] || [] return { ok: true, dependencies: [], missing: [] } if deps.empty? missing = [] deps.each do |dep| output = `#{dep[:check]} 2>/dev/null`.strip if output.empty? missing << dep elsif dep[:min_version] version = output.scan(/(\d+)\./)[0]&.first if version && version.to_i < dep[:min_version].to_i missing << dep.merge(found_version: version) end end end { ok: missing.empty?, dependencies: deps.map { |d| d[:cmd] }, missing: missing } end |
.dependency_for(client_type) ⇒ Object
44 45 46 |
# File 'lib/whoosh/client_gen/dependency_checker.rb', line 44 def self.dependency_for(client_type) DEPENDENCIES[client_type.to_sym] || [] end |