以下代码与代码学习来自<Ruby Best Practives>,主要描述了一幅生动的Ruby语言动态特性使用场景。
#!/usr/bin/env ruby # # encoding: utf-8 # # Base module NativeCampingRoutes module NativeCampingRoutes # This is a convenient way to make instance methods into class methods. # And you can use this method to make a singleton. # http://ozmm.org/posts/singin_singletons.html # 将成员对象方法上升为类方法 extend self def R(url) route_lookup = routes # Get a class-object klass = Class.new # Modify the meta-class-object(klass) # Extend the modules' methods to klass meta = class << klass; self; end #meta class, overwrite the define_method #The following block will be called by Class.instance_eval meta.send(:define_method, :inherited) do |base| raise "Already defined" if route_lookup[url] route_lookup[url] = base end klass end def routes @routes ||= {} end def process(url, params={}) routes[url].new.get(params) end end module NativeCampingRoutes #R '/hello' # will create a class-object which has been overwrited the define_method class Hello < R '/hello' #This will be invoked by overwrited method(define_method) def get(params) puts "hello #{params[:name]}" end end class Goodbye < R '/goodbye' def get(params) puts "goodbye #{params[:name]}" end end end NativeCampingRoutes.process('/hello',:name=>'greg') NativeCampingRoutes.process('/goodbye',:name=>'joe')
相关推荐
在ruby代码中,其实我们一直都在进行元编程,虽然可能只是一句非常简单的代码,比如说,在“”中嵌入一个表达式,这就是元编程。毕竟,嵌入的的表达式并非真正的代码,它只是一个字符串,但是ruby却可以将它转换成...
内容概要:本文详细探讨了 Ruby 语言的动态特性,涵盖了多个关键方面的应用实例。包括使用 eval 系列方法(eval、class_eval、module_eval 和 instance_eval)动态执行字符串形式的代码;动态为类或者对象添加方法...
Ruby动态类型系统的未来发展方向仍然关注于其灵活性和实用性,同时在保持类型安全的前提下,探索新的语言特性,以适应不断变化的编程需求和挑战。Ruby的动态类型系统,从其萌芽阶段开始,就一直在不断发展和完善,...
### Ruby动态编程语言的核心知识点 #### 一、Ruby的特点与优势 **1. 简洁而优雅** - **设计哲学:“最小意外原则”** - Ruby的设计理念旨在减少不必要的复杂性和冗余,使得代码更加直观易懂。 - **简洁的语法** ...
ruby 1.6 特性 ruby 1.7 特性 ruby 1.8 特性 1.6.8到1.8.0的变更点(总结) ruby 1.9 特性 obsolete 对应DOSISH 附录 疑似BNF的Ruby语法 Ruby术语集 Ruby的运行平台 pack模板字符串 sprintf格式 Marshal...
Ruby是一种跨平台、面向对象的动态类型编程语言。Ruby 体现了表达的一致性和简单性,它不仅是一门编程语言,更是表达想法的一种简练方式。 Ruby 是一个注重均衡的语言,它的发明者松本行弘(Yukihiro “Matz” ...
Ruby是一种高级的、动态类型的编程语言,它的设计哲学强调简洁性和表达性。在Ruby中,一切都是对象,这使得它成为一种纯面向对象的语言。下面我们将深入探讨Ruby的语法和语言特性,包括基础语法、编程模型、流程控制...
内容概要:本文全面介绍了Ruby编程语言的基础知识和高级特性,从安装Ruby到基本语法规则,再到类与对象的概念。同时深入讲解了模块与混入、块与Proc、异常处理、元编程等高级特性,并通过创建命令行工具和Web应用的...
Ruby Ruby Ruby Ruby Ruby Ruby
Ruby是一种动态、开源的编程语言,以其简洁、优雅的语法和强大的元编程能力著称。在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build...
3. **动态编程技巧**:通过具体示例展示如何利用Ruby的动态特性编写自修改程序,提升代码的灵活性和可扩展性。 4. **轻量级多任务**:介绍如何使用Fiber和Thread来实现并发编程,提高程序的执行效率。 5. **异常...
本文将探讨如何使用Ruby脚本动态修改Xcode项目中的xcodeproj文件,以提高开发效率和减少人为错误。 在使用Ruby脚本修改xcodeproj文件之前,首先需要了解xcodeproj文件的本质。xcodeproj实际上是一个包含了XML结构的...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本资源“ruby-v3.1.1.zip”包含了Ruby的最新版本3.1.1,这是一个重要的里程碑,因为它引入了新特性、性能优化以及对旧...
3. **强类型**:尽管是动态类型,但Ruby依然具有强类型特性,确保了代码的稳定性和安全性。 4. **块和闭包**:Ruby中的块和闭包是其独特特性,它们允许灵活的代码组织和函数式编程风格。 5. **元编程**:Ruby提供了...
在学习这些文档时,重要的是理解和掌握Ruby的核心理念,即“代码应该是可读的”,这意味着应尽量保持代码简洁,避免冗余,并利用Ruby的动态特性来提高开发效率。此外,熟悉Ruby的Gem生态系统也非常重要,因为Gem是...
ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby
2. 动态类型,变量在使用时无需声明其类型。 3. 高度可扩展,可以通过编写扩展库来增加Ruby的功能。 4. 完备的元编程能力,允许开发者在运行时修改程序的行为。 5. 开源,遵循GPL许可证发布,有着庞大的开源社区支持...
Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。它由日本人松本行弘(Yukihiro Matsumoto)在1995年设计并开发,旨在提高程序员的生产力,降低代码的复杂性。Ruby的哲学...
1. **Ruby语言**:Ruby是一种面向对象的、动态类型的编程语言,以其简洁的语法和强大的元编程能力著称。它的设计哲学是强调程序员的生产力,使得编写代码变得更加简单和愉快。Ruby的特色包括块(blocks)、闭包...
这本面向初学者和高级读者的指南旨在全面介绍Ruby编程语言的基础及其高级特性,因此我们将从多个角度来解析这些内容。 ### 一、Ruby编程语言简介 #### 1.1 Ruby语言的历史与发展 Ruby是一种动态、面向对象的脚本...