环境搭建

本文基于Mac OS,windowns坑较多,建议使用Mac。

  • xcode-select -p 检查是否安装xcode-select, 如果没有,通过xcode-select --install命令进行安装,ruby安装时需要这个library。
  • /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" ,安装Homebrew包管理工具,类似于npm, 官网地址
  • brew install git 安装Git
  • \curl -L https://get.rvm.io | bash -s stable 安装RVM (Ruby Version Manager)
  • rvm install 2.3.1 安装ruby,2.3.1为版本号

    rvm list 列出已经安装ruby版本,rvm use 2.3.1 --default 设定默认的ruby版本。
  • gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/ 由于rubygems被墙,可以添加淘宝提供的Gem下载站点。
  • 编辑器使用Atom,IDE可以使用RubyMine。

类/对象

  • ruby中几乎所有见到的都是对象。
  • 和Java一样,ruby通过关键字class定义一个类。
class Dog
def bark
puts "wang wang..."
end
def self.static_method
puts "this is a static method"
end
end

通过 Dog.new.bark调用实例方法,Dog.static_method调用类方法。

  • 类变量
class House
@@location = 'Xi\'an'
def self.location
@@location
end
end
puts House.location => Xi'an

通过关键字'<'表示继承.

class Apartment < House
@@location = 'Gaoxin'
end
puts House.location => Gaoxin
puts Apartment.location => Gaoxin

修改类变量会修改对应的父类和所有子类。

  • 实例变量
class House
attr_accessor :location
@location = 'xi\'an'
end
puts House.new.location => nil

实例变量变为类变量

class House
class << self
attr_accessor :location
end
@location = 'Xi\'an'
end
class Apartment < House
@location = 'Gaoxin'
end
puts House.location => Xi'an
puts Apartment.location => Gaoxin

Ruby 学习笔记(一)的更多相关文章

  1. Ruby学习笔记4: 动态web app的建立

    Ruby学习笔记4: 动态web app的建立 We will first build the Categories page. This page contains topics like Art, ...

  2. ruby学习笔记(1)-puts,p,print的区别

    ruby学习笔记-puts,p,print的区别 共同点:都是用来屏幕输出的. 不同点:puts 输出内容后,会自动换行(如果内容参数为空,则仅输出一个换行符号):另外如果内容参数中有转义符,输出时将 ...

  3. ruby 学习笔记 1

    写ruby blog  系统的记录下.也是对我学ruby的点滴记录. 先介绍下我的学习环境.系统:ubuntu12.04文档:techotopia ,ruby文档,the hard way learn ...

  4. ruby学习笔记(2)-chomp,chop的区别

    还没开始系统性的学习Ruby,最近在看metasploit框架的exploit会涉及到Ruby脚本,也就硬着头皮一遍查阅资料一遍做些笔记吧. Ruby字符串中存在chop和chomp的内置函数.我在h ...

  5. Ruby学习笔记0708

    #!/usr/bin/env ruby class MegaGreeter attr_accessor :names # 初始化這個物件 def initialize(names = "Wo ...

  6. ruby 学习笔记 2 -变量

    变量 在ruby的世界里,变量有5种,全局变量 局部变量 实例变量 常量 类变量以及伪变量 常用的: 全局: 在全局使用,使用$开头,因为是全局的,所以在任何的代码例子中都可以改变其值,造成混乱,所以 ...

  7. Ruby学习笔记

    #!/usr/bin/ruby puts "Hello, Ruby, what is your name?" $name = STDIN.gets puts "Hi, I ...

  8. Ruby学习笔记(二)

    1.block 代码块 do...end 或 {} 构成一个代码块,就像常见的 .each后面跟的代码块. my_nums = [1,2,3] my_double_nums = my_nums.col ...

  9. Ruby学习笔记之升级ruby的版本

    升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上. 0x00 主机环境如下 [root@test ~]# cat /et ...

  10. Ruby学习笔记7: 添加身份验证(adding Authentication)

    我们已经完成了Category & Product页面内容的增删改查,再加入一个身份验证即可成为一个较完整的Rails App了.本文就来完成这个任务. We now need to give ...

随机推荐

  1. Redis源码分析-底层数据结构盘点

    前段时间翻看了Redis的源代码(C语言版本,Git地址:https://github.com/antirez/redis), 过了一遍Redis数据结构,包括SDS.ADList.dict.ints ...

  2. CentOS6.5添加rbd模块

    [root@ceph-monitor opt]# modprobe rbd   FATAL: Module rbd not found. Once you have deployed the almi ...

  3. 反射实现数据库增删改查DAO及DAOImpl源代码(一)

    这是DAO层,第一次尝试,如有bug希望能即使反馈,我们共同进步.具体的用法和实现原理我会在前面几篇博客中补充更新.配置文件及项目目录结构会在下一篇中贴出! package com.javasm.su ...

  4. ora2pg oracle迁移postgresql工具

    windows下安装 1. 安装strawberry-perl-5.24.3.1-64bit.msi 2. ora2pg-18.2.zip 解压缩cd 进入目录perl Makefile.PLdmak ...

  5. k8s集群新增节点

    节点为centos7.4 一.node节点基本环境配置 1.配置主机名 2.配置hosts文件(master和node相互解析) 3.时间同步 ntpdate pool.ntp.org date ec ...

  6. 60个DevOps开源工具,你在用哪些?

    你喜欢免费的东西吗?获得开发者社区支持的自动化,开源的工具是大家梦寐以求的.这里列举了 60 多款最棒的开源工具,可以帮助你很好的实行 DevOps. 一.开发工具 版本控制&协作开发 1.版 ...

  7. web综合案例03

    web综合案例03 web综合案例03 web综合案例03 web综合案例03 ... 待复习

  8. Linux调优(网络)

    定义socket接受缓冲大小 net.core.rmem_default = N #接受 net.core.rmem_max = N net.core.wmem_default = N #发送 net ...

  9. CF447A DZY Loves Hash 模拟

    DZY has a hash table with p buckets, numbered from 0 to p - 1. He wants to insert n numbers, in the ...

  10. ldap第一天 编译安装LDAP + ldapadmin

    此文整理学习此大神的博客:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26168435&id=5746284 一.环 ...