Class: ENM::Namespace
- Inherits:
-
Object
- Object
- ENM::Namespace
- Defined in:
- lib/enm/namespace.rb
Overview
A namespace allows grouping multiple databases together for lookup, to be exposed in an atomic constant through current.
It is not meant to be instantiated directly, instead, use configure_current to set it up for the gem. More advanced use cases can use Namespace.build for their own use cases, but the interface is not guaranteed to be stable.
Defined Under Namespace
Classes: Builder
Class Method Summary collapse
Instance Method Summary collapse
- #[](name) ⇒ ENM::Database?
- #dry(name, schema: nil, on: nil, default: nil, mode: :string) ⇒ Dry::Types::Type
- #get(name, schema: nil, on: nil) ⇒ ENM::Enum
- #has_default? ⇒ Boolean
-
#initialize ⇒ Namespace
constructor
A new instance of Namespace.
Constructor Details
#initialize ⇒ Namespace
16 17 18 19 20 |
# File 'lib/enm/namespace.rb', line 16 def initialize(...) super freeze end |
Class Method Details
.build {|builder| ... } ⇒ ENM::Namespace
81 82 83 84 85 86 87 |
# File 'lib/enm/namespace.rb', line 81 def build builder = Builder.new yield(builder) new(**builder.to_h) end |
Instance Method Details
#[](name) ⇒ ENM::Database?
24 |
# File 'lib/enm/namespace.rb', line 24 def [](name) = @databases[name.to_s] |
#dry(name, schema: nil, on: nil, default: nil, mode: :string) ⇒ Dry::Types::Type
35 36 37 38 39 |
# File 'lib/enm/namespace.rb', line 35 def dry(name, schema: nil, on: nil, default: nil, mode: :string) enum = get(name, schema:, on:) enum.dry(default:, mode:) end |
#get(name, schema: nil, on: nil) ⇒ ENM::Enum
49 50 51 52 53 |
# File 'lib/enm/namespace.rb', line 49 def get(name, schema: nil, on: nil) database = database_for(on) database.get(name, schema:) end |
#has_default? ⇒ Boolean
41 |
# File 'lib/enm/namespace.rb', line 41 def has_default? = !@default.nil? |