小编Sch*_*ern的帖子

我可以在模板中设置模板继承吗?(模板工具包)

我必须根据用户所处的状态显示不同的医疗表格.还有许多州共享的默认表格.这些医疗表格都是用Template Toolkit编写的,它们包含在较大的模板中.状态可作为标准化形式的变量使用.

我需要选择特定于状态的模板(如果存在),否则回退到默认模板.我最好怎么做呢?

INCLUDE_PATH 已被用于控制网站样式之间的切换.

perl template-toolkit

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

如何堆叠Plack身份验证处理程序?

我想让我的Plack应用程序尝试几种不同的授权用户的方法.具体来说,检查用户是否已通过会话cookie授权,然后检查摘要式身份验证,然后回退到Basic.

我想我可以按照我希望它们被检查的顺序启用一堆Auth处理程序(Session,Digest,Basic).不幸的是,Plack :: Middleware :: Auth :: DigestPlack :: Middleware :: Auth :: Basic的编写方式如果摘要或基本auth分别不存在则返回401.

这通常如何处理普拉克?

authentication perl session plack

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

如何在子类中添加命名参数或在 Ruby 2.2 中更改它们的默认值?

这个问题是关于 Ruby 2.2 的。

假设我有一个接受位置和命名参数的方法。

class Parent
  def foo(positional, named1: "parent", named2: "parent")
    puts positional.inspect
    puts named1.inspect
    puts named2.inspect
  end
end
Run Code Online (Sandbox Code Playgroud)

子类既要覆盖一些默认值,又要添加自己的命名参数。我怎么做最好?理想情况下,它不必知道父签名的详细信息,以防父想要添加一些可选的位置参数。我的第一次尝试是这样的。

class Child < Parent
  def foo(*args, named1: "child", named3: "child" )
    super
  end
end
Run Code Online (Sandbox Code Playgroud)

但这会失败,因为未知数named3:被传递给了父级。

Child.new.foo({ this: 23 })

/Users/schwern/tmp/test.rb:10:in `foo': unknown keyword: this (ArgumentError)
        from /Users/schwern/tmp/test.rb:15:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我尝试明确地将参数传递给 super,但这也不起作用。似乎第一个位置参数被视为命名参数。

class Child < Parent
  def foo(*args, named1: "child", named3: "child" )
    super(*args, named1: "child")
  end
end

Child.new.foo({ this: 23 })

/Users/schwern/tmp/test.rb:10:in `foo': unknown keyword: this (ArgumentError) …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-2.2

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

如何告诉 Sentry 不要提醒某些异常?

我有一个 Rails 5 应用程序,它使用raven-ruby向 Sentry 发送异常,然后向我们的 Slack 发送警报。

Raven.configure do |config|
  config.dsn = ENV['SENTRY_DSN']
  config.environments = %w[ production development ]
  config.excluded_exceptions += []
  config.async = lambda { |event|
    SentryWorker.perform_async(event.to_hash)
  }
end

class SentryWorker < ApplicationWorker
  sidekiq_options queue: :default

  def perform(event)
    Raven.send_event(event)
  end
end
Run Code Online (Sandbox Code Playgroud)

我们的 Sidekiq 作业抛出异常并被重试是正常的。这些大多是间歇性的 API 错误和超时,它们会在几分钟内自行清除。Sentry 尽职尽责地向我们的 Slack 发送这些错误警报。

我已经将 加到retry_count了 jobs。如何防止 Sentry 将 retry_count < N 的异常发送到 Slack,同时仍然提醒其他异常?一个不应该被警告的例子会有这样的额外上下文:

sidekiq: {
  context: Job raised exception,
  job: {
    args: [{...}],
    class: SomeWorker,
    created_at: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails sentry ruby-on-rails-5

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

如何在 Perl 中将日期转换为纪元时间?

Solaris 10 似乎不太喜欢我。我正在尝试运行一个简单的脚本来接受日期并返回该日期的纪元:

#!/usr/bin/perl -w
use strict;
use Time::ParseDate;

my $date1 = "Mon Mar 27 05:54:08 CDT 2009";

#Convert to seconds since start of epoch
my $time1 = parsedate($date1);
print $time1;
Run Code Online (Sandbox Code Playgroud)

在 RHEL 机器上工作得很好,但在 Solaris 上就搞砸了(两者都有 5.8.8 Perl),给出以下错误消息。

无法在 @INC 中找到 Date/Parse.pm(@INC 包含:/usr/perl5/5.8.4/lib/sun4-solaris-64int /usr/perl5/5.8.4/lib /usr/perl5/site_perl/ 5.8.4/sun4-solaris-64int /usr/perl5/site_perl/5.8.4 /usr/perl5/site_perl /usr/perl5/vendor_perl/5.8.4/sun4-solaris-64int /usr/perl5/vendor_perl/5.8。 4 /usr/perl5/vendor_perl .) 在 try1.pl 第 3 行。 BEGIN 失败——编译在 try1.pl 第 3 行中止。

这里出了什么问题?..如何纠正这个问题?

哦..差点忘了,我无法更改/安装/修改此 Solaris 机器上的任何内容,该脚本需要发送给运行 Solaris 10 的客户!所以要求他安装模块绝对不是一个选择。:(

perl datetime date epoch

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

穆斯角色的角色

我想建立一个由其他较小角色组成的便利Moose角色.例如,如果我有WithAddress和WithPhone,我想要一个WithContacts同时提供WithAddress和WithPhone以及我将来添加的任何联系方法.

我怎么能和穆斯一起做这件事?

perl roles moose

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

基于Sqlite的DBI :: CSV实现

我处理了很多文本文件,以"SQL方式"比较.

DBD::CSV显然是一个很好的选择,因为我可以在文本表上使用SQL语法的强大功能.但是,我处理大量的文本文件,DBD::CSV在性能方面毫无用处.

所以,我开始编写一个将csv文件转换为sqlite DB的模块,然后返回DBI::sqlite我可以使用的对象.问题是,将文本文件转换为sqlite表也可能效率不高,因为我无法从perl运行sqlite命令行来快速加载CSV文件(使用.load).所以我必须Insert into根据文本表创建一个巨大的字符串,并执行它(逐行执行插入在性能方面是非常低效的,所以我更喜欢执行一个大的插入).我愿意避免这种情况,寻找一个使用perl将csv加载到sqlite的单行程序.

另外,我使用以下函数来执行和打印SQL查询:

sub sql_command {
my ($self,$str) = @_;
my $s = $self->{_db}->prepare($str) or die $!;
$s->execute() or die $!;
my $table;
push @$table, [ map { defined $_ ? $_ : "undef" } @{$s->{'NAME'}}];
while(my $row = $s->fetch) {
    push @$table, [ map{ defined $_ ? $_ : "undef" }@$row ];
}
box_format($table);
return box_format($table);;
}


sub box_format {
my $table = shift;
my $n_cols = scalar @{$table->[0]}; …
Run Code Online (Sandbox Code Playgroud)

sqlite perl dbd

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

如何在Perl中对JSON字符串进行诊断?

我熟悉decode_json()函数,该函数尝试解码JSON字符串,如果不能这样做,则会错误地终止Perl程序 - 但这个问题与该函数无关.

我想要的是这个---我想要一个函数,通过它我可以运行一个JSON字符串,该函数只是告诉我JSON字符串是否是犹太教 - 如果它不是犹太教,请给我详细信息这有什么问题.

有这样的功能吗?如果是这样,这里有人可以指出我正确的方向吗?

该功能也并不需要JSON字符串解码-它只是需要通知调用程序,如果JSON字符串可以被解码-并允许调用程序继续不分胜负它的运行.

如果事情错误的字符串-我需要知道的只是些什么样的它是错误的,但在那里字符串中的错误是---包括哪些行号如果字符串是被解释为全内容一个文件.简而言之,这些信息对于调试从中读取字符串的JSON文件很有用.

perl json

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

Alien :: wxWidgets在OSX10.10上安装失败

我正在尝试将Alien :: wxWidgets版本0.67与wxWidgets版本3.0.2一起安装,但是无论我做什么,都会收到以下错误消息:

checking if C compiler (clang -mmacosx-version-min=10.5) works with SDK/version options... configure: error: in `/Users/David/.cpan/build/Alien-wxWidgets-0.67-GGkXTu/wxWidgets-3.0.2/bld':
configure: error: no.  Try a different SDK
See `config.log' for more details
system: echo exit | sh ../configure --prefix=/Users/David/perl5/perlbrew/perls/perl-5.16.0/lib/site_perl/5.16.0/darwin-2level/Alien/wxWidgets/osx_cocoa_3_0_2_uni --with-osx_cocoa --with-opengl --disable-compat24 --enable-unicode  --disable-monolithic --disable-universal_binary  --enable-graphics_ctx CC=clang CXX=clang++ CXXFLAGS="-stdlib=libc++ -std=c++11" OBJCXXFLAGS="-stdlib=libc++ -std=c++11" LDFLAGS=-stdlib=libc++: 256 at Build line 60.
Run Code Online (Sandbox Code Playgroud)

我尝试使用标志--with-macosx-sdk = 10.5,--with-macosx-sdk = 10.10,--without-macosx-sdk,--with-macosx-sdk = / Applications / Xcode.app /内容/开发人员/平台/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/,但没有一个起作用。

这是config.log的一部分,我在其中看到错误,但是我不知道如何解决它:

configure:16429: checking for gcc
configure:16456: result: clang
configure:16685: checking for C compiler version …
Run Code Online (Sandbox Code Playgroud)

macos perl wxwidgets wxperl osx-yosemite

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

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