Sha256: a678fcaf1313d5b9efae8f058ae19c7b81a9e2dd2159ffb8c0f92c9748d030d8

Contents?: true

Size: 1.27 KB

Versions: 3

Compression:

Stored size: 1.27 KB

Contents

---
title: 研究ruby的一些小技巧
layout: post
category: ruby
---

## 关于类

```ruby
class Exam < ActionView::Base
end
```
- `Exam.superclass`  超类,顶级超类为`BaseObject`
- `Exam.ancestors`  类包含的模块(包含类本身)
- `Exam.included_modules`  类包含的模块(不包含类本身)
- `Exam.class_variables`  类的类变量(默认包含继承的类变量,参数`false`为不包含继承的类变量)
- `Exam.constants`  类的常数(默认包含继承的类变量,参数`false`为不包含继承的常数)
- `Exam.instance_methods`  类的实例方法(默认包含继承的类变量,参数`false`为不包含继承的实例方法)


## 关于对象

```ruby
a = Exam.new
```
- `a.class`  对象的类
- `a.object_id`  对象的“对象ID”,同名方法`a.__id__`
- `a.instance_variables`  对象的实例变量
- `a.instance_variable_get :@xx`  查看具体实例变量
- `a.methods`  对象包含的方法,通过传递参数可以查看一定范围内的方法,其他几个方法:`private_methods protected_methods public_methods singleton_methods`

## 关于方法

```ruby
def a.a_method
end
```

- `a.method(:a_method)`  得到一个method对象;
- `a.method(:a_method).source_location`  查看方法定义的文件及所在行;

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rails_auth-1.0.6 test/dummy/node_modules/yougexiangfa_ui/_posts/ruby/2014-10-26-research-ruby.md
rails_auth-1.0.5 test/dummy/node_modules/yougexiangfa_ui/_posts/ruby/2014-10-26-research-ruby.md
rails_auth-1.0.4 test/dummy/node_modules/yougexiangfa_ui/_posts/ruby/2014-10-26-research-ruby.md