Class: ActiveValidation::BaseAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/active_validation/base_adapter.rb

Direct Known Subclasses

OrmPlugins::ActiveRecordPlugin::Adapter

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.abstractObject

Abstract adapter should not be used directly



32
33
34
# File 'lib/active_validation/base_adapter.rb', line 32

def abstract
  true
end

.adapter_nameObject



41
42
43
# File 'lib/active_validation/base_adapter.rb', line 41

def adapter_name
  plugin_name.sub(/_plugin\z/, "")
end

.inherited(base) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/active_validation/base_adapter.rb', line 8

def inherited(base)
  # ruby 2.4 require this :send
  base.singleton_class.send(:attr_accessor, :abstract)

  # set default loading paths from the plugin root folder
  base.singleton_class.send(:attr_accessor, :loading_paths)
  base.loading_paths = []
  base.abstract = false
  ActiveValidation.config.orm_adapters_registry.register base.plugin_name, base
  super
end

.loaderObject



20
21
22
23
24
25
26
27
28
29
# File 'lib/active_validation/base_adapter.rb', line 20

def loader
  return @loader if @loader

  @loader = Zeitwerk::Loader.new
  loading_paths.each do |loading_path|
    @loader.push_dir(Pathname.new(File.expand_path(__dir__)).join("orm_plugins", plugin_name, loading_path))
  end
  @loader.setup
  @loader
end

.plugin_nameObject



36
37
38
39
# File 'lib/active_validation/base_adapter.rb', line 36

def plugin_name
  klass_name = name.split("::").detect { |c| c =~ /Plugin\z/ }
  klass_name ? klass_name.underscore : "base"
end

.to_sObject



45
46
47
# File 'lib/active_validation/base_adapter.rb', line 45

def to_s
  abstract ? "#{plugin_name} (abstract)" : plugin_name
end

Instance Method Details

#add_manifest(_manifest) ⇒ Internal::Models::Manifest

This method is abstract.

Returns :manifest.

Parameters:

Returns:

Raises:

  • (NotImplementedError)


61
62
63
# File 'lib/active_validation/base_adapter.rb', line 61

def add_manifest(_manifest)
  raise NotImplementedError, "abstract"
end

#find_manifest(**_wheres) ⇒ Internal::Models::Manifest

This method is abstract.

Return the most recent Manifest, which meet the criteria

Examples:

find_manifest({ base_klass: ‘Bar’ })


Parameters:

  • Look (Hash)

    up criteria

  • manifest_hash (Hash)

    a customizable set of options

Returns:

Raises:

  • (NotImplementedError)

See Also:



80
81
82
# File 'lib/active_validation/base_adapter.rb', line 80

def find_manifest(**_wheres)
  raise NotImplementedError, "abstract"
end

#find_manifests(**_wheres) ⇒ Array<Internal::Models::Manifest>

This method is abstract.

Return the most recent Manifests, which meet the criteria

Examples:

find_manifests({ base_klass: ‘Bar’ })


Parameters:

  • Look (Hash)

    up criteria

  • manifest_hash (Hash)

    a customizable set of options

Returns:

Raises:

  • (NotImplementedError)

See Also:



99
100
101
# File 'lib/active_validation/base_adapter.rb', line 99

def find_manifests(**_wheres)
  raise NotImplementedError, "abstract"
end

#setupObject

This method is abstract.

should setup self.class.initialised to true after loading all dependencies

Raises:

  • (NotImplementedError)


54
55
56
# File 'lib/active_validation/base_adapter.rb', line 54

def setup
  raise NotImplementedError, "abstract"
end