小编pur*_*kle的帖子

当我在Git分支时,如何让我的iTerm提示以不同的方式显示?

我试图让我的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)

我不知道如何使分支出现在不同的颜色而不是前面的"开"

除此之外还有其他功能,例如:

  • 不在git分支时在提示符处显示"o"
  • 在分支中显示"±"
  • 在行尾显示日期

任何帮助,将不胜感激

git macos bash iterm

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

我们如何对Mojolicious控制器进行单元测试?

我们创建了以下简单的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)

testing tdd perl mojolicious

11
推荐指数
1
解决办法
2905
查看次数

Mac OS X中有两个版本的Perl?

我已经在我的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 …

macos perl templates cpan osx-snow-leopard

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

如何在Ruby中执行复杂的自定义排序?

我有一个如下所示的数组:

[
  { 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

如何按预先确定的规则对数组进行排序?

ruby sorting

8
推荐指数
1
解决办法
3832
查看次数

为什么我的Perl测试失败?

我创建了以下测试类:

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)

perl unit-testing

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

是否可以将自动测试与Perl项目一起使用?

我目前正在使用我的Mac上使用TDD的Mojolicious应用程序,我每次更改一些代码时都不得不手动运行我的测试.

在做了一些Rails开发之后,我真的开始喜欢我从autotest gem获得的自动响应,并且想知道它有一个Perl等价物或者是否有某种方法可以使用Perl的自动测试.

perl

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

如何使我的Perl方法更像Moose?

我正在练习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方法感觉不是非常愚蠢,我觉得这可以进一步重构.

有没有人对如何改进这方面有任何意见?

perl moose

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

在RVM下使用Ruby 1.9.2运行Rails时出错

当我在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时运行相同的命令,一切正常.

为什么会这样?

ruby ruby-on-rails ruby-on-rails-3

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

使用SCCS作为版本控制系统有什么好的工作流程?

由于我们的组织实施了限制,我们目前仅限于使用SCCS进行版本控制.

SCCS只允许一个开发人员同时处理文件,这会在我们的工作流程中产生瓶颈.

有没有人有成功使用SCCS的示例或提示?

unix version-control

0
推荐指数
1
解决办法
113
查看次数