Class: ArcadiaGemsWizard
- Inherits:
-
Object
- Object
- ArcadiaGemsWizard
- Defined in:
- lib/a-core.rb
Instance Method Summary collapse
-
#initialize(_arcadia) ⇒ ArcadiaGemsWizard
constructor
A new instance of ArcadiaGemsWizard.
- #on_need_ruby_gem_wizard(_event) ⇒ Object
-
#try_to_install_gem(name, repository = nil, version = '>0') ⇒ Object
def on_need_ruby_gem_wizard(_event) msg = “Appears that gem : ‘#_event_event.gem_name’ required by : ‘#_event_event.extension_name’ is not installed!n Do you want to try install it now?” ans = Tk.messageBox(‘icon’ => ‘error’, ‘type’ => ‘yesno’, ‘title’ => “(Arcadia) Extensions ‘#_event_event.extension_name’”, ‘message’ => msg) if ans == ‘yes’ _event.add_result(self, ‘installed’=>try_to_install_gem(_event.gem_name,_event.gem_repository)) else _event.add_result(self, ‘installed’=>false) end end.
Constructor Details
#initialize(_arcadia) ⇒ ArcadiaGemsWizard
Returns a new instance of ArcadiaGemsWizard.
2262 2263 2264 2265 |
# File 'lib/a-core.rb', line 2262 def initialize(_arcadia) @arcadia = _arcadia Arcadia.attach_listener(self, NeedRubyGemWizardEvent) end |
Instance Method Details
#on_need_ruby_gem_wizard(_event) ⇒ Object
2267 2268 2269 2270 2271 2272 2273 |
# File 'lib/a-core.rb', line 2267 def on_need_ruby_gem_wizard(_event) msg = "Appears that gem : '#{_event.gem_name}' required by : '#{_event.extension_name}' is not installed!\n Install it from gem?" ArcadiaProblemEvent.new(self, "type"=>ArcadiaProblemEvent::DEPENDENCE_MISSING_TYPE,"title"=>"Gem '#{_event.gem_name}' missing!", "detail"=>msg).go! # Arcadia.process_event(ArcadiaProblemEvent.new(self, "type"=>ArcadiaProblemEvent::DEPENDENCE_MISSING_TYPE,"title"=>"Gem '#{_event.gem_name}' missing!", "detail"=>msg)) end |
#try_to_install_gem(name, repository = nil, version = '>0') ⇒ Object
def on_need_ruby_gem_wizard(_event)
msg = "Appears that gem : '#{_event.gem_name}' required by : '#{_event.extension_name}' is not installed!\n Do you want to try install it now?"
ans = Tk.messageBox('icon' => 'error', 'type' => 'yesno',
'title' => "(Arcadia) Extensions '#{_event.extension_name}'",
'message' => msg)
if ans == 'yes'
_event.add_result(self, 'installed'=>try_to_install_gem(_event.gem_name,_event.gem_repository))
else
_event.add_result(self, 'installed'=>false)
end
end
2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 |
# File 'lib/a-core.rb', line 2288 def try_to_install_gem(name, repository=nil, version = '>0') ret = false sh=ArcadiaSh.new cmd = "gem install --remote --include-dependencies #{name}" cmd="sudo #{cmd}" if !Arcadia.is_windows? cmd+=" --source=#{repository}" if repository sh.prepare_exec(cmd) while sh.wait Tk.update #sleep(1) end ret=sh.result sh.destroy Gem.clear_paths ret end |