问题列表 - 第13018页

使用MooseX :: Declare创建BUILDARGS方法的正确方法是什么?

在调用BUILDARGS时,我很难正确使用MooseX :: Declare.

我正在尝试创建一个对象作为文件的接口.(具体来说,我想要一个二进制文件的接口,让我可以查看文件中的下几个字节,然后将它们关闭以进行进一步处理.)

我希望能够像这样创建其中一个对象

my $f = binary_file_buffer->new( $file_name );
Run Code Online (Sandbox Code Playgroud)

然后像这样使用它

while( my $block_id = $f->peek( $id_offset, $id_length ) ) {
    $block_id = unpack_block_id( $block_id );
    $munge_block{ $block_id }->(
        $f->pop( $block_size[ $block_id ] )
    );
}
Run Code Online (Sandbox Code Playgroud)

我的binary_file_buffer类定义/声明看起来像这样

use MooseX::Declare;
class binary_file_buffer {
    use FileHandle;
    use Carp;

    has _file      => ( is => 'ro', isa => 'FileHandle' );
    has _file_name => ( is => 'ro', isa => 'Str' );
    has _buff      => ( is => 'rw', isa => 'Str',  default …
Run Code Online (Sandbox Code Playgroud)

perl moose

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

在日期时间验证中构建的rails

rails是否对datetime进行了任何验证?我找到了一个插件 http://github.com/adzap/validates_timeliness/tree/master,但它似乎应该是开箱即用的东西.

validation ruby-on-rails

31
推荐指数
4
解决办法
3万
查看次数

Xcode 3.2 + LLVM =调试时没有本地符号

我有一个Mac OS X 10.5的项目,我使用Xcode 3.2在10.6上构建.当我使用GCC 4.2进行Debug构建并命中断点时,Xcode调试器通常会显示局部变量信息.如果我选择LLVM GCC 4.2或Clang LLVM,当我点击断点时,本地符号不可用,并且如果我尝试打印self或任何其他本地符号,GDB 在当前上下文中没有符号'self'.在所有情况下都设置了生成调试信息选项.Debug配置设置为和10.5 SDK,设置Build active architecture选项.当GDB启动时,我可以看到它被配置为x86_64-apple-darwin.我一定错过了一些明显的东西.使用LLVM编译器时,如何使GDB显示本地符号?$(NATIVE_ARCH)

debugging xcode gdb llvm clang

10
推荐指数
3
解决办法
5352
查看次数

什么是PHPSESSID?

我正在玩饼干.而且我没有任何名为PHPSESSID的cookie.

我需要它吗?我能把它删除吗?

它的"功能"是什么?

if (count($_POST)) {

setcookie("TestCookie", htmlspecialchars($_POST['val']), time()+3600);
}

print_r($_COOKIE);
Run Code Online (Sandbox Code Playgroud)

打印:

Array
(
    [TestCookie] => blabla
    [PHPSESSID] => el4ukv0kqbvoirg7nkp4dncpk3
)
Run Code Online (Sandbox Code Playgroud)

php cookies

47
推荐指数
3
解决办法
15万
查看次数

C++样式:将虚拟关键字前缀为重写方法

我一直在与我的同事讨论是否使用virtual关键字为重写方法添加前缀,或者仅在原始基类中添加前缀.

我倾向于使用virtual关键字为所有虚拟方法(即涉及vtable查找的方法)添加前缀.我的理由是三重的:

  1. 鉴于C++缺少override关键字,virtual关键字的存在至少会通知您该方法涉及查找,理论上可以通过进一步的特化来覆盖,或者可以通过指向更高基类的指针来调用.

  2. 始终使用这种风格意味着,当你没有virtual关键字看到(在我们的代码至少)的方法,你可以初步认为它既不是从基础衍生也不专门的子类.

  3. 如果,通过一些错误,虚拟从IFoo中删除,所有子节点仍将起作用(CFooSpecialization :: DoBar仍会覆盖CFooBase :: DoBar,而不是简单地隐藏它).

正如我所理解的那样,反对这种做法的论点是,"但这种方法不是虚拟的"(我认为这种方法无效,并且来自对虚拟性的误解),并且"当我看到虚拟关键字时,我希望意味着有人从中衍生出来,然后去寻找它们."

假设的类可以分布在几个文件中,并且有几个专门化.

class IFoo {
public:
    virtual void DoBar() = 0;
    void DoBaz();
};

class CFooBase : public IFoo {
public:
    virtual void DoBar(); // Default implementation
    void DoZap();
};


class CFooSpecialization : public CFooBase {
public:
    virtual void DoBar(); // Specialized implementation
};
Run Code Online (Sandbox Code Playgroud)

从风格上讲,你会从两个派生类中删除虚拟关键字吗?如果是这样,为什么?Stack Overflow的想法是什么?

c++ methods coding-style virtual-functions

25
推荐指数
2
解决办法
6142
查看次数

如何在Ruby中拆分目录字符串?

在红宝石中,我能够做到

File.dirname("/home/gumby/bigproject/now_with_bugs_fixed/32/FOO_BAR_2096.results")
Run Code Online (Sandbox Code Playgroud)

得到

"/home/gumby/bigproject/now_with_bugs_fixed/32"
Run Code Online (Sandbox Code Playgroud)

但现在我想将该目录字符串拆分为单个文件夹组件,例如

["home", "gumby", "bigproject", "now_with_bugs_fixed", "32"]
Run Code Online (Sandbox Code Playgroud)

除了使用之外,有没有办法做到这一点

directory.split("/")[1:-1]
Run Code Online (Sandbox Code Playgroud)

ruby linux windows string

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

使用Linux命令对两个文件执行"减号"操作

我有4个按字母顺序排序的文件,A,B,C和D.这些文件在每一行包含一个字符串.本质上,需要发生的是B中的任何内容都会从A中删除.然后,C的结果将被删除.同样,其结果将被剥夺D.

有没有办法使用Linux命令?

linux

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

在一个sqlalchemy中按年,月,日分组

我想要

DBSession.query(Article).group_by(Article.created.month).all()
Run Code Online (Sandbox Code Playgroud)

但是这个查询无法使用

我如何使用SQLAlchemy执行此操作?

python sqlalchemy

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

如何从Windows上的c ++控制台应用程序打印UTF-8

对于在英语Windows(XP,Vista或7)上使用Visual Studio 2008编译的C++控制台应用程序.是否可以打印到控制台并使用cout或wcout正确显示UTF-8编码的日语?

c++ utf-8 console-application

19
推荐指数
4
解决办法
3万
查看次数

使用Ruby和JQuery构建表单生成器

我正在寻找一些关于为RoR应用程序设计上述内容的建议,该应用程序基本上有两个部分:

1)管理员表单构建器2)最终用户表单(由管理员在步骤1中创建)

我已经构建了我想要的JQuery表单(最终结果),它使用了"渐进式披露"(类似于JQuery in Action书中的Yehuda Katz的Bamboo示例),所以如果你点击一个项目,另一个项目可能会打开(例如点击"注册复选框"和另一个注册子表单显示).我也有rails应用程序实际构建了几个输入,如上所述.但是,我觉得我并没有真正利用Ruby的动态功能.例如,这是我的一个模块方法的一部分,它构建了一个特定的简单html输入:

module Levin 
  module EventReg 
    module Jquery

  def self.simple_registration_text(input_params)
    raise ArgumentError if input_params.nil?
    ip_id = input_params[:input_div_id] 
    simple_reg_input_html = '<p><label for="'
    simple_reg_input_html << "#{ip_id + '_label_id'}\">"
    ........<A BUNCH MORE CODE TO BUILD INPUT>........
    simple_reg_input_html << ' class="required"' unless input_params[:is_required].eql?("0")    
    simple_reg_input_html << '/></p>'
  end
Run Code Online (Sandbox Code Playgroud)

基本上,管理员可以命名输入项,我将其用于div id等.鉴于我有许多输入类型(选择下拉菜单,textareas,带子项的输入,如带有复选框的输入类型文本,如果选中,打开一个数据网格,可以通过对话框弹出窗口等添加/删除项目.),我想避免像上面的例子中那样"硬连接"构建方法.此外,允许调用者负责输入值选择(当它们传递输入参数参数时已经发生)以及构建器本身也是很好的.

我对函数式编程非常陌生,但我正在考虑调用者传入"构建器"lambda的影响,它使用输入参数构建他们需要的特定表单输入:

builder_lambda.call(input_params)

但是当我想到这一点时,似乎lambda看起来与Jquery模块已经做的非常相似.是的,调用者可以根据自己的喜好创建自定义构建器,但那么我的模块方法真的会做什么!它会提供什么价值?

我有时也需要将这些输入连接到特定的事件处理程序.也许可能有一系列lamdas,一个构建器和一个add事件处理程序,如:

builder_lambda.call(input_params)

add_event_handlers_lambda.call(input_params)

我是在正确的轨道上吗?对不起,如果我在闲聊,但我显然无法将此问题分解为"Ruby-istic"解决方案,并且非常感谢有关更具动态性的方法的想法.

编辑:这对我很有帮助:Obie Fernandez DSL Development PDF

jquery closures functional-programming ruby-on-rails

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