class DhEasy::Router::Seeder

Seeder router designed to execute all seeders classes.

Public Instance Methods

route(opts = {}) click to toggle source

Execute the seeder class with options as described by router

configuration and calling class's instance `seed` method.

@param [Hash] opts ({}) Seeder initializer options (see

DhEasy::Core::Plugin::Seeder).

@raise [ArgumentError] `opts` is `nil`. @raise [ArgumentError] `page_type` doesn't exists within routes. @raise [NameError] A class with name equal to route's `class` attribute

doesn't exists.

@note Requires the route class to implement `seed` instance method.

# File lib/dh_easy/router/seeder.rb, line 19
def route opts = {}
  context = opts[:context]
  if opts[:context].nil?
    raise ArgumentError.new('Must send a context to the seeder.')
  end

  class_name = nil
  config['seeder']['routes'].each do |item|
    # Validate class name
    executor_class = get_class item['class']
    if executor_class.nil?
      raise NameError.new("Class \"#{item['class']}\" doesn't exists, check your dh_easy config file.")
    end

    executor_class.new(opts).seed
  end
end