首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可以修改proc中的代码吗?

可以修改proc中的代码吗?
EN

Stack Overflow用户
提问于 2015-07-29 08:32:48
回答 1查看 37关注 0票数 0

to_source由sourcify gem提供。

我想知道如何创建这些方法?

代码语言:javascript
复制
hello = Proc.new{ 2.times{ puts 'hi' } }
hello.to_source #=> 2.times{ puts 'hi' }
hello.call #=> 'hi' 'hi'
hello.change_hi_to_bye!
hello.to_source #=> 2.times{ puts 'bye' }
hello.call #=> 'bye' 'bye'
hello.get_rid_of_block!
hello.to_source #=> 2.times
hello.call #=>

我会对get_rid_of_block!方法感兴趣。一些通用的东西,可以从一个proc中的所有方法中剥离所有块。

我对RubyVM::InstructionSequence.of(my_proc).to_a进行了简单的研究,以期改变构建顺序(我以为会有一个很好的小:attach_block字段可以删除,但不幸的是我看不到它。

EN

回答 1

Stack Overflow用户

发布于 2015-07-29 23:16:13

您可以使用method_missing(http://ruby-doc.org/core-2.1.0/BasicObject.html#method-i-method_missing)提供这些或类似的方法。只需将方法名命名为string,用“_”将其拆分,然后生成一些您需要的东西。它是某种构建器的模式实现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31689373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档