Module: ENM
- Defined in:
- lib/enm.rb,
lib/enm/enum.rb,
lib/enm/types.rb,
lib/enm/version.rb,
lib/enm/database.rb,
lib/enm/namespace.rb
Overview
A parser and introspecter for PostgreSQL enums, made to be used within Rails or other Ruby applications.
Defined Under Namespace
Modules: Types Classes: AlreadyConfiguredError, Database, DatabaseNotFoundError, DuplicatedTypeError, DuplicatedValueError, Enum, EnumConflictError, EnumNotFoundError, Error, IOError, InvalidDefaultError, Namespace, NoCurrentNamespaceError, NoDefaultDatabaseError, ParseError, SerializationError, UnknownVersionError
Constant Summary collapse
- VERSION =
"0.1.0"
Class Attribute Summary collapse
- .current ⇒ ENM::Namespace readonly
Class Method Summary collapse
- .[](name) ⇒ ENM::Database?
-
.configure_current(force: false) {|builder| ... } ⇒ void
Configure ENM.current namespace for the gem.
-
.current? ⇒ Boolean
Whether a current namespace is set.
- .dry ⇒ Dry::Types::Type
- .get ⇒ ENM::Enum
-
.reset! ⇒ void
private
Reset the current namespace, caches, etc.
Class Attribute Details
.current ⇒ ENM::Namespace (readonly)
76 77 78 |
# File 'lib/enm.rb', line 76 def current Thread.current.thread_variable_get(:enm_current_namespace) || raise(ENM::NoCurrentNamespaceError, "No current namespace set") end |
Class Method Details
.configure_current(force: false) {|builder| ... } ⇒ void
This method returns an undefined value.
Configure current namespace for the gem.
65 66 67 68 69 70 71 |
# File 'lib/enm.rb', line 65 def configure_current(force: false, &block) namespace = Namespace.build(&block) raise AlreadyConfiguredError, "Current namespace is already configured" if current? && !force Thread.current.thread_variable_set(:enm_current_namespace, namespace) end |
.current? ⇒ Boolean
Whether a current namespace is set.
81 |
# File 'lib/enm.rb', line 81 def current? = Thread.current.thread_variable?(:enm_current_namespace) |
.dry ⇒ Dry::Types::Type
90 |
# File 'lib/enm.rb', line 90 def dry(...) = current.dry(...) |
.reset! ⇒ void
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
This method returns an undefined value.
Reset the current namespace, caches, etc.
100 101 102 103 104 |
# File 'lib/enm.rb', line 100 def reset! Thread.current.thread_variable_set(:enm_current_namespace, nil) ENM::Enum.cache.clear end |