Module: Attrify
- Includes:
- Helpers
- Defined in:
- lib/attrify.rb,
lib/attrify/parser.rb,
lib/attrify/helpers.rb,
lib/attrify/variant.rb,
lib/attrify/version.rb,
lib/attrify/dsl/base.rb,
lib/attrify/dsl/engine.rb,
lib/attrify/dsl/variant.rb,
lib/attrify/dsl/compound.rb,
lib/attrify/operation_set.rb,
lib/attrify/variant_config.rb,
lib/attrify/variant_registry.rb,
lib/attrify/dsl/nested_variant.rb
Defined Under Namespace
Modules: ClassMethods, DSL, Helpers
Classes: OperationSet, Parser, Variant, VariantConfig, VariantRegistry
Constant Summary
collapse
- VERSION =
"0.5.0"
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Helpers
#compute_attributes, #deep_merge_hashes, #deep_merge_hashes!, #execute_operation
Class Method Details
.included(base) ⇒ Object
10
11
12
|
# File 'lib/attrify.rb', line 10
def self.included(base)
base.extend ClassMethods
end
|
Instance Method Details
#attributes(slot: :main, **args) ⇒ Object
36
37
38
39
40
41
42
43
|
# File 'lib/attrify.rb', line 36
def attributes(slot: :main, **args)
new_arguments = (slot == :main) ? args : {slot => args}
merged_arguments = deep_merge_hashes(variant, new_arguments)
variant = self.class.variant_registry&.fetch(**merged_arguments)
variant.values_for(instance: self, keys: Array(slot))
end
|
#variant ⇒ Object
45
46
47
|
# File 'lib/attrify.rb', line 45
def variant
@variant_config ||= VariantConfig.new
end
|