Class: ActionParamsContract::SchemaInstaller

Inherits:
Object
  • Object
show all
Defined in:
lib/action_params_contract/schema_installer.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(block, raise_on_failure:) ⇒ SchemaInstaller

Returns a new instance of SchemaInstaller.



15
16
17
18
# File 'lib/action_params_contract/schema_installer.rb', line 15

def initialize(block, raise_on_failure:)
  @block            = block
  @raise_on_failure = raise_on_failure
end

Class Method Details

.callObject



11
12
13
# File 'lib/action_params_contract/schema_installer.rb', line 11

def self.call(...)
  new(...).call
end

Instance Method Details

#callObject



20
21
22
23
24
25
26
27
28
# File 'lib/action_params_contract/schema_installer.rb', line 20

def call
  return unless @block

  validate_receiver!
  raise DuplicateRegistrationError, controller_class if ControllerInstaller.installed?(controller_class)

  ControllerInstaller.install(controller_class, schema_name, raise_on_failure: @raise_on_failure)
  ContractGenerator.call(schema_name, &@block)
end