Class: Planter::Validator

Inherits:
Object
  • Object
show all
Defined in:
lib/planter/validator.rb

Overview

Performs read-only validation of the configured seed plan.

The validator checks that requested seeders can be loaded, that built-in seeding methods have the files or data they need, and that the configured adapter exposes Planter's public adapter API.

Defined Under Namespace

Classes: Result

Constant Summary collapse

REQUIRED_ADAPTER_METHODS =

Adapter methods required for Planter's public adapter API.

Returns:

  • (Array<Symbol>)
%i[
  create_record
  parent_ids
  foreign_key
  table_columns
  table_names
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(config: Planter.config, seeders: nil) ⇒ Validator

Create a validator.

Parameters:

  • config (Planter::Config) (defaults to: Planter.config)
  • seeders (Array<String>, nil) (defaults to: nil)

    seeders to validate



77
78
79
80
81
# File 'lib/planter/validator.rb', line 77

def initialize(config: Planter.config, seeders: nil)
  @config = config
  @seeders = seeders || requested_seeders
  @result = Result.new
end

Instance Method Details

#validatePlanter::Validator::Result

Validate the seed plan without creating, updating, or deleting records.



87
88
89
90
91
92
# File 'lib/planter/validator.rb', line 87

def validate
  seeders_present = validate_seeders_present
  validate_adapter
  validate_seeders if seeders_present
  result
end