Module: Freightrain

Defined in:
lib/extensions/wx/dialog_helper.rb,
lib/freightrain/bootstrapper.rb,
lib/freightrain/ioc/registry.rb,
lib/freightrain/auto_requirer.rb,
lib/freightrain/ioc/container.rb,
lib/extensions/qt/dialog_helper.rb,
lib/extensions/gtk/dialog_helper.rb,
lib/freightrain-dev/auto_stubber.rb,
lib/extensions/qt/qt_bootstrapper.rb,
lib/extensions/wx/wx_bootstrapper.rb,
lib/freightrain/views/freight_view.rb,
lib/extensions/gtk/gtk_bootstrapper.rb,
lib/extensions/qt/interface_builder.rb,
lib/extensions/wx/interface_builder.rb,
lib/freightrain/signals/signal_host.rb,
lib/extensions/gtk/interface_builder.rb,
lib/freightrain/binding/binding_base.rb,
lib/freightrain/binding/binding_host.rb,
lib/freightrain/services/service_host.rb,
lib/freightrain/binding/binding_loader.rb,
lib/freightrain/elements/layout_widget.rb,
lib/freightrain/ioc/container_hookable.rb,
lib/freightrain/regions/freight_region.rb,
lib/freightrain/signals/freight_signal.rb,
lib/freightrain/binding/freight_binding.rb,
lib/freightrain/views/interface_builder.rb,
lib/freightrain/services/freight_service.rb,
lib/freightrain/viewmodels/dialog_extension.rb,
lib/freightrain/views/code_interface_builder.rb,
lib/freightrain/elements/freight_element_view.rb,
lib/freightrain/viewmodels/freight_view_model.rb,
lib/freightrain/binding/converters/float_converter.rb,
lib/freightrain/elements/freight_element_view_model.rb,
lib/freightrain/binding/converters/boolean_converter.rb,
lib/freightrain/binding/converters/converter_factory.rb,
lib/freightrain/binding/converters/default_converter.rb,
lib/freightrain/binding/converters/integer_converter.rb

Overview

TODO: remove this

Defined Under Namespace

Modules: BindingBase, BindingHost, ContainerHookable, DialogExtension, InterfaceBuilder, LayoutWidget, ServiceHost, SignalHost, Toolkit Classes: AutoStubber, BindingLoader, BooleanConverter, CodeInterfaceBuilder, ConverterFactory, DefaultConverter, FloatConverter, FreightBinding, FreightElementView, FreightElementViewModel, FreightRegion, FreightService, FreightSignal, FreightView, FreightViewModel, IntegerConverter, Registry

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#app_pathObject

Returns the value of attribute app_path.



5
6
7
# File 'lib/freightrain/bootstrapper.rb', line 5

def app_path
  @app_path
end

#toolkitObject

Returns the value of attribute toolkit.



4
5
6
# File 'lib/freightrain/bootstrapper.rb', line 4

def toolkit
  @toolkit
end

Class Method Details

.auto_require!Object



4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/freightrain/auto_requirer.rb', line 4

def self.auto_require!

  views_folder      = self.views_path
  viewmodels_folder = File.join(self.app_path, "viewmodels")
  services_folder   = File.join(self.app_path, "services")
  domain_folder     = File.join(self.app_path, "domain")

  require_all views_folder
  require_all viewmodels_folder
  require_all services_folder if self.must_import?(services_folder)
  require_all domain_folder   if self.must_import?(domain_folder)

end

Instance Method Details

#[](class_name) ⇒ Object



17
18
19
# File 'lib/freightrain/ioc/container.rb', line 17

def [](class_name)    
  return @registry.resolve(class_name)
end

#configure_container!(registry = Freightrain::Registry.new) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
# File 'lib/freightrain/ioc/container.rb', line 4

def configure_container!(registry = Freightrain::Registry.new)

  @registry = registry

  ContainerHookable.classes.each do |klass|
    klass.subclasses.each do |subclass|
      @registry.register(
        subclass, subclass.container_options)
    end
  end

end

#get_interface_builderObject



4
5
6
# File 'lib/freightrain/views/interface_builder.rb', line 4

def get_interface_builder
  return Toolkit::InterfaceBuilder.new    
end

#load_extensions!Object



14
15
16
17
18
19
20
21
22
# File 'lib/freightrain/bootstrapper.rb', line 14

def load_extensions!
  begin
    require File.dirname(__FILE__) + "/../extensions/#{@toolkit.to_s}/#{@toolkit.to_s}_bootstrapper.rb"
  rescue Exception => ex
    p "Could not load #{@toolkit}. Have you installed all the required libraries?"
    p "Exception : "
    p ex
  end
end

#start(viewmodel_name) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/freightrain/bootstrapper.rb', line 24

def start(viewmodel_name)
  @toolkit ||= :gtk
  load_extensions!
  auto_require!
  configure_container!
  yield if block_given?
  Toolkit.start_main_loop do
    Freightrain[(viewmodel_name.to_s + "_view_model").to_sym].show
  end
end

#views_pathObject



7
8
9
10
11
12
# File 'lib/freightrain/bootstrapper.rb', line 7

def views_path
  base_path = File.join(@app_path, "views")
  toolkit_path = File.join(base_path, @toolkit.to_s)
  return toolkit_path if File.exist?(toolkit_path)
  return base_path
end