Class: ActiveSet::EnumerableSetInstruction
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- ActiveSet::EnumerableSetInstruction
- Defined in:
- lib/active_set/enumerable_set_instruction.rb
Instance Method Summary collapse
- #attribute_class ⇒ Object
- #attribute_instance ⇒ Object
-
#attribute_value ⇒ Object
rubocop:disable Lint/UnderscorePrefixedVariableName.
- #attribute_value_for(item) ⇒ Object
-
#case_insensitive_operation_for?(value) ⇒ Boolean
rubocop:enable Lint/UnderscorePrefixedVariableName.
-
#initialize(attribute_instruction, set) ⇒ EnumerableSetInstruction
constructor
A new instance of EnumerableSetInstruction.
Constructor Details
#initialize(attribute_instruction, set) ⇒ EnumerableSetInstruction
Returns a new instance of EnumerableSetInstruction.
5 6 7 8 9 |
# File 'lib/active_set/enumerable_set_instruction.rb', line 5 def initialize(attribute_instruction, set) @attribute_instruction = attribute_instruction @set = set super(@attribute_instruction) end |
Instance Method Details
#attribute_class ⇒ Object
44 45 46 |
# File 'lib/active_set/enumerable_set_instruction.rb', line 44 def attribute_class attribute_instance&.class end |
#attribute_instance ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/active_set/enumerable_set_instruction.rb', line 32 def attribute_instance set_item = @set.find(&:present?) return set_item if @attribute_instruction.associations_array.empty? return @attribute_model if defined? @attribute_model @attribute_model = @attribute_instruction .associations_array .reduce(set_item) do |obj, assoc| obj.public_send(assoc) end end |
#attribute_value ⇒ Object
rubocop:disable Lint/UnderscorePrefixedVariableName
19 20 21 22 23 |
# File 'lib/active_set/enumerable_set_instruction.rb', line 19 def attribute_value _attribute_value = @attribute_instruction.value _attribute_value = _attribute_value.downcase if case_insensitive_operation_for?(_attribute_value) _attribute_value end |
#attribute_value_for(item) ⇒ Object
11 12 13 14 15 16 |
# File 'lib/active_set/enumerable_set_instruction.rb', line 11 def attribute_value_for(item) item_value = @attribute_instruction .value_for(item: item) item_value = item_value.downcase if case_insensitive_operation_for?(item_value) item_value end |
#case_insensitive_operation_for?(value) ⇒ Boolean
rubocop:enable Lint/UnderscorePrefixedVariableName
26 27 28 29 30 |
# File 'lib/active_set/enumerable_set_instruction.rb', line 26 def case_insensitive_operation_for?(value) return false unless @attribute_instruction.case_insensitive? value.is_a?(String) || value.is_a?(Symbol) end |