我有一个生产系统,有几个角色的服务器.我想通过部署到该特定服务器来测试新的应用服务器,而无需重新部署到生产中的每个服务器.有没有办法让Capistrano部署到特定的服务器?理想情况下,我希望能够运行类似的东西
cap SERVER=app2.example.com ROLE=app production deploy
Run Code Online (Sandbox Code Playgroud)
如果我只是想部署到app2.example.com.
谢谢!
[更新]我通过执行以下方法尝试了wulong建议的解决方案:
cap HOSTS=app2.server.hostname ROLE=app qa deploy
Run Code Online (Sandbox Code Playgroud)
但是除了app任务之外,capistrano似乎还在尝试为该服务器上的其他角色执行任务.也许我需要更新我的帽子版本(我正在运行v2.2.0)?
对于一个简单的类似结构的类:
class Tiger
attr_accessor :name, :num_stripes
end
Run Code Online (Sandbox Code Playgroud)
什么是正确实现平等,以确保以正确的方式==,===,eql?,等工作,使在很好的集合类游戏的情况下,哈希等.
编辑
另外,当你想根据未暴露在类之外的状态进行比较时,实现相等性的好方法是什么?例如:
class Lady
attr_accessor :name
def initialize(age)
@age = age
end
end
Run Code Online (Sandbox Code Playgroud)
在这里,我希望我的平等方法考虑到@age,但是Lady并没有将她的年龄暴露给客户.在这种情况下我是否必须使用instance_variable_get?
在将新版本的应用程序部署到Kubernetes集群之前,我想要运行数据库迁移.我希望这些迁移作为Continuous Delivery管道的一部分自动运行.迁移将封装为容器映像.实现这一目标的最佳机制是什么?
解决方案的要求:
我曾假设Kubernetes中的Jobs功能会让这很容易,但似乎有一些挑战:
restartPolicy的never.使用"裸舱"会更好吗?如果是这样,那该怎么办?
我希望能够编写一个可以作为命令行应用程序运行的.swf文件.换句话说,我将能够创建可以与stdin和stdout交互的actionscript类,然后可以直接在命令行中执行.swf.
我怀疑这不可能.任何人都可以证实吗?
编辑: 一些答案指出,使用Flash进行命令行工作可能不是最好的选择.我在大多数情况下都完全同意.我之所以要问这个是因为我想做一些AS3代码生成,并且在运行时内反映AS3类比解析代码或走Asdoc产生的中间XML更容易.我现在正在Ruby中使用XML方法,但是希望有一个更清洁的解决方案!
我希望能够在vim中运行一个打开git diff的命令,并为diff set中的每个文件添加一个选项卡.
所以,例如,如果我在工作树中更改了文件foo.txt和bar.txt,我运行命令,我会看到vim打开两个选项卡.第一个选项卡将包含我的工作树中的foo.txt和存储库中的foo.txt之间的并排差异,第二个选项卡将包含bar.txt的并排差异.
有人有任何想法吗?
假设我想要一个像这样调用的方法:
tiger = create_tiger( :num_stripes => 12, :max_speed => 43.2 )
tiger.num_stripes # will be 12
Run Code Online (Sandbox Code Playgroud)
其中一些选项具有默认值:
tiger = create_tiger( :max_speed => 43.2 )
tiger.num_stripes # will have some default value
Run Code Online (Sandbox Code Playgroud)
在方法实现中实现默认行为的一种很好的惯用ruby方法是什么?
我正在寻找一个ruby gem(或rails插件),它以与ActiveRecord抽象SQL细节相同的方式抽象memcached的细节.我不是在寻找有助于在memcached中缓存ActiveRecord模型的东西.我敢肯定有大约4215颗宝石可以帮助解决这个问题.
理想情况下,我希望能够做到这样的事情:
class Apple < MemcachedModel
# whatever else here
end
Run Code Online (Sandbox Code Playgroud)
然后能够做的事情:
my_apple = Apple.find('some memcached key')
Run Code Online (Sandbox Code Playgroud)
这将在memcached中查找此类的JSON表示并对其进行反序列化.我也许可以做以下事情:
my_apple.color = "red"
# persist changes back to memcached
my_apple.save
# load any changes from memcached into local model
my_apple.update
Run Code Online (Sandbox Code Playgroud)
似乎有人必须抓住这个痒,并沿着这些线创建一些东西,但每当我谷歌这样的宝石时,我只是不断出现有助于使用memcached缓存AR模型的东西.
假设我有一个像这样的单例类:
class Settings
include Singleton
def timeout
# lazy-load timeout from config file, or whatever
end
end
Run Code Online (Sandbox Code Playgroud)
现在,如果我想知道使用什么超时,我需要写一些类似的东西:
Settings.instance.timeout
Run Code Online (Sandbox Code Playgroud)
但我宁愿缩短那个
Settings.timeout
Run Code Online (Sandbox Code Playgroud)
实现这项工作的一个显而易见的方法是将Settings的实现修改为:
class Settings
include Singleton
def self.timeout
instance.timeout
end
def timeout
# lazy-load timeout from config file, or whatever
end
end
Run Code Online (Sandbox Code Playgroud)
这是有效的,但为每个实例方法手动编写一个类方法会相当繁琐.这是红宝石,必须有一个聪明聪明的动态方式来做到这一点.
我看过这个视频 http://www.markj.net/iphone-memory-debug-nszombie/
这家伙在仪器内部显示了一个名为Enable NSZombie Detection on Allocations的选项,但是我的仪器没有显示这个选项.这个家伙的视频是使用一年前版本的乐器完成的,我正在使用Xcode 3.2.5.你们知道这个选项现在在哪里吗?如何为iPhone应用程序启用它?
谢谢
ruby ×4
git ×2
actionscript ×1
apache-flex ×1
capistrano ×1
dcommit ×1
deployment ×1
diff ×1
docker ×1
dynamic ×1
equality ×1
flash ×1
git-svn ×1
hash ×1
instruments ×1
ios ×1
kubernetes ×1
memcached ×1
singleton ×1
vim ×1
xcode ×1