以下代码与代码学习来自<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是一门简洁、灵活而又优雅的动态编程语言,由日本开发者松本行弘(Yukihiro Matsumoto)于1993年创造。Ruby以其易读易写的语法、强大的面向对象编程和丰富的生态系统而备受开发人员的喜爱。本文将为您介绍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代码ruby代码ruby代码ruby代码
ruby2ruby 提供一些用来根据 RubyParser 兼容的 Sexps 轻松生成纯 Ruby 代码的方法。可在 Ruby 中轻松实现动态语言处理。 标签:ruby2ruby
ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...
所采用的Rails应用示例,既说明了Ruby的特性,也给出了有关Rails的重要信息。第四部分讲述了如何应用第二部分和第三部分的Ruby知识来开发Rails应用。 本书适合于Ruby的初学者,也适合于想要进一步提高Ruby编程...
《Ruby完全自学手册》是一本完全覆盖Ruby和Ruby on Rails的完全自学手册。《Ruby完全自学手册》的特色是由浅入深、循序渐进,注重理论和实践的结合。虽然定位为入门手册,但是依然涉及许多高级技术和应用,覆盖到的...
Ruby编程,Ruby编程,Ruby编程,Ruby编程,Ruby编程,
ruby源代码 ruby源代码 ruby源代码 ruby源代码2
它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby,...
ruby源代码 ruby源代码 ruby源代码 ruby源代码4
它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby,直至...
ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1ruby笔记1
它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby,...
ruby源代码 ruby源代码 ruby源代码 ruby源代码3
ruby-build - 编译和安装Ruby
它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby,...