12 repositorios
Mechanisms for using user-defined comparison functions to determine if a value has changed.
Distinct from Comparison Logic Providers: Distinct from static analysis rules or general logical operators; specifically about effect trigger logic.
Explore 12 awesome GitHub repositories matching software engineering & architecture · Custom Comparison Logic. Refine with filters or upvote what's useful.
react-use is a collection of reusable state and effect hooks for managing common logic in React applications. It serves as a comprehensive library for implementing state management patterns and wrapping various browser APIs into consistent hook interfaces. The project provides a specialized toolkit for DOM interaction and browser API integration, allowing components to track element dimensions, manage cookies, and monitor hardware sensors. It includes a suite of animation and timing utilities for physics-based numeric interpolation and frame-synced state updates. Beyond basic state managemen
Provides a way to trigger side effects using custom or shallow comparison logic instead of reference equality.
Scientist is a Ruby code parity testing library and production experimentation framework. It allows for the safe deployment of candidate code paths alongside a control implementation to verify that new logic produces the same outputs and exceptions as the original. The library identifies behavioral divergences between legacy and refactored code by running both versions in a live environment. It functions as a refactoring regression detector, measuring performance parity and detecting mismatches using real-world data without affecting the end user. The system covers broad capabilities for mon
Implements user-defined comparison functions to determine if different return values or exceptions are functionally equivalent.
This project is a set of specialized tools for installing archive packages and programmatically parsing or validating software version constraints. It functions as a PHP version comparison library and a semantic versioning parser designed to handle the requirements of software dependency management. The system includes a PHP archive installer that downloads and deploys Phar packages from repositories, GitHub, or direct URLs. It uses a semantic version constraint validator to ensure that installed versions satisfy specific requirements defined by mathematical, caret, or tilde operators. Addit
Implements custom logic to compare software version strings and determine release order and compatibility.
attrs is a Python library that automatically generates initialization, representation, equality, hashing, and ordering methods from declarative class attribute definitions. At its core, it provides a class decorator metaprogramming framework that intercepts class creation to rewrite the class body, producing dunder methods without manual boilerplate. The library includes a comprehensive attribute validation toolkit with built-in validators for type checks, range constraints, regex matching, length limits, and logical composition of validation rules. The library distinguishes itself through it
Excludes specific fields from equality or ordering checks, or applies custom key functions for comparison.
node-semver es una herramienta para parsear, comparar y validar cadenas de versión de acuerdo con la especificación de Semantic Versioning. Funciona como un evaluador de rangos de versión, una biblioteca de comparación y una utilidad para incrementar identificadores de lanzamiento. El proyecto incluye una utilidad de coerción de versión que extrae secuencias numéricas de cadenas no conformes para aproximar una versión semántica. También proporciona lógica para calcular la siguiente cadena de lanzamiento incrementando segmentos mayores, menores o de parche. La biblioteca cubre una amplia gama de capacidades de gestión de versiones, incluyendo análisis de rangos para determinar si las versiones cumplen con restricciones específicas, la ordenación de listas de versiones basadas en precedencia y la validación tanto de versiones individuales como de rangos de versiones.
Provides logic to determine if one software version is greater than, less than, or equal to another.
jsondiffpatch es una librería de diff y patch para JSON diseñada para calcular las diferencias entre dos objetos JSON y aplicar esos cambios para sincronizar estados. Funciona como una herramienta de sincronización para calcular deltas y aplicar parches para actualizar o revertir objetos complejos de JavaScript anidados. El proyecto proporciona una implementación compatible con el estándar RFC 6902 JSON Patch para actualizaciones atómicas y un renderizador de diferencias visuales que convierte los deltas de datos en vistas HTML legibles por humanos. Incluye una herramienta de diff de texto especializada para realizar análisis detallados a nivel de carácter en cadenas largas dentro de valores de datos JSON. La librería cubre una amplia gama de capacidades, incluyendo la generación recursiva de deltas y el cálculo de diferencias de arrays utilizando algoritmos de subsecuencia común más larga (LCS). Admite el diffing lógico de arrays para detectar movimientos de elementos mediante hashing personalizado y ofrece opciones de salida multiformato, como formato de consola codificado por colores y un componente de React dedicado para comparaciones visuales.
Provides a mechanism to customize how differences are calculated by adding or replacing filters.
Janet es un lenguaje de programación dinámico basado en Lisp que cuenta con una máquina virtual de bytecode basada en registros y un motor de scripting integrable. Funciona como un runtime de concurrencia basado en fibras e incluye un motor de análisis basado en Gramáticas de Expresión de Análisis (PEG). El proyecto se distingue por su capacidad de integrarse en aplicaciones de C o C++ a través de una interfaz de cabecera mínima. Utiliza un sistema de macros al estilo Lisp para la transformación de código en tiempo de compilación y emplea herencia de tablas basada en prototipos para el comportamiento orientado a objetos. El runtime cubre un amplio conjunto de capacidades, incluyendo la gestión de IO asíncrona a través de un bucle de eventos no bloqueante, interoperabilidad de bibliotecas nativas a través de una interfaz de funciones externas y procesamiento de texto integral utilizando gramáticas PEG. También proporciona herramientas para la automatización del sistema, como un bucle de lectura-evaluación-impresión (REPL), un sistema de módulos para la resolución de símbolos y utilidades para la comunicación de sockets de red y la gestión del sistema de archivos. El entorno incluye herramientas de diagnóstico para la depuración de la ejecución de bytecode y puede empaquetar el código fuente en ejecutables binarios independientes.
Provides mechanisms to define custom ordering and comparison for abstract types.
Siren es una herramienta de gestión de actualizaciones de aplicaciones que identifica las versiones disponibles en la tienda de aplicaciones y solicita a los usuarios que actualicen sus instalaciones. Utiliza versiones semánticas para comparar la versión instalada con la versión de la tienda e integra con las API de la tienda para obtener los metadatos más recientes. La herramienta gestiona la experiencia de actualización a través de implementaciones de actualización forzada, sugerencias de actualización opcionales y despliegues graduales que posponen las notificaciones durante un número determinado de días. Incluye un verificador de compatibilidad del sistema operativo para evitar avisos de actualización si el dispositivo no cumple con los requisitos mínimos de la nueva versión. El sistema proporciona interfaces de alerta localizadas que mapean los mensajes de actualización al idioma del dispositivo o a una configuración regional específica. Dirige los comportamientos de la interfaz de usuario según si una actualización específica está marcada como obligatoria u opcional.
Uses semantic versioning to compare the currently installed application version against the latest version available in the app store.
Este proyecto es una propuesta de ECMAScript para introducir una primitiva de estado reactivo nativa en el lenguaje JavaScript. Define un estándar para la reactividad de grano fino, proporcionando un mecanismo para rastrear dependencias de valores y propagar automáticamente las actualizaciones a través de un grafo de dependencias. La especificación se centra en la gestión de valores calculados y efectos secundarios basados en cambios granulares en el estado. Permite la sincronización de actualizaciones de estado a través de un grafo de dependencias y el seguimiento de las relaciones entre valores y sus observadores sin suscripciones manuales. La propuesta cubre el cálculo eficiente de valores mediante evaluación perezosa (lazy evaluation) y memorización, así como la capacidad de definir lógica de igualdad personalizada para determinar cuándo los cambios de estado deben activar actualizaciones. También incluye capacidades para observar cambios de estado y acceder a valores sin registrar dependencias.
Supports user-defined comparison functions to determine if a value change should trigger updates.
match-sorter es una utilidad de JavaScript para coincidencia de cadenas y filtrado de arrays, diseñada para clasificar y ordenar listas basándose en la relevancia de la cadena de búsqueda. Funciona como una librería de ordenación determinista de mejor coincidencia y un motor de búsqueda difusa para filtrar arrays de objetos. La herramienta prioriza los resultados utilizando heurísticas de coincidencia ponderadas que favorecen coincidencias exactas, acrónimos y la inclusión de cadenas. Emplea un sistema de clasificación determinista para asegurar un orden consistente y admite la normalización insensible a diacríticos para coincidir caracteres independientemente de los acentos. La librería cubre la especificación de criterios de coincidencia mediante la extracción de propiedades por key-path, la configuración del umbral de coincidencia para ajustar la rigurosidad de la búsqueda y la extracción de metadatos de clasificación. También proporciona lógica de ordenación personalizable mediante funciones de comparación externas para anular el desempate por defecto.
Provides the ability to override default sorting results using external comparison functions.
WordPress Git Updater is a software update manager that automates the installation and updating of plugins and themes hosted on Git repositories. It functions as an automated release system and a secure client for private Git repository management, linking software components to providers like GitHub, GitLab, or enterprise Git instances for version tracking. The tool distinguishes itself through detailed branch management, allowing users to target specific branches or tagged releases for deployment. It supports secure access to private codebases via personal access tokens and provides a modul
Allows developers to define custom version comparison rules and rollback download links.
Memoize-one is a JavaScript function memoization library that stores function return values and serves them instantly on repeat calls with identical arguments to avoid redundant calculations. It retains only the single most recent argument set and return value, maintaining a constant and bounded memory footprint. The library features a shallow argument comparison engine and includes the runtime execution context alongside input arguments during comparison to ensure state and binding changes trigger fresh computations. Users can inject custom equality functions to override the default argumen
Accept custom equality logic to determine whether input arguments match previous invocations for fine-grained cache control.