Module: Wardrobe

Extended by:
ModuleMethods
Included in:
RootConfig
Defined in:
lib/wardrobe.rb,
lib/wardrobe/store.rb,
lib/wardrobe/option.rb,
lib/wardrobe/plugin.rb,
lib/wardrobe/stores.rb,
lib/wardrobe/boolean.rb,
lib/wardrobe/version.rb,
lib/wardrobe/attribute.rb,
lib/wardrobe/block_setup.rb,
lib/wardrobe/root_config.rb,
lib/wardrobe/option_store.rb,
lib/wardrobe/plugin_store.rb,
lib/wardrobe/class_methods.rb,
lib/wardrobe/getter_setter.rb,
lib/wardrobe/module_methods.rb,
lib/wardrobe/attribute_store.rb,
lib/wardrobe/plugins/default.rb,
lib/wardrobe/instance_methods.rb,
lib/wardrobe/plugins/equality.rb,
lib/wardrobe/plugins/coercible.rb,
lib/wardrobe/plugins/immutable.rb,
lib/wardrobe/plugins/presenter.rb,
lib/wardrobe/plugins/validation.rb,
lib/wardrobe/plugins/nil_if_zero.rb,
lib/wardrobe/plugins/configurable.rb,
lib/wardrobe/plugins/nil_if_empty.rb,
lib/wardrobe/plugins/alias_setters.rb,
lib/wardrobe/plugins/dirty_tracker.rb,
lib/wardrobe/plugins/ivy_presenter.rb,
lib/wardrobe/plugins/optional_getter.rb,
lib/wardrobe/plugins/optional_setter.rb,
lib/wardrobe/plugins/html_initializer.rb,
lib/wardrobe/plugins/json_initializer.rb,
lib/wardrobe/plugins/validation/validator.rb,
lib/wardrobe/plugins/validation/deep_merge.rb,
lib/wardrobe/plugins/validation/validation.rb,
lib/wardrobe/plugins/validation/error_store.rb,
lib/wardrobe/plugins/validation/block_handler.rb,
lib/wardrobe/plugins/validation/class_methods.rb,
lib/wardrobe/plugins/coercible/refinements/set.rb,
lib/wardrobe/plugins/coercible/refinements/date.rb,
lib/wardrobe/plugins/coercible/refinements/hash.rb,
lib/wardrobe/plugins/coercible/refinements/time.rb,
lib/wardrobe/plugins/presenter/refinements/hash.rb,
lib/wardrobe/plugins/presenter/refinements/time.rb,
lib/wardrobe/plugins/validation/refinements/set.rb,
lib/wardrobe/plugins/coercible/refinements/array.rb,
lib/wardrobe/plugins/coercible/refinements/float.rb,
lib/wardrobe/plugins/presenter/refinements/array.rb,
lib/wardrobe/plugins/validation/instance_methods.rb,
lib/wardrobe/plugins/validation/refinements/date.rb,
lib/wardrobe/plugins/validation/refinements/hash.rb,
lib/wardrobe/plugins/validation/validation_error.rb,
lib/wardrobe/plugins/validation/validaton_runner.rb,
lib/wardrobe/plugins/coercible/refinements/object.rb,
lib/wardrobe/plugins/coercible/refinements/string.rb,
lib/wardrobe/plugins/coercible/refinements/symbol.rb,
lib/wardrobe/plugins/presenter/refinements/object.rb,
lib/wardrobe/plugins/validation/refinements/_size.rb,
lib/wardrobe/plugins/validation/refinements/array.rb,
lib/wardrobe/plugins/coercible/refinements/boolean.rb,
lib/wardrobe/plugins/coercible/refinements/integer.rb,
lib/wardrobe/plugins/validation/refinements/object.rb,
lib/wardrobe/plugins/validation/refinements/string.rb,
lib/wardrobe/plugins/validation/refinements/symbol.rb,
lib/wardrobe/plugins/validation/refinements/integer.rb,
lib/wardrobe/plugins/validation/refinements/numeric.rb,
lib/wardrobe/plugins/coercible/refinements/date_time.rb,
lib/wardrobe/plugins/configurable/configurable_store.rb,
lib/wardrobe/plugins/validation/refinements/nil_class.rb,
lib/wardrobe/plugins/coercible/refinements/unsupported_error.rb

Overview

rubocop:disable Metrics/CyclomaticComplexity

Defined Under Namespace

Modules: ClassMethods, InstanceMethods, ModuleMethods, Plugin, Plugins Classes: Attribute, AttributeStore, BlockSetup, Boolean, NoPluginRegisteredError, Option, OptionStore, PluginNameTakenError, PluginOptionKeywordTakenError, PluginStore, RootConfig, SetterGetter, Store, Stores, UnavailableOptionError

Constant Summary collapse

VERSION =
'0.1.1'

Class Attribute Summary collapse

Class Method Summary collapse

Methods included from ModuleMethods

config, configure, create_class, included, logger

Class Attribute Details

.gettersObject (readonly)

Returns the value of attribute getters.



3
4
5
# File 'lib/wardrobe/getter_setter.rb', line 3

def getters
  @getters
end

.optionsObject (readonly)

Returns the value of attribute options.



8
9
10
# File 'lib/wardrobe/plugin.rb', line 8

def options
  @options
end

.pluginsObject (readonly)

Returns the value of attribute plugins.



8
9
10
# File 'lib/wardrobe/plugin.rb', line 8

def plugins
  @plugins
end

.settersObject (readonly)

Returns the value of attribute setters.



3
4
5
# File 'lib/wardrobe/getter_setter.rb', line 3

def setters
  @setters
end

Class Method Details

.register_getter(name:, priority:, getter:, use_if: ->(_atr) { true }) ⇒ Object



28
29
30
31
# File 'lib/wardrobe/getter_setter.rb', line 28

def self.register_getter(name:, priority:, getter:, use_if: ->(_atr) { true })
  raise 'Name taken' if getters[name]
  getters[name] = SetterGetter.new(name, priority, getter, use_if)
end

.register_plugin(name, mod) ⇒ Object



13
14
15
16
# File 'lib/wardrobe/plugin.rb', line 13

def self.register_plugin(name, mod)
  raise PluginNameTakenError, "Plugin #{name} already in use" if plugins[name]
  plugins[name] = mod
end

.register_setter(name:, priority:, setter:, use_if: ->(_atr) { true }) ⇒ Object



23
24
25
26
# File 'lib/wardrobe/getter_setter.rb', line 23

def self.register_setter(name:, priority:, setter:, use_if: ->(_atr) { true })
  raise 'Name taken' if setters[name]
  setters[name] = SetterGetter.new(name, priority, setter, use_if)
end