`

Ruby Metaprogramming的一次公司分享活动

    博客分类:
  • Ruby
阅读更多
主要介绍了Ruby Metaprogramming的机制和方法。主要包括:
Introspection
Dynamic dispatch/Dynamic method
Ghost Method
Ruby Alias and AOP
Object/Class Extension
Eval/Class Eval/Instance Eval/Module Eval
Ruby Object Model
Singleton class/Metaclass/Eigenclasses
Hook Method
Module and Class Mixin Extension
Block、Callable Object and Functional programming
Domain Specific Language

另附带两段代码没往ppt写:
Open class and sexy api:
#!/usr/bin/ruby

class Numeric
    def weeks
        return 7 * self.days
    end
    
    def days
        return 24 * self.hours 
    end

    def hours
        return 60 * self.minutes
    end

    def minutes
        return 60 * self.seconds
    end

    def seconds
        return self
    end

    def ago
        return Time.now - self
    end

    def after
        return Time.new + self
    end
end

p 3.minutes.ago
p 3.days.ago
p 3.days.after


class macro:

class Object
    def self.my_attr_accessor(sym)
        class_eval <<EOF
            def #{sym}
                instance_variable_get(:@#{sym})
            end

            def #{sym}=(value)
                instance_variable_set(:@#{sym},value)
            end
EOF
    end
end

class A
    my_attr_accessor :a

    def initialize(a)
        @a = a
    end
end

a_ins = A.new(1)
a_ins.a = 22

puts a_ins.a

附件有ppt
1
0
分享到:
评论

相关推荐

    Ruby元编程 源代码 Metaprogramming Ruby source code

    Ruby元编程是编程领域中的一个高级技术,它允许程序员在运行时操纵语言的结构和行为。这本《Metaprogramming Ruby》书籍深入探讨了如何利用Ruby的特性进行元编程,帮助开发者提升代码的灵活性、可扩展性和复用性。源...

    Metaprogramming.Ruby

    《Metaprogramming Ruby: Programming Like the Ruby Pros》是一本深入探讨Ruby元编程技术的专业书籍,作者Paolo Perrotta通过丰富的实例和清晰的概念解析,帮助读者理解和掌握Ruby中的高级编程技巧。本书不仅适用于...

    ruby metaprogramming examples

    从给定的文件信息来看,虽然没有提供直接的内容,但是从标题和描述中可以得知,我们需要讨论的主题是Ruby的元编程(metaprogramming)示例。元编程是指程序有能力在运行时生成、修改或执行代码的能力。Ruby是一种...

    label_break_ruby_Metaprogramming_

    在Ruby编程语言中,元编程(Metaprogramming)是一种强大的特性,允许程序在运行时检查、修改甚至创建自身的结构和行为。元编程能够增加代码的灵活性和可扩展性,但同时也需要谨慎使用,以避免过度复杂化和降低代码...

    Metaprogramming Ruby 2nd Edition ruby元编程

    《Metaprogramming Ruby 2nd Edition》是一本深入探讨Ruby语言元编程特性的经典之作。本书不仅适合那些希望深入了解Ruby内部机制的读者,同时也为那些想要提升自己代码质量以及更有效地处理遗留代码的开发者提供了...

    patch_def_ruby_Metaprogramming_Before_

    在Ruby编程语言中,元编程是一种强大的特性,它允许代码在运行时定义或修改自身的行为。"patch_def_ruby_Metaprogramming_Before_" 的标题暗示了我们将在讨论如何利用元编程技术来添加在方法之前的钩子,比如 `def_...

    Metaprogramming Ruby

    “Metaprogramming Ruby”这一标题明确地指出了本书的核心内容——通过元编程技术深入探索Ruby语言的独特魅力。元编程(Metaprogramming)是一种在程序运行时能够修改或控制其行为的技术,这使得Ruby成为了一种高度...

    Metaprogramming ruby

    《Metaprogramming Ruby》是一本专注于Ruby编程语言元编程技术的书籍,由Paolo Perrotta撰写。元编程是一种编程范式,它允许在程序运行时修改或创建程序结构和行为。在Ruby中,元编程是其核心特性之一,使得代码能够...

    Metaprogramming Ruby 2(Pragmatic,2014)

    Dig under the surface and explore Ruby's most advanced feature: a collection of techniques and tricks known as metaprogramming. In this book, you'll learn metaprogramming as an essential component of ...

    Metaprogramming Ruby(Second Edition)

    《Metaprogramming Ruby(Second Edition)》是Ruby编程语言领域的一本经典著作,由Peter Eberhardt和Paolo Perrotta共同撰写。这本书详细介绍了如何利用Ruby的强大元编程特性来提升代码的灵活性、可扩展性和简洁性。...

    MetaprogrammingRuby2ndEditionFreePdfBook.pdf 英文原版

    Metaprogramming Ruby 2nd Edition – FreePdfBook

    Ruby元编程技术详解(Ruby Metaprogramming techniques)

    Ruby元编程是一种强大的编程技术,它允许程序员在运行时修改和扩展程序的行为。元编程在Ruby中被广泛使用,因为Ruby的语言设计鼓励动态性和灵活性。以下是一些关于Ruby元编程的关键知识点: 1. 单例类(Singleton ...

    MetaprogrammingRubyFreePdfBook.pdf 英文原版

    Metaprogramming Ruby – FreePdfBook

    MetaProgramming in Ruby系列教程的中译版

    MetaProgramming in Ruby系列教程的中译版。 uby是动态的、魔幻而有趣的。而元编程(Metaprogramming)技术在Ruby中的应用也让...借此机会,我想借Satoshi Asakawa的本系列讲座,为大家展示一个绚丽的Ruby元编程世界。

    Pragmatic.Metaprogramming.Ruby.Feb.2010.rar

    Pragmatic.Metaprogramming.Ruby.Feb.2010.rar

    Ruby Under a Microscope

    ruby interpreter 原理探討 At first glance, learning how to ... using metaprogramming, Ruby programs can inspect and change themselves. Beneath this thin veneer of simplicity, Ruby is a very complex tool.

    Server Metaprogramming Ruby-Pyton-Groovy-Haskell-Erlang.pdf

    总之,《Server Metaprogramming Ruby-Pyton-Groovy-Haskell-Erlang.pdf》这本书不仅介绍了元编程的基本概念,还深入探讨了五种具有代表性的动态语言在服务器端元编程方面的应用,并通过《Beyond Java》一书提供了对...

    ruby books

    进阶读者可以阅读《Programming Ruby》(又名"The Pickaxe Book”),这是Ruby的权威参考,或者《Metaprogramming Ruby》来探索Ruby的元编程特性。而对于Web开发,经典之作《Agile Web Development with Rails》是...

    Metaprogramming.in.NET

    .NET Framework中的动态语言运行时(DLR)提供了一组支持动态语言(如Python、Ruby等)的API和服务,同时也允许在这些语言之间以及与C#等静态类型语言之间进行无缝互操作。 - **支持动态语言特性的框架**:DLR提供了...

    Metaprogramming Elixir(Pragmatic,2015)

    Metaprogramming is one of Elixir's greatest features. Maybe you've played with the basics or written a few macros. Now you want to take it to the next level. This book is a guided series of ...

Global site tag (gtag.js) - Google Analytics