Class: ActiveValidation::BaseAdapter
- Inherits:
-
Object
- Object
- ActiveValidation::BaseAdapter
- Defined in:
- lib/active_validation/base_adapter.rb
Direct Known Subclasses
Class Method Summary collapse
-
.abstract ⇒ Object
Abstract adapter should not be used directly.
- .adapter_name ⇒ Object
- .inherited(base) ⇒ Object
- .loader ⇒ Object
- .plugin_name ⇒ Object
- .to_s ⇒ Object
Instance Method Summary collapse
-
#add_manifest(_manifest) ⇒ Internal::Models::Manifest
abstract
:manifest.
-
#find_manifest(**_wheres) ⇒ Internal::Models::Manifest
abstract
Return the most recent Manifest, which meet the criteria.
-
#find_manifests(**_wheres) ⇒ Array<Internal::Models::Manifest>
abstract
Return the most recent Manifests, which meet the criteria.
-
#setup ⇒ Object
abstract
should setup self.class.initialised to true after loading all dependencies.
Class Method Details
.abstract ⇒ Object
Abstract adapter should not be used directly
32 33 34 |
# File 'lib/active_validation/base_adapter.rb', line 32 def abstract true end |
.adapter_name ⇒ Object
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 |
.loader ⇒ Object
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.(__dir__)).join("orm_plugins", plugin_name, loading_path)) end @loader.setup @loader end |
.plugin_name ⇒ Object
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_s ⇒ Object
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.
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
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
99 100 101 |
# File 'lib/active_validation/base_adapter.rb', line 99 def find_manifests(**_wheres) raise NotImplementedError, "abstract" end |
#setup ⇒ Object
This method is abstract.
should setup self.class.initialised to true after loading all dependencies
54 55 56 |
# File 'lib/active_validation/base_adapter.rb', line 54 def setup raise NotImplementedError, "abstract" end |