对ruby的namespaces一些理解分享下
主要用到的namespaces的关键词是 module , require ,load ,include
module 的作用是圈出一个命名空间理解起来还简单,对于require,load,include的理解,先看下下面的代码
#A.rb
module All
def self.a
print "a\n"
end
end
print "loading in the A.rb\n"
#B.rb
module All
def self.b
print "b\n"
end
end
#test.rb
require "A"
require "B"
require "A"
require "A"
load "A.rb"
load "A.rb"
All.a
All.b
结果是:
loading in the A.rb
loading in the A.rb
loading in the A.rb
a
b
require 对于被加载的文件只加载一次,所以第一个是loading in the A.rb 因为require起作用的之后虽然还有很多的require但是不在触发打印出来 loading in the A.rb ,后两行是 load "A.rb"触发的,每次出现就会将被加载文件从新加载一次。而include就是一个mixin
分享到:
相关推荐
<br> <br>Strings and numbers <br>Arrays and hashes <br>Classes, modules, and namespaces <br>Reflection and metaprogramming <br>XML and HTML processing<br><br>Ruby on Rails ...
RubyWBEM 简介 ruby-wbem 在 ruby-sfcc (CIM/XML) 和 openwsman (WS-Management) 之上提供了一个抽象层 您可以使用它连接到任何 CIMOM 对话 CIM-XML 或 WS-Management ... namespaces . each do | ns |
### Ruby的XML格式数据解析库Nokogiri的使用进阶 #### 一、Nokogiri概述 Nokogiri是Ruby中的一个强大的XML/HTML解析器,它提供了多种方式来解析、搜索和修改XML/HTML文档。Nokogiri能够与标准库一样方便地操作文档...
快速的XML至Ruby Hash转换器 安装 XmlHasher可通过,并可通过以下方式安装: $ gem install xmlhasher 或将其添加到您的Gemfile中,如下所示: gem 'xmlhasher' 发行说明 参见 用法 require 'xmlhasher' # ...
里亚克唱片公司RiakRecord 是一个围绕 riak-ruby-client 的薄且不成熟的包装器。 它为每个类创建一个桶,提供一个简单的查找器,并为数据和索引创建属性访问器。 它在 Riak::Client 上增加了一个层,使与 Riak 的...
remove_namespaces => true target => "parsed_data" } } ``` 最后,在输出部分指定将处理后的数据发送到Elasticsearch: ```ruby output { elasticsearch { hosts => ["localhost:9200"] index => "medical...
Warden架构包括一个Ruby编写的守护进程,用于管理系统状态,以及每个容器一个C语言编写的守护进程,用于处理容器的引导、进程分发等具体操作。这样的设计保证了Warden能够在不同的容器之间进行有效隔离和资源控制。 ...
1. Web服务器和Web应用框架,如Apache和Ruby on Rails。 2. 数据库系统,如MongoDB和PostgreSQL。 3. 语言绑定,如Python的lxml库和Perl的XML::LibXML模块。 4. 编译器和IDE,如GCC和Visual Studio。 总的来说,...
Objects, Namespaces and Modules 在Prototype中,对象被划分为三个主要类别:类(Class)、命名空间(Namespace)和模块(Module)。 - **类(Class)**: 类似面向对象编程中的概念,通过`new`操作符来实例化对象...
xmp-可扩展元数据平台(XMP)解析器 XMP为XMP数据( )提供了面向对象的接口。 XMP数据可以PDF,JPEG,GIF,PNG和许多其他格式找到。支持的格式 目前,exifr gem仅... namespaces . each do | namespace_name | name
SmartCore ::容器· ... namespace ( :database ) do # support for namespaces register ( :resolver , memoize : true ) { SomeDatabaseResolver . new } # dependency registration namespace ( :cache ) do #
2. **Namespaces(中优先级)**:更新于2008年5月23日,浏览器兼容性列表已发布,计划在2009年9月进行拟推荐。Namespace模块允许在CSS中使用XML命名空间,有助于实现不同源数据的样式分离。 3. **Ruby(中优先级)*...