小编ast*_*nic的帖子

从模块中获取类名

如何从模块中获取包含模块的类的类名?

module ActMethods
  def some_method(*attr_names)
    cls = self.class # this doesn't work 
  end
end
Run Code Online (Sandbox Code Playgroud)

我怎么能进入cls变量加载这个模块的类的名称?

ruby inheritance

17
推荐指数
2
解决办法
9406
查看次数

慢铁栈

我跑的时候

rails服务器

要么

耙-T

或者其他一些rails脚本,需要花费很多时间,大约1分钟.确定这么慢的最佳方法是什么?如何提高速度?

Rails v是3.0.3运行ruby 1.9.2(RVM) - Linux

performance rake ruby-on-rails

15
推荐指数
2
解决办法
3725
查看次数

我应该如何在后台运行Golang进程?

这个问题并不是严格的编程相关,但对程序员来说肯定很重要.

我写了一个简单的smtp服务器,当我从控制台运行它一切都很好,除了它阻止命令行.

我知道我可以通过它来运行它

nohup ... &
Run Code Online (Sandbox Code Playgroud)

或通过screen/tmux等

但问题是,我应该如何实现我在后台运行的程序,系统管理员很乐意设置它并管理流程?

有些人比我更有经验,在golang-nuts上写道,他们不使用fork等,并使用monit等形式的"包装".

目标平台是基于Debian的,盒子上的所有其他东西都是基于init.d的.

该主题的任何好资源或编写良好的示例项目的来源?

linux design-patterns process go

15
推荐指数
4
解决办法
2万
查看次数

C位操作/从一个字节到另一个字节复制一位

我知道如何设置一个位,清除一点,切换一下,并检查是否设置了一个位.

但是,我如何将bit,例如byte_1的nr 7复制到byte_2中的bit nr 7?

没有if语句(没有检查位的值)是可能的吗?

#include <stdio.h>
#include <stdint.h>
int main(){
  int byte_1 = 0b00001111;
  int byte_2 = 0b01010101;

  byte_2 = // what's next ?

  return 0;
}
Run Code Online (Sandbox Code Playgroud)

c bit-manipulation

13
推荐指数
2
解决办法
7845
查看次数

使用RVM在vim中重新生成ctags

我的.vimrc中有以下代码:

map <Leader>rt :!ctags --extra=+f -R *<CR><CR>
Run Code Online (Sandbox Code Playgroud)

这会为我当前的目录生成ctags.

我正在使用RVM,我正在开发不同的项目,使用不同的ruby版本(通过RVM gemsets.

每个项目我有一个不同的$ GEM_PATH,我也希望在这个路径中为gems生成ctags.

如果设置$ GEM_PATH变量,并且还要处理这些路径,上面的行应如何测试?

或者更好的是如何检查我是否有.rvmrc文件,并根据此文件的内容生成ctags?

ruby vim rubygems ruby-on-rails ctags

12
推荐指数
3
解决办法
4182
查看次数

懒加载google maps api v3 jQuery回调

我懒得加载谷歌地图api v3 javascript

该文档说明了如何在脚本加载时将作为函数名称的回调参数作为回调参数执行.

 $(document).ready(function(){
   var s = document.createElement("script");
   s.type = "text/javascript";
   s.src  = "http://maps.google.com/maps/api/js?v=3&sensor=true&callback=gmap_draw";
   $("head").append(s);
 });
Run Code Online (Sandbox Code Playgroud)

所以我必须定义gmap_draw()函数.

当我将此函数包含在domready块中时,它是不可见的.

这个问题的任何变通方法?(除了将功能放在domready块之外)

jquery google-maps lazy-loading callback

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

黄瓜测试重定向

找到了一些建议:http://openmonkey.com/articles/2009/03/cucumber-steps-for-testing-page-urls-and-redirects

我已经将上述方法添加到我的Web步骤定义中,编写了我的功能,运行它并得到有关nil对象的错误.经过一番调查,我注意到,我没有回应并请求对象,它们是零

来自web_steps.rb:

Then /^I should be on the (.+?) page$/ do |page_name|
  request.request_uri.should == send("#{page_name.downcase.gsub(' ','_')}_path")
  response.should be_success
end

Then /^I should be redirected to the (.+?) page$/ do |page_name|
  request.headers['HTTP_REFERER'].should_not be_nil
  request.headers['HTTP_REFERER'].should_not == request.request_uri
  Then "I should be on the #{page_name} page"
end
Run Code Online (Sandbox Code Playgroud)

请求和响应对象是零,为什么?

testing ruby-on-rails cucumber

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

rails3 default_scope,以及迁移中的默认列值

class CreateCrews < ActiveRecord::Migration
  def self.up
    create_table :crews do |t|
      t.string :title
      t.text :description
      t.boolean :adult
      t.boolean :private
      t.integer :gender_id
      t.boolean :approved, :default => false
      t.timestamps
    end
  end
  def self.down
    drop_table :crews
  end
end


class Crew < ActiveRecord::Base
  has_many :users, :through => :crew_users
  belongs_to :user

  default_scope where(:approved => true)
end
Run Code Online (Sandbox Code Playgroud)

当我进入控制台并创建新记录时,"已批准"属性设置为true,为什么?

如何将其自动设置为默认值(false),如我的迁移文件中所示?

wojciech@vostro:~/work/ze$ rails console Loading development environment (Rails 3.0.0) ruby-1.9.2-p0 > c = Crew.new => #<Crew id: nil, title: nil, description: nil, adult: nil, private: nil, gender_id: nil, approved: …

migration ruby-on-rails default-scope ruby-on-rails-3

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

从图像中获取主色并丢弃背景

从图像中获取主色的最佳(结果,而不是性能)算法是什么.该算法应该丢弃图像的背景.

我知道我可以构建一个颜色数组以及它们在图像中出现的数量,但是我需要一种方法来确定背景是什么,前景是什么,并且在阅读主色时只记住第二个(前景) .

问题非常困难,特别是对于渐变背景或带图案的背景(不是普通的)

algorithm image colors

9
推荐指数
4
解决办法
6542
查看次数

从stdin读取行直到某个字符

我正在学习Go.

我的程序应该从stdin读取数据,直到我输入一个句点的行.

package main

import (

  "os"
  "fmt"
  "bufio"

)

func main(){

  in    := bufio.NewReader(os.Stdin)
  input := ""

  for input != "." {
    input, err := in.ReadString('\n')
    if err != nil {
      panic(err)
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我应该如何修改for循环,以便在输入单个点时停止程序?

我尝试使用for语句实现while循环,我的方法有问题,条件是错误的,还是ReadString搞乱了我的数据?

go

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