Sha256: 24c16a5d0f4ee61d5279b172c47e08660cc7af33a9614d523574de4fe45382a1

Contents?: true

Size: 1.11 KB

Versions: 6

Compression:

Stored size: 1.11 KB

Contents

module Legion
  module Data
    module Models
      class << self
        attr_reader :loaded_models

        def models
          %w[user group extension chain relationship function task runner task_log datacenter environment node setting]
        end

        def load
          Legion::Logging.info 'Loading Legion::Data::Models'
          @loaded_models ||= []
          require_sequel_models(models)
          Legion::Settings[:data][:models][:loaded] = true
        end

        def require_sequel_models(files = models)
          Dir["#{File.dirname(__FILE__)}models/*.rb"].each { |file| puts file }
          files.each { |file| load_sequel_model(file) }
        end

        def load_sequel_model(model)
          Legion::Logging.debug("Trying to load #{model}.rb")
          require_relative "models/#{model}"
          @loaded_models << model
          Legion::Logging.debug("Successfully loaded #{model}")
          model
        rescue LoadError => e
          Legion::Logging.fatal("Failed to load #{model}")
          raise e unless Legion::Settings[:data][:models][:continue_on_fail]
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
legion-data-1.1.5 lib/legion/data/model.rb
legion-data-1.1.4 lib/legion/data/model.rb
legion-data-java-1.1.3 lib/legion/data/model.rb
legion-data-1.1.3 lib/legion/data/model.rb
legion-data-java-1.1.2 lib/legion/data/model.rb
legion-data-1.1.2 lib/legion/data/model.rb