回调方法应用 及 引入到模块方法应用

1: http://ruby-china.org/topics/413

module YourPlugin
  module Mixin
def xxx_attr(attr)
      attr = attr.to_s
      self.class_eval(%Q{
def #{attr}
  #...
end

def #{attr}=(value)
   #...
end
        }
      )
    end
  end
end

class Post
  include YourPlugin::Mixin
  xxx_attr :tag_list
end



2. http://quake.iteye.com/blog/448235

  1. #plugins/your_plugin_name/lib/enum_attr.rb
  2. moduleEnumAttr
  3. moduleMixin
  4. defenum_attr(attr,enums)
  5. attr=attr.to_s
  6. self.class_eval(%Q{
  7. ENUMS_#{attr.upcase}=enums
  8. validates_inclusion_ofattr,:in=>enums.map{|e|e[1]},:allow_nil=>true
  9. def#{attr}_name
  10. ENUMS_#{attr.upcase}.find{|option|option[1]==#{attr}}[0]unless#{attr}.nil?
  11. end
  12. })
  13. end
  14. end
  15. end
  16. #plugins/your_plugin_name/init.rb
  17. require'enum_attr'
  18. Object.send:include,EnumAttr::Mixin


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值