metaprogramming

    0热度

    4回答

    我有一个作家类: class Author < ActiveRecord::Base def to_s name end end 定义to_s允许我做puts Author.first,但不puts Author.first.rjust(10): NoMethodError: undefined method `rjust' for #<Author:0x21e

    1热度

    1回答

    我有一个智能指针类型,并且想要构造一个对象,该对象需要一个该类型的指针和一个计数(在运行时动态计算),并从堆栈中分配足够的内存来保存该对象的许多实例。指着。我似乎无法找到合适的语法来实现这一目标;可能吗? 鉴于这样的事情 template<typename T> class PointerWrapper { public: PointerWrapper(T const * _poi

    9热度

    6回答

    Xcode允许您创建执行重复性任务的自动化脚本。你写了什么脚本来加速开发?

    3热度

    2回答

    如何从mpl::vector生成fusion::vector? 如何从fusion::vector生成mpl::vector? BOOST_MPL_ASSERT((is_same< fusion::vector<int, char>, generate_fusion_vector<mpl::vector<int, char> >::type >)); BOO

    0热度

    2回答

    我正在制作一个框架,根据预定义的XML文件创建对象。 例如,如果在XML文件中会出现以下情况: <type name="man"> <property name="name" type="string"> <property name="height" type="int"> <property name="age" type="int"> <propert

    0热度

    3回答

    在Grails应用程序中,我想为所有控制器类添加foo()方法。我知道我可以使用类似的代码做一个插件的doWithDynamicMethods闭包: application.controllerClasses.toList()*.metaClass*.foo = { println 'foo called' } 不过,我不希望创建一个插件只是为了这个目的。有没有其他地方我可以做到这一点。我怀疑

    2热度

    2回答

    在Grails应用程序中,我正在寻找一些方法将数据从控制器操作传递到操作后运行的过滤器。我喜欢思考的东西: class MyController { def myAction = { render(view:"myView", model:[key: "value"]) passData { // Do some processing here

    1热度

    3回答

    我想知道的是,是否存在某种与我在Groovy中看到的类似的内容,如ExpandoMetaClasses。我一直在阅读Open Classes,但我不太清楚Ruby允许修改类的范围。 借鉴的例子从博客上面,在Groovy中,我可以修改Java的String类,并添加一个方法给它,像这样: String.metaClass.shout = {-> return delegate.toUppe

    2热度

    3回答

    假设我希望某个字符串的实例与其他“正常”实例的行为不同,例如取消“upcase”方法的效果。我做到以下几点: class String def foo def self.upcase self end self end end 这似乎很好地工作,而我需要的方式: puts "bar".upcase #=> "BAR" puts

    82热度

    2回答

    一般来说,如何获得对名称为字符串的对象的引用? 更具体地说,我有一个参数名称列表(成员变量 - 动态构建,所以我不能直接引用它们)。 每个参数是一个也有from_s方法的对象。 我想要做类似如下(这当然是不行的...): define_method(:from_s) do | arg | @ordered_parameter_names.each do | param | i