小编dav*_*bro的帖子

如何在RSpec 2中自动加载spec_helper.rb

在Ruby中开发gem时,我几乎总是需要一个文件,我可以在其中配置RSpec以满足我的需要,也许在此之前,需要一些辅助模块,这些模块应该在我的所有spec示例中都可用.

在Rails应用程序中,使用名为的文件spec/spec_helper.rb.令我恼火的一件事是,在典型的Rails环境中,您必须在每个包含要加载示例的文件中要求此spec_helper.rb文件.在过去,我遇到了很多问题,这些问题与更改示例文件中的加载路径和相对需求路径有关.

现在,对于我的宝石,我希望有一种方法可以在加载任何示例文件之前说RSpec要求spec_helper.rb文件.如果我调用rspec可执行文件,或者我可以在我的Rakefile中定义的rake规范任务,则独立于这个事实.

我知道我只能告诉RSpec我的spec_helper.rb的位置是这个spec_helper.rb手动需要所有的示例文件,但我还想避免额外维护该方法.

有没有更好的方法来实现这一目标?

ruby rspec rspec2

51
推荐指数
2
解决办法
3万
查看次数

如何替换dll中的类?

这个主题很模糊,因为我不确定我正在尝试做什么的正确术语.

我已经下载了一个dll(我没有源代码),并使用反射工具,我在dll实现中发现了一个错误.这个bug很容易修复.所以我们假设错误在这里:

class A 
{
    void f() { // BUG!!! }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现我自己的 A修复bug并在运行时注入它来替换其他A实例?

c# dll

46
推荐指数
2
解决办法
5089
查看次数

Amazon Web Service无法删除Elastic Beanstalk环境

我有AWS Elastic Beanstalk的问题.我试图删除一个环境.它开始了这个过程,但几分钟后环境"健康栏"变成了灰色并给了我以下错误:

"Deleting security group named: XXXXX failed Reason: resource YYYYY has a dependent object"
"Stack deletion failed: The following resource(s) failed to delete: [AWSEBSecurityGroup]."
Run Code Online (Sandbox Code Playgroud)

我试图从错误消息中删除安全组,但我得到了这个:

"XXXXXX: resource XXXXX has a dependent object"
Run Code Online (Sandbox Code Playgroud)

在此之后我想删除EB环境的依赖性,但因为它是Gray,它不允许我这样做.

我浏览了几个小时的互联网,找到了一个可能的解决方案,我需要在EC2的网络接口页面做一些事情,但它没有说明任何特定的选项或信息.

amazon-ec2 amazon-web-services

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

Ping 任务将无法完成

我正在开发一个“心跳”应用程序,该应用程序每分钟通过循环 ping 数百个 IP 地址。IP 地址存储在一个类的列表中Machines。我有一个循环,为每个 IP 创建一个Task<MachinePingResults>MachinePingResults基本上是 IP 和在线状态的元组)并使用System.Net.NetworkInformation.

我遇到的问题是,运行数小时(或数天)后,主程序的一个循环无法完成,这Tasks导致内存泄漏。我无法确定为什么我的任务没有完成(如果我在运行几天后在运行时查看任务列表,有数百个任务显示为“正在等待”)。大多数情况下,所有任务都完成并处理完毕;他们没有完成只是随机的。例如,过去 24 小时在大约 12 小时内出现了 1 个问题,有 148 个等待任务从未完成。由于无法了解挂起的原因Ping(因为它是 .NET 内部的),我无法复制该问题进行调试。

(如果存在PingDNS 问题,.NET 中的调用可能会挂起,并且内置超时会失败,这就是我在其中构建了额外超时的原因)

如果 ping 在 15 秒内没有返回,我有办法取消主循环,使用Task.DelayCancellationToken. 然后,在每个 Ping 函数中,我都有一个以防DelayPing 调用本身挂起的情况,强制该函数完成。另请注意,我仅 ping IPv4;没有 IPv6 或 URL。

主循环

pingcancel = new CancellationTokenSource();

List<Task<MachinePingResults>> results = new List<Task<MachinePingResults>>();

try
{
    foreach (var m in localMachines.FindAll(m => !m.Online))
        results.Add(Task.Run(() => …
Run Code Online (Sandbox Code Playgroud)

c# asynchronous ping .net-5

22
推荐指数
1
解决办法
1964
查看次数

游戏架构

我对我正在制作的XNA游戏有疑问,但它也是未来游戏的一般问题.我正在制作Pong游戏而且我不确切知道要在哪里更新,所以我会更好地解释我的意思.我有一个类Game,Paddle和Ball,例如,我想验证球与屏幕限制或桨之间的碰撞,但我遇到了两种方法来做到这一点:

更高级别的方法 - 将桨和球属性公开,并在Game.Update上检查碰撞?

低级方法 - 我提供我需要的每个信息(屏幕限制和拨片信息)到球类(通过参数,或在公共公共静态类)和Ball.Update我检查碰撞?

我想我的问题以更通用的方式是:

对象是否需要知道如何更新和绘制自己,甚至是从某种程度上提供给它们的更高级别的依赖项?

要么

最好在Game.Update或Game.Draw中使用更高级别处理它,还是使用Managers来简化代码?

我认为这是一个适用于每个游戏的游戏逻辑模型问题.我不知道我的问题是否清楚,如果没有,请随意提问.

c# architecture xna xna-4.0

16
推荐指数
1
解决办法
6746
查看次数

在XNA中旋转3D模型

我是XNA的新手,我正在创建一个简单的游戏.对不起,这可能很简单,但我找不到任何帮助.游戏中有一艘船用Blender制造,我希望能够通过旋转船的X,Y和Z轴来控制船只.这是我的代码:

protected override void Draw(GameTime gameTime)
    {
        GraphicsDevice.Clear(Color.CornflowerBlue);
  RotationMatrix = Matrix.CreateRotationY(MathHelper.PiOver2) * Matrix.CreateRotationY    (rotationY) * Matrix.CreateRotationX(rotationX) * Matrix.CreateRotationZ(rotationZ);

        Matrix shipTransformMatrix = RotationMatrix * Matrix.CreateTranslation(ship.Position);

                        DrawModel(ship.Model, shipTransformMatrix, ship.Transforms);
        // TODO: Add your drawing code here


        base.Draw(gameTime);
    }

    public  void DrawModel(Model model, Matrix modelTransform, Matrix[] absoluteBoneTransforms)
    {
        //Draw the model, a model can have multiple meshes, so loop
        foreach (ModelMesh mesh in model.Meshes)
        {
            //This is where the mesh orientation is set
            foreach (BasicEffect effect in mesh.Effects)
            {

                effect.World = absoluteBoneTransforms[mesh.ParentBone.Index] * …
Run Code Online (Sandbox Code Playgroud)

c# xna rotation matrix

9
推荐指数
1
解决办法
1万
查看次数

使用curl 进行JSONRPC 请求

对于使用字典作为参数的所有请求,我都会遇到 32602 错误,而这些请求则使用简单的参数。

\n\n

例如:

\n\n

curl -d \'{"id":"json","method":"add","params":[1,2] }\' -o \xe2\x80\x93 \xe2\x80\x98http address for json rpc\xe2\x80\x99

\n\n

有效,但是:

\n\n

curl -d \'{"id":"json","method":"add","params":[{"a":2,"b":3}] }\' -o \xe2\x80\x93 \xe2\x80\x98http address for json rpc\xe2\x80\x99\xe2\x80\x99

\n\n

返回 32602 错误(无效参数!!!)

\n\n

我需要在参数中添加名称和类型,并且为此需要一个字典,但收到 32602 错误。怎么了 ?

\n

json curl json-rpc

9
推荐指数
2
解决办法
3万
查看次数

c#编译错误'参数必须输入安全.方差无效.类型参数"T"必须在Expression <TDelegate>上不变地有效

我想共同使用我的接口(接口必须是共变体)但编译器给我错误c#编译器错误: - '参数必须输入安全.方差无效.类型参数'T'必须在'Expression'上不变有效这是我的代码:

interface IRepository<out T> where T : BaseEntity
{
    IEnumerable<T> Find(Expression<Func<T, bool>> predicate);
    T FindById(Guid id);
}
Run Code Online (Sandbox Code Playgroud)

c# covariance contravariance

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

尝试捕捉或检查长度?

我只是想知道哪个会更便宜,使用try catch块来索引越界或检查多维数组的长度并比较值?

我觉得这是长度,因为我可以将长度存储在一个变量中然后只是做相对便宜的if.我只是不确定try-catch有多贵.

谢谢!

c# try-catch

4
推荐指数
2
解决办法
1557
查看次数

静态字符串与非静态字符串

我是游戏程序员,所以我总是试图优化我的代码.我最近在玩弄循环,我遇到了一些让我感到困惑的事情.我创建了一个简单的控制台应用程序并创建了一个非静态类:

public class CL
{
    static int X;
    string Z;
    static string sZ;

    public CL(int x, int y, string z)
    {
        X = x + 1;
        Z = z;
        sZ = z;
    }

    public void Update(int i)
    {
        X *= i + 1;
        X = X / 2;
        Z += i.ToString() ;
    }

    public void UpdateStatic(int i)
    {
        X *= i + 1;
        X = X / 2;
        sZ += i.ToString();
    }
}
Run Code Online (Sandbox Code Playgroud)

有两种方法都执行相同的操作:它们都修改静态整数X,然后将整数添加i到静态(sZin …

c# string performance static

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