小编Jam*_*ers的帖子

Ruby/Rake中的递归图案文件删除

我试图根据给定路径中包含的所有目录中的模式删除文件.我有以下但它就像一个无限循环.当我取消循环时,不会删除任何文件.我哪里错了?

def recursive_delete (dirPath, pattern)
    if (defined? dirPath and  defined? pattern && File.exists?(dirPath))
        stack = [dirPath]

        while !stack.empty?
            current = stack.delete_at(0)
            Dir.foreach(current) do |file|
                if File.directory?(file)
                    stack << current+file
                else
                    File.delete(dirPath + file) if (pattern).match(file)
                end
            end
        end

    end
end

# to call:
recursive_delete("c:\Test_Directory\", /^*.cs$/)
Run Code Online (Sandbox Code Playgroud)

ruby recursion rake

13
推荐指数
3
解决办法
7898
查看次数

我怎么能重构这个工厂类型的方法和数据库调用是可测试的?

我正在努力学习如何进行单元测试和模拟.我理解TDD和基本测试的一些原理.但是,我正在考虑重构下面的代码,这些代码是在没有测试的情况下编写的,并且我试图了解它是如何更改以使其可测试的.

public class AgentRepository
{

public Agent Select(int agentId)
{
    Agent tmp = null;
    using (IDataReader agentInformation = GetAgentFromDatabase(agentId))
    {
        if (agentInformation.Read())
        {
            tmp = new Agent();
            tmp.AgentId = int.Parse(agentInformation["AgentId"].ToString());
            tmp.FirstName = agentInformation["FirstName"].ToString();
            tmp.LastName = agentInformation["LastName"].ToString();
            tmp.Address1 = agentInformation["Address1"].ToString();
            tmp.Address2 = agentInformation["Address2"].ToString();
            tmp.City = agentInformation["City"].ToString();
            tmp.State = agentInformation["State"].ToString();
            tmp.PostalCode = agentInformation["PostalCode"].ToString();
            tmp.PhoneNumber = agentInformation["PhoneNumber"].ToString();
        }
    }

    return tmp;
}

private IDataReader GetAgentFromDatabase(int agentId)
{
    SqlCommand cmd = new SqlCommand("SelectAgentById");
    cmd.CommandType = CommandType.StoredProcedure;

    SqlDatabase sqlDb = new SqlDatabase("MyConnectionString");
    sqlDb.AddInParameter(cmd, "AgentId", DbType.Int32, …
Run Code Online (Sandbox Code Playgroud)

c# unit-testing mocking isolation-frameworks

12
推荐指数
1
解决办法
578
查看次数

ASP.Net MVC4移动感知输出缓存

我正在努力将应用程序从MVC3升级到MVC4,并注意到我认为(希望?)会"正常工作"的东西.

码:

[OutputCache(Duration = 600, VaryByParam = "none")]
public ActionResult Index()
{
   return View();
}
Run Code Online (Sandbox Code Playgroud)

这是ASP.Net的教科书缓存示例.每当浏览器点击页面时,它会检查缓存以查看是否存在某些内容,如果没有则生成视图,然后发送缓存的结果.

这很好用; 但是,在使用MVC4的Mobile视图功能时,我注意到上面的代码没有检查请求是否来自移动设备.因此,如果我在桌面上点击该路线,桌面视图将显示在我的手机上,直到缓存无效.反之亦然(如果我首先使用手机点击页面,则桌面将会看到移动视图).

是否有一个参数可以用来使我的工作像我希望的那样,或者我正在构建一个客户OutputCacheProvider?

asp.net-mvc-4

12
推荐指数
2
解决办法
2217
查看次数

人们使用Node.js部署关系数据库更改的方式有哪些?

我最近越来越多地潜入Node.js和托管服务,如Heroku和Nodejitsu,并一直试图找出如何最好地为postgres或mysql部署数据库更改.

我可以看到npm下的一些迁移项目; 然而,所有似乎都是真正的马车或只是不工作.我目前在npm上管理Monarch迁移项目,但它本身就是错误的,我开发此类实用程序的经验是使用其他更多程序的语言.

那么人们用什么来在这些环境中部署对数据库的更改呢?什么对人有用?

我正在寻找更好地了解当前情况/过程的样子.

database migration deployment node.js

7
推荐指数
1
解决办法
278
查看次数

处理对象之间的循环依赖关系的最佳方法是什么?

在我的代码中,我有以下对象:

  • ErrorManager - 控制如何在应用程序中记录错误
  • ConfigManager - 控制如何获取配置信息

在我正在进行的项目中,ErrorManager需要使用ConfigManager实例提取配置信息,而ConfigManager使用ErrorManager时会发生错误.

目前,我在代码中执行以下操作:

ErrorManager _errorManager = new CustomErrorManager();
ConfigManager _configManager = new CustomConfigManager(_errorManager);
_errorManager.SetConfigurationManager(_configManager);
Run Code Online (Sandbox Code Playgroud)

有没有办法让我清理这个依赖关系的循环引用?

dependencies dependency-injection

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

是否有.Net平台的Django或Rails?

在我深入研究这个问题之前,我知道nDjango和MonoRail; 然而,这些项目似乎缺乏.

我想知道的是,如果在.Net世界中有一个解决方案,它具有以下功能,就像Rails在Ruby或Django中用于Python一样.我知道工具可以做多件事,但如果有一个统一的解决方案,我很好奇.

  • 数据库版本控制/迁移
  • ORM或类似的代码
  • 基于MVC
  • 预生成的管理屏幕
  • 查看生成
  • 主题/造型
  • (我确定我忘记了另一个基石功能)

有很多选项可以涵盖这些方面中的一个或多个,但.Net中有哪些内容涵盖了所有这些方面?

谢谢

asp.net django asp.net-mvc ruby-on-rails

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

是否可以通过非.Net语言使用.Net WCF 4 Web服务?

我一直困扰着一个问题大约一个星期,现在我只求助于“是否有可能提出问题”。

其他语言可以连接到使用.Net的WCF 4框架编写的Web服务吗?

WCF几年前首次出现时(在.Net v3.0 / winfx下),我能够使用basicHttpBindings将Java客户端连接到它。但是,尝试在最新,最好的版本下做同样的事情让我想知道是否有可能。我可以从Visual Studio随附的Cassini Web服务器创建WSDL,但总是被告知格式不正确。当我将其与来自ASMX服务的WSDL(有效)进行比较时,两者有很大的不同。

是否有人用WCF 4创建了Web服务,并能够使用非.Net语言甚至使用WSDL.exe之类的东西来连接到Web服务?

.net wcf

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

如何使用LLBLGen连接具有条件的表?

我有以下Sql查询返回我想要的结果类型:

SELECT b.ID, a.Name, b.Col2, b.COl3
FROM Table1 a
LEFT OUTER JOIN Table2 b on b.Col4 = a.ID AND b.Col5 = 'test'
Run Code Online (Sandbox Code Playgroud)

实质上,如果表2中没有条件'test',那么我希望列出等于Table1(a)的行,同时列出表2(b)中的数据或NULL.

我对LLBLGen比较陌生,并尝试过一些东西而且没有用.如果条件存在,我可以让它工作; 但是,当需求发生变化并导致我将查询重写为上述内容时,我感到很茫然.

以下是适用于现有产品的旧LLBLGen C#代码,但不适用于上述查询:

LookupTable2Collection table2col = new LookupTable2Collection();

RelationCollection relationships = new RelationCollection();
relationships.Add(LookupTable2Entity.Relations.LookupTable1EntityUsingTable1ID, JoinHint.Left);

IPredicateExpression filter = new PredicateExpression();
filter.Add(new FieldCompareValuePredicate(LookupTable2Fields.Col5, ComparisonOperator.Equal, "test"));

table2col.GetMulti(filter, relationships);
Run Code Online (Sandbox Code Playgroud)

表1中有3条记录.即使表2中的所有项都为NULL,我也需要返回3条记录,因为条件不存在.有任何想法吗?

c# sql sql-server llblgenpro

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

jQuery Children选择器问题

我有以下代码:

$("#Table1 tbody").children().each(function(e){
$(this).bind('click', 
            function(){
                // Do something here
            }, 
            false) 
});
Run Code Online (Sandbox Code Playgroud)

Table1 html表有2列; 一个用于名称,一个用于<button>元素.

当我点击表格行时,它工作正常.当我点击按钮时,按钮代码触发; 但是,行代码也是如此.

如何过滤选择器以使按钮不会触发父元素的单击事件?

javascript jquery

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

处理多个JavaScript替换匹配

我有以下字符串:

This *is* a *test*!
Run Code Online (Sandbox Code Playgroud)

我想加粗由*字符包围的单词(在示例中为"is"和"test").

我有以下JavaScript代码:

var data = "This *is* a *test*!";
return data.replace(/\*(.*)\*/g, <b>$1</b>);
Run Code Online (Sandbox Code Playgroud)

返回字符串后,我得到以下内容:

This <b>is* a *test</b>!
Run Code Online (Sandbox Code Playgroud)

如何更改模式或基本代码以便按照我想要的方式进行更换?

javascript regex replace

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