Sha256: 17a01622d29610545540a8b4765b45a440f98f83243d5eb4b8eb7fd62ef2fa0a

Contents?: true

Size: 791 Bytes

Versions: 3

Compression:

Stored size: 791 Bytes

Contents

# Internal representation of an application model file.

module Katapult
  class ApplicationModel

    attr_reader :models, :wuis, :navigation

    def initialize
      @models = []
      @wuis = []
    end

    def add_model(model)
      model.set_application_model(self)
      @models << model
    end

    def get_model(name)
      models.find { |m| m.name == name }
    end

    def add_wui(wui)
      wui.set_application_model(self)
      @wuis << wui
    end

    def get_wui(name)
      wuis.find { |w| w.name == name }
    end

    def set_navigation(navigation)
      navigation.set_application_model(self)
      @navigation = navigation
    end

    # ---

    def render
      models.each &:render
      wuis.each &:render
      navigation.render if navigation
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
katapult-0.1.2 lib/katapult/application_model.rb
katapult-0.1.1 lib/katapult/application_model.rb
katapult-0.1.0 lib/katapult/application_model.rb