小编Joh*_*ohn的帖子

给定Ruby元类,如何获取它所附加的实例?

这与" 给定Ruby对象的实例,如何获取其元类? " 的问题相反.

您可以在默认to_s输出中看到元类或单例类附加到的对象的表示:

s = "hello"
s_meta = class << s; self; end
s_meta.to_s # => "#<Class:#<String:0x15004dd>>"

class C; end
c_meta = class << C; self; end
c_meta.to_s # => "#<Class:C>"
Run Code Online (Sandbox Code Playgroud)

是否可以实现一个Class.attached返回此对象的方法(如果接收者是常规类,则为nil)?

s_meta.attached # => s
c_meta.attached # => C
C.attached # => nil
Run Code Online (Sandbox Code Playgroud)

ruby metaprogramming

6
推荐指数
1
解决办法
259
查看次数

PKCS#7 SignedData和多个摘要算法

我正在研究将SHA1中的应用程序升级为默认的PKCS#7 SignedData摘要算法,以更强的摘要(如SHA256),以保留不支持SHA1以外的摘要算法的签名验证程序的向后兼容性.我想检查一下我对PKCS#7格式和可用选项的理解.

我想要做的是使用SHA1和SHA256(或更一般地说,一组摘要算法)消化消息内容,以便较旧的应用程序可以继续通过SHA1进行验证,并且升级的应用程序可以通过SHA256开始验证(更一般地说,提供最强的摘要),忽略较弱的算法.[如果有更好的方法,请告诉我.]

看来,在PKCS#7标准中,提供多个摘要的唯一方法是提供多个SignerInfos,每个摘要算法一个.不幸的是,这似乎会导致安全性的净减少,因为攻击者能够使用最弱的摘要算法剥离除SignerInfo之外的所有算法,而单独的摘要算法仍将形成有效的签名.这种理解是否正确?

如果是这样,我的想法是在SignerInfo的authenticatedAttributes字段中使用自定义属性为其他摘要算法提供额外的消息摘要(将SHA1保留为"默认"算法以实现向后兼容).由于此字段被认证为单个块,因此可以防止上述攻击.这似乎是一种可行的方法吗?有没有办法在不超出PKCS标准的情况下完成这个或类似的东西?

cryptography sha1 sha256 digital-signature pkcs#7

6
推荐指数
1
解决办法
2486
查看次数

如何在XPath中选择布尔值节点?

我有一个XML文档和关联的模式,它将几个属性定义为具有该xs:boolean类型.对于词法值xs:booleantrue,false,1,和0,因此它似乎正确地选择与特定的布尔值属性,我不得不写类似:

@attribute='true' or @attribute='1'
Run Code Online (Sandbox Code Playgroud)

要么

@attribute='false' or @attribute='0'
Run Code Online (Sandbox Code Playgroud)

这看起来很冗长.

你可能期望某些东西boolean(@attribute)可以工作,但是这个boolean函数有不同的语义.

有没有更好的办法?这是架构感知处理器可以帮助的东西吗?

xpath xsd

5
推荐指数
2
解决办法
6116
查看次数

我如何编写卫生的Ruby mixin?

假设我正在编写一个mixin模块,可以为第三方类添加功能.显然,我希望第三方类及其客户端可以访问一些方法和实例变量.这些构成了mixin模块的公共接口.

但我想要封装某些其他方法和实例变量.我不希望它们被我混入的类访问,特别是我不希望它们意外地覆盖,阴影,冲突或以其他方式干扰mixee类的方法或实例变量 - 这些如果第三方修改我正在混合的类,那么当前可能存在,或者将来可能创建的那些.

我需要采取哪些预防措施,以确保我的mixin以这种方式"卫生"?

ruby mixins hygiene

5
推荐指数
1
解决办法
940
查看次数

CircleCi 2.0上是否可以进行Android Espresso的Instrumentation测试?

是测试仪器为Android咖啡可在CircleCI 2.0吗?如果是,请有人帮我配置config.yml文件吗?我已经尝试了上千次,但是没有运气。我可以运行单元测试,但不能运行仪表。

谢谢

circleci android-espresso circleci-2.0

5
推荐指数
1
解决办法
503
查看次数

在INSTEAD OF INSERT触发器的OUTPUT子句中,是否可以引用两个INSERTED表?

SQL Server 2005+

我有一个带INSTEAD OF INSERT触发器的视图.在触发器的主体内部,我想使用带有OUTPUT引用两个INSERTED表的子句的语句:

  • 触发器的外部INSERTEDINSTEAD OF INSERT
  • INSERTEDOUTPUT子句的内部表

MSDN :

如果在触发器主体内部使用包含OUTPUT子句的语句,则必须使用表别名来引用触发器插入和删除的表,以避免使用与OUTPUT关联的INSERTED和DELETED表重复列引用.

但别名似乎不起作用:

CREATE TRIGGER v_insert ON v
INSTEAD OF INSERT
AS BEGIN
  INSERT INTO t (a, b, c)
  OUTPUT inserted.a, inserted.b, outer_inserted.d INTO t_prime (a, b, d)
  SELECT a, b, c
  FROM inserted as outer_inserted
END
Run Code Online (Sandbox Code Playgroud)

它产生错误"多部分标识符"outer_inserted.d"无法绑定.这是否意味着我想要做的是不可能的?

sql-server triggers

4
推荐指数
1
解决办法
1645
查看次数

在Rubinius中实现mixins在哪里?

在Rubinius源代码中,负责包含模块的代码是什么?(具体来说,将模块放置为对象类的超类.)

ruby rubinius

3
推荐指数
1
解决办法
137
查看次数

无法在Snow Leopard上安装RMagick

每当我尝试使用sudo gem install rmagick安装rmagick gem时,安装失败,当它试图包含一个名为wand/MagicWand.h的头文件时

日志文件中的确切错误是:

gcc -E -I. -I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0 -I.  -I$MAGICK_HOME/include/ImageMagick  -I/include/ImageMagick -fopenmp  conftest.c -o conftest.i"
conftest.c:1:29: error: wand/MagickWand.h: No such file or directory
checked program was:
/* begin */
1: #include <wand/MagickWand.h>
/* end */
Run Code Online (Sandbox Code Playgroud)

$ MAGICK_HOME env变量设置为/usr/bin/imagemagick 它要查找的头文件/usr/bin/imagemagick/include/ImageMagick/wand/MagickWand.h

我试图按照这里的说明进行操作.我在运行Snow Leopard的Intel iMac上安装它.

ruby rmagick magickwand osx-snow-leopard

0
推荐指数
1
解决办法
920
查看次数