Sha256: ac093a13ca98f141ca75d4dbe8405a44fad16def85f835725034ddae56a8350c
Contents?: true
Size: 1.43 KB
Versions: 1
Compression:
Stored size: 1.43 KB
Contents
# frozen_string_literal: true class ActiveSet class EnumerableSetInstruction < SimpleDelegator def initialize(attribute_instruction, set) @attribute_instruction = attribute_instruction @set = set super(@attribute_instruction) end 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 # rubocop:disable Lint/UnderscorePrefixedVariableName def attribute_value _attribute_value = @attribute_instruction.value _attribute_value = _attribute_value.downcase if case_insensitive_operation_for?(_attribute_value) _attribute_value end # rubocop:enable Lint/UnderscorePrefixedVariableName def case_insensitive_operation_for?(value) return false unless @attribute_instruction.case_insensitive? value.is_a?(String) || value.is_a?(Symbol) end 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 def attribute_class attribute_instance&.class end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
actionset-0.8.2 | lib/active_set/enumerable_set_instruction.rb |