Module: Attrify::ClassMethods

Defined in:
lib/attrify.rb

Instance Method Summary collapse

Instance Method Details

#variant_registryObject



24
25
26
27
28
29
30
31
# File 'lib/attrify.rb', line 24

def variant_registry
  @variant_registry ||=
    if superclass.respond_to?(:variant_registry)
      superclass.variant_registry.dup
    else
      VariantRegistry.new
    end
end

#variantsObject



15
16
17
18
19
20
21
22
# File 'lib/attrify.rb', line 15

def variants(&)
  result = DSL::Engine.new.build(&)
  config = variant_registry
  config.base = result.base_attr
  config.variants = result.variants
  config.compounds = result.compounds
  config.defaults = result.defaults
end