我试图让我的iTerm提示设置方式与Paul Irish相同
到目前为止,我有以下内容~/.profile:
# Add git branch name to prompt
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/*\(.*\)/ on \1/'
}
PS1='\n\[\033[0:35m\]\u\[\033[0;32m\]\w\[033[0m\]$(parse_git_branch)\n\$\[\033[0m\] '
Run Code Online (Sandbox Code Playgroud)
我不知道如何使分支出现在不同的颜色而不是前面的"开"
除此之外还有其他功能,例如:
任何帮助,将不胜感激
我们创建了以下简单的Mojolicious控制器:
package SampleApp::Pages;
# $Id$
use strict;
use warnings;
our $VERSION = '0.01';
use Mojo::Base 'Mojolicious::Controller';
sub home {
my $self = shift;
$self->render( 'title' => 'Home' );
return;
}
sub contact {
my $self = shift;
$self->render( 'title' => 'Contact' );
return;
}
sub about {
my $self = shift;
$self->render( 'title' => 'About' );
return;
}
1;
Run Code Online (Sandbox Code Playgroud)
相应的单元测试如下:
package Test::SampleApp::Pages;
# $Id$
use strict;
use warnings;
our $VERSION = '0.01';
use Carp;
use English '-no_match_vars';
use …Run Code Online (Sandbox Code Playgroud) 我已经在我的MacBook Pro上通过CPAN安装了模板模块,它似乎安装正确.
但是,当我尝试运行包含模块模块的脚本时,我得到以下内容:
无法在@INC中找到Template.pm(@INC包含:/ Users/purinkle/Sites/rob/modules /Library/Perl/Updates/5.10.0/darwin-thread-multi-2level/Library/Perl/Updates/5.10.0 /System/Library/Perl/5.10.0/darwin-thread-multi-2level /System/Library/Perl/5.10.0/Library/Perl/5.10.0/darwin-thread-multi-2level/Library/Perl/5.10.0 /Network/Library/Perl/5.10.0/darwin-thread-multi-2level /Network/Library/Perl/5.10.0/Network/Library/Perl/System/Library/Perl/Extras/5.10. 0/darwin-thread-multi-2level /System/Library/Perl/Extras/5.10.0.)at ./index.pl第12行.
BEGIN失败 - 编译在./index.pl第12行中止.
然后我认为在安装过程中出现问题并尝试通过CPAN再次安装但收到以下消息:
模板是最新的(2.22).
然后我运行了instmodsh命令来尝试找到模块的安装位置.instmodsh列出了这些目录:
/选择/ local/bin目录
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Manual
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Namespace
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Plugin
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Stash
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Tools
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/Template/Tutorial
/opt/local/lib/perl5/site_perl/5.8.9/darwin-2level/auto/Template/Stash/XS
/选择/本地/共享/人/ MAN1
/选择/本地/共享/人/ man3
看起来我有一些如何安装两个不同版本的Perl(5.8.9和5.10.0),这导致CPAN和其他Perl脚本之间的混淆.
如何验证此问题以及如何解决此问题?
我已经运行了命令
which perl
which cpan
Run Code Online (Sandbox Code Playgroud)
他们都返回/ opt/local/bin
运行
find / -name perl
Run Code Online (Sandbox Code Playgroud)
回报
find:/ dev/fd/3:不是目录
find:/ dev/fd/4:不是目录
/选择/ local/bin中/ perl的
/opt/local/etc/bash_completion.d/perl
/opt/local/var/macports/software/bash-completion/1.2_0/opt/local/etc/bash_completion.d/perl
/opt/local/var/macports/software/perl5.8/5.8.9_3/opt/local/bin/perl
/opt/local/var/macports/sources/rsync.macports.org/release/ports/perl
在/ usr/bin中/ perl的
在/ usr/local/bin中/ perl的
在/ usr /共享/文件/魔法/ perl的
和
find / -name cpan
Run Code Online (Sandbox Code Playgroud)
回报
/选择/ local/bin目录/ CPAN
/opt/local/var/macports/software/perl5.8/5.8.9_3/opt/local/bin/cpan …
我有一个如下所示的数组:
[
{ type: 'A', price: '0.01' },
{ type: 'B', price: '4.23' },
{ type: 'D', price: '2.29' },
{ type: 'B', price: '3.38' },
{ type: 'C', price: '1.15' }
]
Run Code Online (Sandbox Code Playgroud)
我需要将它们分组type,然后按升序对它们进行排序price.我可以通过执行以下操作来解决此问题:
boards.sort_by {|e| [e['type'], e['price'].to_f]}
Run Code Online (Sandbox Code Playgroud)
不幸的是,type当它们被排序时,它按字母顺序排序BADC
如何按预先确定的规则对数组进行排序?
我创建了以下测试类:
package Test::DB;
# $Id$
#
use strict;
use warnings;
our $VERSION = '0.01';
use Carp;
use English '-no_match_vars';
use Test::Most;
use base 'Test::Class';
sub startup : Tests(startup) {
eval {
require esp_libs_db;
esp_libs_db->import;
1;
} or Carp::croak($EVAL_ERROR);
return 1;
}
sub connect : Tests(2) {
can_ok 'esp_libs_db', 'espDbConnect';
my $schema = 'test_schema';
throws_ok { espDbConnect($schema) }
qr/Cannot locate database ($schema) connection file./,
'dies when connection file does not exist';
return 1;
}
1;
Run Code Online (Sandbox Code Playgroud)
当我来运行测试时,我得到以下输出:
t/run.t ..
#
# Test::DB->connect …Run Code Online (Sandbox Code Playgroud) 我目前正在使用我的Mac上使用TDD的Mojolicious应用程序,我每次更改一些代码时都不得不手动运行我的测试.
在做了一些Rails开发之后,我真的开始喜欢我从autotest gem获得的自动响应,并且想知道它有一个Perl等价物或者是否有某种方法可以使用Perl的自动测试.
我正在练习Kata Nine:回到 Perl 的CheckOut,同时也尝试第一次使用Moose.
到目前为止,我已经创建了以下类:
package Checkout;
# $Id$
#
use strict;
use warnings;
our $VERSION = '0.01';
use Moose;
use Readonly;
Readonly::Scalar our $PRICE_OF_A => 50;
sub price {
my ( $self, $items ) = @_;
if ( defined $items ) {
$self->{price} = 0;
if ( $items eq 'A' ) {
$self->{price} = $PRICE_OF_A;
}
}
return $self->{price};
}
__PACKAGE__->meta->make_immutable;
no Moose;
1;
Run Code Online (Sandbox Code Playgroud)
整个price方法感觉不是非常愚蠢,我觉得这可以进一步重构.
有没有人对如何改进这方面有任何意见?
当我在RVM下使用Ruby 1.9.2时尝试运行Rails应用程序时,出现以下错误:
/Users/purinkle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find rails (>= 0) amongst [rake-0.9.2] (Gem::LoadError)
from /Users/purinkle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /Users/purinkle/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/site_ruby/1.9.1/rubygems.rb:1182:in `gem'
from /Users/purinkle/.rvm/rubies/ruby-1.9.2-p290/bin/rails:18:in `<main>'
Run Code Online (Sandbox Code Playgroud)
如果我尝试在使用Ruby 1.8.7时运行相同的命令,一切正常.
为什么会这样?
由于我们的组织实施了限制,我们目前仅限于使用SCCS进行版本控制.
SCCS只允许一个开发人员同时处理文件,这会在我们的工作流程中产生瓶颈.
有没有人有成功使用SCCS的示例或提示?