小编Den*_*ssy的帖子

如何更改默认的"www.example.com"域以便在rails中进行测试?

我有一个rails应用程序,它的行为取决于它访问的域名(例如www.myapp.com将以不同方式调用user.myapp.com).在生产中使用这一切都很好但我的测试代码总是看到主机名"www.example.com".

是否有一种干净的方法让测试指定它假装访问的主机名?

rspec ruby-on-rails

54
推荐指数
6
解决办法
3万
查看次数

如何以编程方式从OSX上的任何文档生成PDF?

我正在为OSX开发一个项目,用户可以从中选择我需要生成PDF文档的文档集合(来自任何应用程序).标准的"Macintosh打印"对话框有一个PDF按钮,其中包含许多与PDF相关的命令,包括"另存为PDF ...".但是,我需要生成PDF文件而无需用户交互.理想情况下,我希望这适用于任何类型的文档.

这是我到目前为止探讨的选项:

  • Automator动作.有一个用于Automator的PDF库,但它提供了处理PDF文件的操作,而不是生成它们.有一个Finder操作可以打印任何文件,但只能打印到真正的打印机.
  • AppleScript的.某些应用程序能够生成PDF文件(例如,如果您将'save doc in"test.pdf"'发送到Pages,它将生成PDF(但这仅适用于Pages - 我需要支持任何类型的文档) .
  • 定制打印机.我可以创建一个虚拟打印机驱动程序,然后使用自动机操作,但我不喜欢在打印列表中将用户与额外的打印机混淆的想法.

我希望有一些方法可以与活动应用程序进行交互,就像用户执行以下步骤一样:

  1. 做Cmd-P(打开打印对话框)
  2. 单击"PDF"按钮
  3. 选择"另存为PDF ..."(菜单中的第二项)
  4. 在保存对话框中键入文件名
  5. 点击"保存"

如果这是最好的方法(是吗?)那么真正的问题是:如何将UI事件发送到外部应用程序(击键,鼠标事件,菜单选择)?

更新:只是澄清一点:我需要转换为PDF的文档是由其他应用程序创建的文档.例如,用户可能会选择Word文档或Numbers电子表格或OmniGraffle绘图或网页.常见的分母是这些文档中的每一个都有一个相关的应用程序,该应用程序知道如何打印它(OSX知道如何将打印输出呈现为PDF文件).

因此,Cocoa Dev Central的样本没有帮助,因为它们是关于从我的应用程序生成PDF .

pdf macos applescript objective-c automator

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

在Carrierwave中使用不同的S3存储桶进行生产和开发

我开始玩Carrierwave,作为Paperclip的替代品.

我可以从文档中看到要使用S3我应该在初始化程序中配置Fog:

CarrierWave.configure do |config|
  config.fog_credentials = {
    :provider               => 'AWS',       # required
    :aws_access_key_id      => 'xxx',       # required
    :aws_secret_access_key  => 'yyy',       # required
    :region                 => 'eu-west-1'  # optional, defaults to 'us-east-1'
  }

end
Run Code Online (Sandbox Code Playgroud)

但是,如何为不同的环境设置不同的存储桶?使用回形针,我将在yml文件中为开发/生产/等指定不同的凭据和/或存储桶.使用carrierwave的最佳方法是什么?

ruby-on-rails amazon-s3 paperclip ruby-on-rails-3 carrierwave

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

如何在Xcode 5中禁用属性的属性自动合成?

我编写了一个库,根据@dynamic您在'preferences'类中声明的属性自动生成NSUserDefaults访问器(请参阅PAPreferences).您在.m文件中写入属性,如下所示:

@property (nonatomic, assign) BOOL hasSeenIntro;
Run Code Online (Sandbox Code Playgroud)

然后将其添加到.h文件中:

@dynamic hasSeenIntro;
Run Code Online (Sandbox Code Playgroud)

这工作正常,但如果用户意外忘记放入@dynamic行,则编译器将自动生成等效@synthesize行.没有警告,但当然我的代码不会被调用.

我想知道是否有一种方法可以为这个类禁用自动属性合成.

更新:

感谢Nikolai的回答,我记得有可能将LLVM警告提升为错误,并将该声明包装起来以实现我所寻找的效果(如果用户忘记指定@dynamic行,则会引发错误):

// Ensure we get an error if we forget to add @dynamic for each property
#pragma clang diagnostic push
#pragma clang diagnostic error "-Wobjc-missing-property-synthesis"

@interface Preferences : PAPreferences

@property (nonatomic, assign) BOOL hasSeenIntro;
@property (nonatomic, assign) NSInteger pressCount;

@end

#pragma clang diagnostic pop
Run Code Online (Sandbox Code Playgroud)

macos xcode objective-c llvm ios

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

如何确定AddressBook FrameWork中的地址类型(iOS 4.2)

我有一个大问题......我打算编写一个处理用户地址簿及其地址的应用程序.一切都很好 - 除了我无法确定addesse的类型是"工作","家"还是"其他"的事实.

有人知道如何获得家庭,工作和其他标签吗?

提前致谢

鲍里斯

这是我目前正在使用的功能:

    + (void)testing {
 //Get the addressbook
 ABAddressBookRef _addressBookRef = ABAddressBookCreate ();

 //Fetch all contacts
 NSArray* allPeople     = (NSArray *)ABAddressBookCopyArrayOfAllPeople(_addressBookRef);

 //Walk the contacts
 for (id record in allPeople) {
  //Get the contact´s id
  NSInteger recordId   = ABRecordGetRecordID((ABRecordRef)record);

  //Get the contact´s name and company
  NSString* recordName  = (NSString *)ABRecordCopyCompositeName((ABRecordRef)record);
  NSString* recordCompany  = (NSString *)ABRecordCopyValue((ABRecordRef)record, kABPersonOrganizationProperty);

  //Get the contact´s addresses
  CFTypeRef adressesReference = ABRecordCopyValue((ABRecordRef)record, kABPersonAddressProperty);
  NSArray *adressesArray  = (NSArray *)ABMultiValueCopyArrayOfAllValues(adressesReference);
  CFRelease(adressesReference);

  NSLog(@"ID:    %d", recordId);
  NSLog(@"Name:  %@", …
Run Code Online (Sandbox Code Playgroud)

iphone objective-c abaddressbook

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

如何在iPhone文本字段中设置字体大小?

我在视图中有一个UITextField(在iPhone上),但输入文本看起来很小.我没有在Interface Builder中看到设置大小的选项.

有没有办法以声明方式设置它还是我必须求助于代码?

cocoa-touch

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