Sha256: 418c514920cc9f918841e4532efabd4db1f860e7f65c0d3d20d7a409f57ec240

Contents?: true

Size: 965 Bytes

Versions: 7

Compression:

Stored size: 965 Bytes

Contents

# frozen_string_literal: true

class Serega
  module SeregaPlugins
    module StringModifiers
      # @return [Symbol] Plugin name
      def self.plugin_name
        :string_modifiers
      end

      #
      # Applies plugin code to specific serializer
      #
      # @param serializer_class [Class<Serega>] Current serializer class
      # @param _opts [Hash] Loaded plugins options
      #
      # @return [void]
      #
      def self.load_plugin(serializer_class, **_opts)
        serializer_class.include(InstanceMethods)
        require_relative "./parse_string_modifiers"
      end

      #
      # Serega additional/patched instance methods
      #
      # @see Serega
      #
      module InstanceMethods
        private

        def parse_modifier(value)
          return ParseStringModifiers.parse(value) if value.is_a?(String)

          super
        end
      end
    end

    register_plugin(StringModifiers.plugin_name, StringModifiers)
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
serega-0.15.0 lib/serega/plugins/string_modifiers/string_modifiers.rb
serega-0.14.0 lib/serega/plugins/string_modifiers/string_modifiers.rb
serega-0.12.0 lib/serega/plugins/string_modifiers/string_modifiers.rb
serega-0.11.2 lib/serega/plugins/string_modifiers/string_modifiers.rb
serega-0.11.1 lib/serega/plugins/string_modifiers/string_modifiers.rb
serega-0.11.0 lib/serega/plugins/string_modifiers/string_modifiers.rb
serega-0.10.0 lib/serega/plugins/string_modifiers/string_modifiers.rb