我正在尝试使用rspec来测试我在ApplicationController中的过滤器.
在spec/controllers/application_controller_spec.rb我有:
require 'spec_helper'
describe ApplicationController do
it 'removes the flash after xhr requests' do
controller.stub!(:ajaxaction).and_return(flash[:notice]='FLASHNOTICE')
controller.stub!(:regularaction).and_return()
xhr :get, :ajaxaction
flash[:notice].should == 'FLASHNOTICE'
get :regularaction
flash[:notice].should be_nil
end
end
Run Code Online (Sandbox Code Playgroud)
我的目的是测试模拟设置闪存的ajax动作,然后在下一个请求中验证闪存已被清除.
我收到路由错误:
Failure/Error: xhr :get, :ajaxaction
ActionController::RoutingError:
No route matches {:controller=>"application", :action=>"ajaxaction"}
Run Code Online (Sandbox Code Playgroud)
但是,我希望我试图测试这个有多少错误.
作为参考,过滤器被调用ApplicationController为:
after_filter :no_xhr_flashes
def no_xhr_flashes
flash.discard if request.xhr?
end
Run Code Online (Sandbox Code Playgroud)
如何创建模拟方法ApplicationController来测试应用程序范围的过滤器?
我正在编写一个自定义的Xcode模板,我想改变<<date>>格式化的方式.
例如:
// Created by «FULLUSERNAME» on «DATE».
// Copyright «YEAR» «ORGANIZATIONNAME». All rights reserved.
Run Code Online (Sandbox Code Playgroud)
如果今天创建的文件将填写为:
// Created by SooDesuNe on 2/24/2010.
// Copyright 2010 MyOrganization. All rights reserved.
Run Code Online (Sandbox Code Playgroud)
以任何"所有数字"格式格式化的日期会引起很多混淆,因为ISO和JIS编写相同日期的方式是24/2/2010.这个月的第24天很清楚,但在本月的前12天不太清楚.
我想要x代码填充<<date>>像:
// Created by SooDesuNe on 24-Feb-2010.
// Copyright 2010 MyOrganization. All rights reserved.
Run Code Online (Sandbox Code Playgroud)
因为这种方式没有歧义.有谁知道如何更改日期格式?
什么相当于<%= f.hidden_field :_destroy %>nullify而不是毁灭?(即我只是将它从关联中删除,但我不想破坏它).
一个示例情况是:
class Foo < ActiveRecord::Base
has_many :bar, :dependent=>:nullify, :autosave=>true
accepts_nested_attributes_for :bar, :reject_if => proc { |attributes| attributes.all? {|k,v| v.blank?} }
class Bar < ActiveRecord::Base
belongs_to :foo
Run Code Online (Sandbox Code Playgroud)
在Foo中edit.html.erb:
<%= f.fields_for :bar do |builder| %>
<%= builder.some_rails_helper %>
<%= builder.hidden_field :_remove #<-- set value to 1 to destroy, but how to unassociate?%>
<% end %>
Run Code Online (Sandbox Code Playgroud)
对解决方案的一个小修改
def remove
#!self.foo_id.nil? should be:
false #this way newly created objects aren't destroyed, and neither are existing ones. …Run Code Online (Sandbox Code Playgroud) 我的一个ruby类从一个相当大的本地XML文件中提取数据,该文件只会随着新部署而改变.
在这种情况下,最佳做法是将文档保持为常量,例如:
class Product
XML_DOC = Nokogiri::XML(open("#{Rails.root}/myxmlfile.xml"))
end
Run Code Online (Sandbox Code Playgroud)
或者通过类方法访问文档,例如:
class Product
self.xml_doc
Nokogiri::XML(open("#{Rails.root}/myxmlfile.xml"))
end
end
Run Code Online (Sandbox Code Playgroud)
我认为类方法可能是要走的路,因为在测试中模拟会更容易,但是什么被认为是保持像这样的内存文件的最佳实践?
我已经设置了一个简单的TCP文件传输.一切似乎都可以正常工作,除了收到的文件大小偶尔比发送的文件小.似乎没有任何模式的接收文件的大小.
(在下面的代码中,请注意典型的客户端/服务器卷是相反的)我的客户端代码如下:
#define kMaxBacklog (5)
// fill out the sockadd_in for the server
struct sockaddr_in servAdddress;
//memcpy() to fill in the sockaddr
//setup the socket
int sockd, returnStatus;
sockd = socket(AF_INET, SOCK_STREAM, 0);
if (sockd == -1)
NSLog(@"could not create client socket");
else
NSLog(@"created client socket");
returnStatus = connect(sockd, (struct sockaddr*)&servAdddress, sizeof(servAdddress));
if (returnStatus == -1)
NSLog(@"could not connect to server - errno:%i", errno);
else
NSLog(@"connected to server");
NSData *dataWithHeader = [self getDataToSend];
returnStatus = send(sockd, [dataWithHeader bytes], [dataWithHeader length], …Run Code Online (Sandbox Code Playgroud) 我正在尝试学习一些Python和Tkinter.下面的示例代码旨在在屏幕上放置两个窗口,一些按钮和一个带有图像的Canvas,并在其上绘制一些线条.
窗口和按钮看起来很好,但是我没有看到画布图像或画布线.我很感激帮助找出制作画布的必要条件.
from Tkinter import *
import Image, ImageTk
class App:
def __init__(self, master):
def scrollWheelClicked(event):
print "Wheel wheeled"
frame = Frame(master)
frame.pack()
self.button = Button(frame, text = "QUIT", fg="red", command=frame.quit)
self.button.pack(side=LEFT)
self.hi_there = Button(frame, text="Hello", command=self.say_hi)
self.hi_there.pack(side=LEFT)
top = Toplevel()
canvas = Canvas(master=top, width=600, height=600)
image = Image.open("c:\lena.jpg")
photo = ImageTk.PhotoImage(image)
item = canvas.create_image(0, 0, image=photo)
canvas.create_line(0, 0, 200, 100)
canvas.create_line(0, 100, 200, 0, fill="red", dash=(4, 4))
canvas.create_rectangle(50, 25, 150, 75, fill="blue")
canvas.pack
testBtn = Button(top, text = "test …Run Code Online (Sandbox Code Playgroud) 我读到的关于objective-c内存管理的所有内容都让人觉得难以置信.用大家的意思来说:"释放你分配,保留或复制的任何内容".但我认为还有一些更具体的案例并不那么明确.以下是一些示例情况.每个的正确程序是什么:
情况#1:
Foo *foo = [[foo alloc] init];
Foo *fooToo = [[[foo alloc] init] autorelease];
foo = fooToo;
Run Code Online (Sandbox Code Playgroud)
foo在被分配给fooToo之前是否需要被释放?
情况#2 当我做以下事情时,我似乎遇到了很多崩溃:(.为了方便而将.h和.m混合在一起)
Foo *foo;
@property (nonatomic, retain) Foo *foo;
@synthesize foo;
-(id)init{
self = [super init];
}
-(void)dealloc{
[super dealloc];
[foo release];
}
Run Code Online (Sandbox Code Playgroud)
我经常被告知"总是在dealloc中释放你设置的保留属性".但如果像我所示的那样完成,这将会崩溃.
情况#3 类似的情况也将崩溃:( .h和.m为了方便而混合在一起)
Foo *foo;
@property (nonatomic, retain) Foo *foo;
@synthesize foo;
-(id)init{
self = [super init];
self.foo = nil;
}
-(void)dealloc{
[super dealloc];
[foo release];
}
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当我的代码归结为dealloc时,foo不是== nil.
情况#4 最后,只是一个问题,人们在决定之间使用什么样的一般思维过程
self.foo = bar;
Run Code Online (Sandbox Code Playgroud)
和
foo = …Run Code Online (Sandbox Code Playgroud) 我正在使用一些颜色,它们似乎根本不正确.附加的图像显示了预期的结果,实际的模拟器和设备上的结果.正如你所看到的那样,Gimp认为RGB(0,16,60)是什么以及我得到的输出是什么[UIColor colorWithRed:0.0 green:16.0 blue:60.0 alpha:1.0];
由于我的alpha是1.0,我不相信我的背景有任何混色.
欢迎任何关于这里发生的事情的建议.alt text http://img200.imageshack.us/img200/3710/picture4uu.png
iPhone结果:
alt text http://img33.imageshack.us/img33/9264/picture3xb.png
我正在学习如何使用PHP的简单XML解析XML.我的代码是:
<?php
$xmlSource = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?> <Document xmlns=\"http://www.apple.com/itms/\" artistId=\"329313804\" browsePath=\"/36/6407\" genreId=\"6507\"> <iTunes> myApp </iTunes> </Document>";
$xml = new SimpleXMLElement($xmlSource);
$results = $xml->xpath("/Document/iTunes");
foreach ($results as $result){
echo $result.PHP_EOL;
}
print_r($result);
?>
Run Code Online (Sandbox Code Playgroud)
当它运行时,它返回一个空白屏幕,没有错误.如果我从Document标签中删除所有属性,它将返回:
myApp SimpleXMLElement Object ( [0] => myApp )
Run Code Online (Sandbox Code Playgroud)
这是预期的结果.
我究竟做错了什么?请注意,我无法控制XML源,因为它来自Apple.
我一直在寻找一个好的宝石/插件,以允许直观的用户输入日期(即从弹出日历中选择日期).
calendardateselect看起来非常好,但它不再处于活动开发状态,不再正确安装.
我发现了其他几个,但它们都很陈旧.什么是Stack Overflow用户在rails中使用日期输入?
每个@bjg和@Fortuity jQuery UI是我决定去的方向.启动和运行有点复杂,所以我为其他人写了一个简短的操作方法.
可以在"编辑"屏幕上使用rails格式助手吗?格式助手(number_to_currency,number_to_percent)非常适合索引/显示,但我没有看到如何在编辑期间应用它们.我有一个自定义heler格式化日期:
def my_date_helper(datetime)
datetime.nil? ? "" : datetime.strf('%d-%b-%Y')
end
Run Code Online (Sandbox Code Playgroud)
例如,如果我有一个starts_at属性,即用户使用jQuery日期选择器进行交互,则<%= f.text_field :starts_at %>rails 中edit.html.erb中的值将被格式化为:
2011/12/19 00:00:00
我希望向用户呈现一致的格式,因此我想应用我在show/index中使用的相同格式助手,以便编辑文本字段显示如下格式:
19-Jan-2011
app-store ×1
calendar ×1
cocoa-touch ×1
iphone ×1
itunes ×1
networking ×1
objective-c ×1
php ×1
python ×1
rspec ×1
ruby ×1
simplexml ×1
sockets ×1
tcp ×1
templates ×1
tkinter ×1
uicolor ×1
unit-testing ×1
unix ×1
xcode ×1