小编sa1*_*125的帖子

属性更改时更新Ruby类属性哈希

我正在尝试编写一个类似于Rails AactiveRecord模型的Ruby类,其处理方式是:

class Person
  attr_accessor :name, :age

  # init with Person.new(:name => 'John', :age => 30)
  def initialize(attributes={})
    attributes.each { |key, val| send("#{key}=", val) if respond_to?("#{key}=") }
    @attributes = attributes
  end

  # read attributes
  def attributes
    @attributes
  end

  # update attributes
  def attributes=(attributes)
    attributes.each do |key, val| 
      if respond_to?("#{key}=")
        send("#{key}=", val) 
        @attributes[key] = name
      end
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我的意思是,当我初始化类时,使用相关属性更新"属性"哈希:

>>> p = Person.new(:name => 'John', :age => 30)
>>> p.attributes
 => {:age=>30, :name=>"John"}
>>> p.attributes = { :name => 'charles' …
Run Code Online (Sandbox Code Playgroud)

ruby abstract-class metaprogramming class-attributes

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

HTML/CSS - 在图像上创建alpha蒙版

我想在我正在构建的网站中创建一个效果,其中图像被叠加层遮盖.叠加层应该创建一个"淡出"效果 - 我实际上并不想要任何动画效果,但叠加层应该使图像看起来好像它正在渐渐变为边缘处的背景色.

像这样:http://imgur.com/fqtc9.png

我喜欢用CSS/HTML/JS做这个 - 而不是图像.有关从哪里开始的任何想法?谢谢.

html javascript css fade masking

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

Ruby Regex用于舍入尾随零

我正在寻找一个正则表达式从十进制数中删除尾随零.它应该返回以下结果:

0.0002300 -> 0.00023
10.002300 -> 10.0023
100.0     -> 100
1000      -> 1000
0.0       -> 0
0         -> 0
Run Code Online (Sandbox Code Playgroud)

基本上,如果小数部分为0,它应该删除尾随零和尾随小数点.当它是值时,它也应该返回0.有什么想法吗?谢谢.

ruby regex decimal-point fractions

5
推荐指数
2
解决办法
3219
查看次数

C++运算符的多重定义>>

我正在使用@Martin提出的解决方案来使用C++进行csv解析,因为我正在尝试避免使用像boost这样的库来解决我当前的项目.我已将他的实现放在"csv.h"标题中,并尝试将其包含在其他一些文件中.我一直收到以下错误

multiple definition of operator>>(std::basic_istream<char, std::char_traits<char> >&, CSVRow&)

当我尝试构建项目时 - 我假设发生这种情况是因为重新定义了operator>>与原始项目的冲突.我怎么能让这两个玩得好听?谢谢.

c++ csv parsing include dependency-management

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

Rails 2.3和rspec-rails兼容性

哪个版本的rspec-railsgem仍与Rails 2.3分支兼容(特别是2.3.14)?我试过了2.1.0,但那个也是Rails> = 3.0.我应该注意的任何其他依赖项或版本限制?

谢谢.

compatibility rspec-rails ruby-on-rails-2

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

如何使用ruby mysql2执行事务

我开始使用mysql2宝石了.我试图找出一些基本的东西 - 其中之一是如何显式执行事务(对于批处理操作,如多个INSERT/UPDATE查询).

在旧的ruby-mysql,这是我的方法:

client  = Mysql.real_connect(...)
inserts = [
  "INSERT INTO ...",
  "UPDATE .. WHERE id=..",
  # etc
]

client.autocommit(false)
inserts.each do |ins|  
  begin
    client.query(ins)
  rescue
    # handle errors or abort entirely
  end
end
client.commit
Run Code Online (Sandbox Code Playgroud)

我在文档中找不到多少 - 如何才能完成同样的工作mysql2

ruby transactions batch-processing mysql2

5
推荐指数
2
解决办法
6269
查看次数

rails - 实现一个简单的锁,以防止用户同时编辑相同的数据

我有一个应用程序,我需要阻止用户在由其他用户编辑数据时编辑数据.我正在考虑最好的方法,并想要提出想法.到目前为止,我已经创建了一个设置模型,可以在键/值对中存储db上的应用程序范围配置.所以,对于锁,我有一个名为LOCKED_TABLE_UID的设置实例,它存储了编辑表的用户的user_id,如果表是空的,则为null(nil).

>> lock = Setting.find_by_key('LOCKED_TABLE_UID')
Run Code Online (Sandbox Code Playgroud)

然后,我在我的应用程序控制器中实现了2个方法来获取和释放锁:

# current_user returns the user currently logged in
def acquire_lock
  lock = Setting.find_by_key("LOCKED_TABLE_UID")
  if lock.value
    # if lock taken, see if it's the current_user or someone else
    if lock.value.to_i == current_user.id.to_i
      return true
    else
      return false
    end
  else
    # lock is free, assign it to this user
    lock.value = current_user.id
    return true if lock.save
  end
end

def release_lock
  lock = Setting.find_by_key("LOCKED_TABLE_UID")
  if lock.value
    # the lock belongs to current_user, so he can release it …
Run Code Online (Sandbox Code Playgroud)

concurrency mutex locking ruby-on-rails

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

试图了解SCM历史/修订/恢复算法,尤其是GIT

我正在尝试挖掘版本控制算法如何对数据进行操作的资源,我对git机制的运行方式特别感兴趣.我意识到git做了很多不同的事情,但特别是我对如何保存和恢复历史感兴趣.我很感激任何人都可以指向的链接或文章参考.谢谢 :)

git algorithm version-control

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

RVM - 有简单的离线安装方法吗?

我想在离线机器上安装RVM - 我可以手动传输所需的任何文件,但是不可能有互联网连接.在尝试下载ruby或其他依赖项(zlib等)的源文件时,不在线会导致RVM崩溃.

我正在寻找一种方法将RVM指向ruby源文件夹的位置,例如rvm install 1.8.7 --source=/path/to/ruby-1.8.7-p330/,或者任何其他依赖项.我已经搜索了rvm文档,但是要么错过了某些东西,要么就是不存在.关于如何完成此安装的任何其他建议也是受欢迎的.谢谢.

installation offline rvm

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

如何使用starttls从Go中的交换服务器连接和发送电子邮件?

我正在将一些现有的Python代码移植到Go。一位负责通过Exchange服务器(SMTP + STARTTLS)发送电子邮件。现有的(简化的)代码如下所示:

import smtplib
client = smtplib.SMTP("exchangeserver.com")
client.starttls()
client.login('user', 'password')
client.sendmail('user@exchangeserver.com', 
    ['otheruser1@exchangeserver.com', 'otheruser2@exchangeserver.com'], 
    '..message..')
Run Code Online (Sandbox Code Playgroud)

我想对Go执行相同的操作,感谢您的帮助-谢谢。

email exchange-server go starttls

3
推荐指数
2
解决办法
3599
查看次数