小编ist*_*sci的帖子

在Ruby中评估像Array#join这样的许多布尔表达式

在Ruby中,您可以使用Array#join将多个字符串简单地连接在一起,并使用可选的分隔符.

[ "a", "b", "c" ].join        #=> "abc"
[ "a", "b", "c" ].join("-")   #=> "a-b-c"
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一个很好的语法糖与一堆布尔表达式做类似的事情.例如,我需要&&一堆表达式.但是,将使用哪些表达式由用户输入确定.所以不要做一堆

cumulative_value &&= expression[:a] if user[:input][:a]
Run Code Online (Sandbox Code Playgroud)

我想先根据输入收集所有表达式,然后将&&它们一起全部收集起来.就像是:

be1 = x > y
be2 = Proc.new {|string, regex| string =~ regex}
be3 = z < 5 && my_object.is_valid?
[be1,be2.call("abc",/*bc/),be3].eval_join(&&)
Run Code Online (Sandbox Code Playgroud)

默认情况下Ruby中是否有这样的设备?如果可能的话,我只想要一些合成糖来使代码更清洁.

ruby syntactic-sugar boolean-expression

14
推荐指数
2
解决办法
6801
查看次数

以编程方式确定git-flow是否已初始化

有没有办法做到这一点?如果repo只是具有.git/config类似的git-flow指令,那么它是否被认为是初始化的

....
[gitflow "branch"]
    master = master
    develop = develop
[gitflow "prefix"]
    feature = feature/
    release = release/
    hotfix = hotfix/
    support = support/
    versiontag = v
Run Code Online (Sandbox Code Playgroud)

git-flow

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

Ruby gems存储库

我正在尝试在我们的一个本地服务器上设置gem存储库.以下是我正在运行的步骤,我已经从几个指南中了解到了这些步骤.

1)我创建BASEDIR文件夹/ var/www/html/gems
2)sudo cp -r /usr/lib/ruby/gems/1.8/gems/someGem/var/www/html/gems
3)sudo gem generate_index -d在/ var/www/html等/宝石

但是,当我运行它时,我得到以下输出:

Loading 0 gems from /var/www/html/gems

Loaded all gems
Generating quick index gemspecs for 0 gems

Complete
Generating specs index
Generating latest specs index
Generating quick index
Generating latest index
Generating Marshal master index
Generating YAML master index for 0 gems (this may take a while)

Complete
Compressing indicies
Run Code Online (Sandbox Code Playgroud)

由于某种原因,它没有加载宝石.我确实看到一个指南,建议将BASEDIR作为/ var/www/html/ruby​​gems /,然后在BASEDIR中进一步创建一个gems /目录,并将所需的gem复制到这个gems /目录.我也尝试了这个,但得到了相同的结果.

我们的服务器必须具有相同配置的不幸运气在此提到的 …

ruby gem rubygems repository

6
推荐指数
2
解决办法
6485
查看次数

ActionMailer - 限制收件人数量?

在部署我的RoR(2.3.8)应用程序后,我已经设置了Capistrano来发送电子邮件.我有一个config/cap_mailer.rb基本上看起来像的文件:

ActionMailer::Base.smtp_settings = {
  :address => my,
  :port => exchange,
  :domain => server,
  :authentication => settings,
  :user_name => are,
  :password => here
}

class CapMailer < ActionMailer::Base
  def deploy_notification(cap_vars)
    recipients  cap_vars[:notify_emails]
    from        'deploy@my.org'
    subject     "New app!"
    body        "Deployed application...blah blah blah"
  end
end
Run Code Online (Sandbox Code Playgroud)

然后,在我的deploy.rb文件中,我有以下内容:

require 'config/cap_mailer.rb'
...
desc "Email recipients of deployment"
task :notify do
  puts "  * Sending notification email"
  set :notify_emails, ["test1@my.org", "test2@my.org", etc.]
  CapMailer.deliver_deploy_notification(self)
end
Run Code Online (Sandbox Code Playgroud)

现在这一切都运行良好和花花公子......直到我在:notify_emails数组中放置了超过7个电子邮件地址.最多7个工作正常,但当我把8个或更多(所有有效地址),电子邮件搞砸了一点(至少仍然是前7个).查看电子邮件标题,它显示它正在切断"To:"中的第8个(和第9个,第10个......)地址并将其放入邮件正文中.

HEADER:
thread-index:AcyaZxlga08L9p35QYKJ22aiGG2zeA ==
Content-Class:urn:content-classes:message
重要性:正常 …

capistrano ruby-on-rails actionmailer

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

Rails环境中的"私有"Rake任务

我知道我可以使用以下内容来调用子任务列表,并让每个子任务都使用我项目的Rails环境:

task :main_task => [:sub_task1, :sub_task2] do
end

task :sub_task1 => :environment do
  Model1.some_class_method
end

task :sub_task2 => :environment do
  Model2.some_class_method
end
Run Code Online (Sandbox Code Playgroud)


我的问题是

  1. 有没有办法:main_task传递,:environment所以我不必明确地把它放在每个子任务中?
  2. 有没有办法让子任务被视为"私人"?也就是说,我不希望它们被单独显式调用.他们只会从中执行:main_task.基本上我需要从一个数据库(SQLServer)中读取数据并填充另一个数据库(MySQL - Rails项目的数据库),但我希望将"读取"任务与"填充"任务分开以获得良好的可读性.

ruby syntax rake ruby-on-rails

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

Adobe Flex/Actionscript事件处理顺序

尽可能简单,我试图找出是否保证按照调度顺序处理事件.假设我有以下简单代码:

private function handler1(e:Event):void { .. processing ..}
private function handler2(e:Event):void { .. processing ..}
private function handler3(e:Event):void { .. processing ..}

<SomeComponent myEvent1="handler1(event)" myEvent2="handler2(event)" myEvent3="handler3(event)" ... />
Run Code Online (Sandbox Code Playgroud)

如果在我的应用程序中的某个地方(来自组件本身或实例化组件的其他地方),如果我按照1,2,3的顺序发送这些事件,如:

dispatchEvent(new Event('myEvent1'));
dispatchEvent(new Event('myEvent2'));
dispatchEvent(new Event('myEvent3'));
Run Code Online (Sandbox Code Playgroud)

这些处理程序是否保证以相同的顺序触发(即handler1,handler2,handler3)......?我搜索互联网(阅读:谷歌)的任何关于"adobe事件处理订单"或任何类似的东西只是指事件生命周期.我找不到这个特定的细微差别.任何帮助是极大的赞赏.

--Ian

apache-flex events adobe actionscript

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

你能在Rails迁移中创建一个"临时"模型吗?

我有一个Rails 2项目,通过连接表有很多关系.让我们把表A,B,和ABJ,其中ABJ具有性能a_idb_id(连同不相干到这-问题id{created,updated}_at).

我想做的事

不幸的是,这种关系从一开始就被错误地创建,应该只是一个多(A has_many B's,B belongs_to A).所以我创建了一个向上迁移,将B直接重新关联到A. 基本上,1)add_column a_id到B,2)为每个ABJ,把abj.a.id放到abj.b.a_id,3)drop_table:abj.这很好用.

我还在向下迁移中创建了"逆"操作,如果我需要为每个B创建(1)create_table abj,2),则创建一个新的abj,使得abj.a_id = b.a_id和abj.b_id = b .id,3)从B)中删除_column a_id.这也很好.

问题

随着"重新关联"这种关系与一个多的关系,期望不再使用的连接资源ABJ将消失,即删除模型,控制器,测试等.问题是,如果我这样做需要返回,运行向下迁移将无法工作,因为在步骤2(对于每个B,创建一个新的abj),class ABJ < ActiveRecord::Base自从我删除模型后就不再有了.

那么,为了操纵数据库中的数据,有没有办法在迁移中制作"临时"模型?或者您是否只是要求运行迁移的人在运行之前确定该模型是否存在?因为如果在步骤2中向下迁移失败,则步骤1已经创建了abj表,然后您必须手动删除它或在迁移中注释掉第1步代码,然后再次运行它(然后取消注释它) ).

想知道是否有任何好的解决方案.

model ruby-on-rails rails-migrations

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

Windows批处理文件-将环境变量插值到可执行调用中

抱歉,如果我在另一个线程中忽略了此问题,但无法找到它(在Internet上或实际上在任何地方)。

在Windows(XP)中,通过右键单击我的电脑,然后选择属性>高级>环境变量,可以设置以下全局环境变量

CUSTOM_HOME = c:\some\folder\path
Run Code Online (Sandbox Code Playgroud)

如何将其插值到批处理文件中的执行中?我需要“追加” subfolder\program.exe到该路径,以便c:\some\folder\path\subfolder\program.exe进入批处理文件。我尝试类似的东西

%CUSTOM_HOME%\subfolder\program.exe
Run Code Online (Sandbox Code Playgroud)

但是当我执行批处理文件时,输出仅显示

> \subfolder\program.exe
> The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)

什么是正确的语法,因此.exe的完整路径将是正确的?

windows interpolation file batch-file environment-variables

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

Java(Android) - 类未找到异常

我正试图在Android中做一些简单的FTP东西.经过一番研究,我决定选择apache-commons-net.以下是我在Eclipse下使用它的步骤.

  1. 从这里下载包并在本地解压缩.
  2. 在Eclipse中,要添加这个新库,我转到(Window>)首选项> Java>构建路径>用户库,单击新建,命名它apache-commons-net,然后选择添加JAR ...通过选择出现的.jar文件下载.
  3. 对于每个.jar,我按照此处的描述添加Source附件.
  4. 完成后,我右键单击我的项目并选择Properties> Java Build Path> Libraries,单击Add Library ...> User Library>(Next>)选择apache-commons-net> Finish.然后,库将显示Android 2.2在" 库"选项卡中.

我开始编程,代码完成适用于类/方法/等.来自这个图书馆.包括导入语句等等.一切似乎都能正常工作.问题是,当我运行应用程序时,它强制关闭,Eclipse中的LogCat显示以下错误:

找不到类'org.apache.commons.net.ftp.FTPClient',从方法<...>引用
...
引起:java.lang.NoClassDefFoundError:org.apache.commons.net.ftp.FTPClient

看起来我已经正确设置了一切,为什么执行抱怨它找不到类?

非常感谢任何想法或帮助.

  • 伊恩

java eclipse installation android

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