RECENT POSTS
- Introduction to FreeBSD Security Best Practices
- Working with Package Management in FreeBSD
- Understanding FreeBSD Security Advisories and Updates
- Troubleshooting Common System Administration Issues in FreeBSD
- Tips for Hardening FreeBSD to achieve System Protection
- Setting Up DHCP Server in FreeBSD
- Secure User and Group Management in FreeBSD Systems
- Secure Remote Access with SSH in FreeBSD
- Optimizing System Performance in FreeBSD
- Network Packet Capture with tcpdump in FreeBSD
- All posts ...
Do you have GDPR compliance issues ?
Check out Legiscope a GDPR compliance software, that will save you weeks of work, automating your documentation, the training of your teams and all processes you need to keep your organisation compliant with privacy regulations
Rubygem-cow_proxy
Jul 20, 2023
Copy-on-write proxy for frozen Ruby objects
This is a copy-on-write proxy for frozen Ruby objects, so duplicating frozen object is delayed until a method tries to change frozen object.
CowProxy classes for array, hash, string and struct are provided. Objects from other classes will be proxied without copy-on-write, you have to create a CowProxy class for them to enable copy-on-write. Also you have to create CowProxy class for each object which have any getter method with arguments, because default CowProxy won’t wrap returned value. Immutable classes such as Integer or TrueClass doesn’t need copy-on-write proxy because they can’t be changed.
You can wrap every object in a proxy. Proxy will always send method calls to wrapped object, and wrap returned value with a CowProxy class if method has no argument, so a proxy will always return proxy objects for getters without arguments. When a method tries to change a frozen object, if proxy has copy-on-write enabled, it will duplicate frozen object and will send next method calls to duplicated object, in other case an exception is raised.
- Older
- Newer
Checkout these related ports:
- Zziplib - Library to provide transparent read access to zipped files
- Zydis - Fast and lightweight x86/x86-64 disassembler library
- Zycore-c - Support library with platform independent types, macros, etc for Zydis
- Zthread - Platform-independent object-oriented C++ threading library
- Zookeeper - Coordination Service for Distributed Applications
- Zls - Zig LSP implementation + Zig Language Server
- Zfp - High throughput library for compressed floating-point arrays
- Zeal - Offline documentation browser
- Zapcc - C++ caching compiler based on clang
- Zanata-platform - Web-based translation platform
- Zanata-cli - Zanata Java command line client
- Z88dk - Complete Z80/Z180 development kit
- Z80ex - ZiLOG Z80 CPU emulator library
- Z80asm - Assembler for the Z80 microprocessor
- Z80-asm - Z80 assembly code assembler and disassembler