1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-02-07 11:49:40 +00:00

devel/rubygem-cow_proxy: Add rubygem-cow_proxy 0.3.3

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.

WWW: https://github.com/activescaffold/cow_proxy
This commit is contained in:
Po-Chuan Hsieh 2022-08-27 18:10:49 +08:00
parent c37d8e474a
commit ebc424519c
No known key found for this signature in database
GPG Key ID: 9A4BD10F002DD04B
4 changed files with 40 additions and 0 deletions

View File

@ -6316,6 +6316,7 @@
SUBDIR += rubygem-corefines
SUBDIR += rubygem-cork
SUBDIR += rubygem-countries
SUBDIR += rubygem-cow_proxy
SUBDIR += rubygem-crack
SUBDIR += rubygem-cri
SUBDIR += rubygem-csv

View File

@ -0,0 +1,17 @@
PORTNAME= cow_proxy
PORTVERSION= 0.3.3
CATEGORIES= devel rubygems
MASTER_SITES= RG
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Copy-on-write proxy for frozen Ruby objects
LICENSE= MIT
#LICENSE_FILE= ${WRKSRC}/LICENSE
USES= gem
USE_RUBY= yes
NO_ARCH= yes
.include <bsd.port.mk>

View File

@ -0,0 +1,3 @@
TIMESTAMP = 1660576710
SHA256 (rubygem/cow_proxy-0.3.3.gem) = 705b307b714005366a64ce3ec15d5219cdfae0966a46fa4cf075d011bcc8618c
SIZE (rubygem/cow_proxy-0.3.3.gem) = 11264

View File

@ -0,0 +1,19 @@
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.
WWW: https://github.com/activescaffold/cow_proxy