Sha256: 08209ecbe6bcede373ee793c447e496b32e704e946cb57da681793f4c400a98e

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

# This class reads an application model file and turns it into an
# ApplicationModel instance.

require_relative 'application_model'
require 'katapult/model'
require 'katapult/wui'
require 'katapult/navigation'
require 'katapult/authentication'

module Katapult
  class Parser

    def initialize
      self.application_model = Katapult::ApplicationModel.new
    end

    def parse(path_to_app_model_file)
      instance_eval File.read(path_to_app_model_file), path_to_app_model_file

      application_model
    end

    def model(name, options = {}, &block)
      application_model.add_model Model.new(name, options, &block)
    end

    def wui(name, options = {}, &block)
      application_model.add_wui WUI.new(name, options, &block)
    end

    def navigation(name)
      application_model.set_navigation Navigation.new(name)
    end

    def authenticate(name, system_email:)
      application_model.set_authentication Authentication.new(name,
        system_email: system_email
      )
    end

    private

    attr_accessor :application_model

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
katapult-0.2.0 lib/katapult/parser.rb