Simplest Ruby BeanUtils:)

[code]
module BeanUtils
RESERVE_INSTANCE_KEY = %w{id attributes_cache new_record}
#copy properties

def cp(dest)
dest = dest.new if dest.is_a?(Class)

copy = lambda{|h| h.each{|key, value| dest.send("#{key}=", value) if dest.respond_to?("#{key}=") and !value.blank?}}

returning dest do
self.instance_values.each do |key, value|
unless RESERVE_INSTANCE_KEY.include? key

if value.is_a? Hash
#copy attributes
copy.call(value)
else
#copy other instance values
copy.call({key=>value})
end
end
end
end
end
end
[/code]


Usage:

[code]
topic = Topic.new params[:topic]
post = topic.cp(Post)
[/code]

Any other useful methods?

http://commons.apache.org/beanutils/apidocs/index.html

pls do it yourself:)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值