Ruby使用说明书

2016-07-01 » iOS开发基础

Ruby 概述

在介绍 CocoaPods 的实现之前,我们需要对 Ruby 的一些特性有一个简单的了解,在向身边的朋友“传教”的时候,我往往都会用优雅这个词来形容这门语言。

除了优雅之外,Ruby 的语法具有强大的表现力,并且其使用非常灵活,能快速实现我们的需求,这里简单介绍一下 Ruby 中的一些特性。

一切皆对象

在许多语言,比如 Java 中,数字与其他的基本类型都不是对象,而在 Ruby 中所有的元素,包括基本类型都是对象,同时也不存在运算符的概念,所谓的 1 + 1,其实只是 1.+(1)的语法糖而已。在 Ruby 中,你可以向任意的对象发送 methods 消息,在运行时自省,所以笔者在每次忘记方法时,都会直接用 methods 来“查文档”:

puts 1.methods

会打印出一堆method

一切皆对象不仅减少了语言中类型的不一致,消灭了基本数据类型与对象之间的边界;这一概念同时也简化了语言中的组成元素,这样 Ruby 中只有对象和方法,这两个概念,这也降低了我们理解这门语言的复杂度:

  • 使用对象存储状态
  • 对象之间通过方法通信

block

Ruby 对函数式编程范式的支持是通过 block,这里的 block 和 Objective-C 中的 block 有些不同。

首先 Ruby 中的 block 也是一种对象,所有的 Block 都是 Proc 类的实例,也就是所有的 block 都是 first-class 的,可以作为参数传递,返回。

def twice(&proc)
    2.times { proc.call() } if proc
end

def twice
    2.times { yield } if block_given?
end

yield会调用外部传入的 block,block_given?用于判断当前方法是否传入了 block

在这个方法调用时,是这样的:

twice do 
    puts "Hello"
end

eval

最后一个需要介绍的特性就是 eval了,早在几十年前的 Lisp 语言就有了 eval这个方法,这个方法会将字符串当做代码来执行,也就是说 eval模糊了代码与数据之间的边界。

> eval "1 + 2 * 3"
 => 7

有了 eval方法,我们就获得了更加强大的动态能力,在运行时,使用字符串来改变控制流程,执行代码;而不需要去手动解析输入、生成语法树。

Ruby基础知识

http://www.runoob.com/ruby/ruby-tutorial.html

使用 RVM 安装Ruby

列出已知的 ruby 版本:
$ rvm list known
可以选择现有的 rvm 版本来进行安装(下面以 rvm 2.4.2 版本的安装为例)
$ rvm install 2.4.2

设置 Ruby 版本

将指定版本的 Ruby 设置为系统默认版本
$ rvm 2.0.0 --default

Ruby环境变量

ENV对象包含了所有当前设置的环境变量

Ruby类、变量、方法

$global_variable = 10
class Customer  //类定义
   @@no_of_customers=0
   def initialize(id, name, addr) //方法定义
      @cust_id=id
      @cust_name=name
      @cust_addr=addr
   end
end //类结尾

局部变量:局部变量是在方法中定义的变量。局部变量在方法外是不可用的。在后续的章节中,您将看到有关方法的更多细节。局部变量以小写字母或 _ 开始。

实例变量:实例变量可以跨任何特定的实例或对象中的方法使用。这意味着,实例变量可以从对象到对象的改变。实例变量在变量名之前放置符号(@)。

类变量:类变量可以跨不同的对象使用。类变量属于类,且是类的一个属性。类变量在变量名之前放置符号(@@)。

全局变量:类变量不能跨类使用。如果您想要有一个可以跨类使用的变量,您需要定义全局变量。全局变量总是以美元符号($)开始。


osx 10.13以上的版本没法装更新的ruby,这个是离线安装

https://ruby-china.org/topics/35193

brew安装ruby

mac下升级ruby到最新版本


在安装其他软件的时候 发现ruby的版本过低,现在准备升级夏ruby。

查看ruby版本

命令:ruby --version
提示版本如下,确实应该升级了:
ruby 2.0.0p481 (2014-05-08 revision 45883) [universal.x86_64-darwin14]

升级ruby

    查询网上采用brew方式
    命令: brew install ruby
    此时,会提示如下,先升级Homebrew,然后是个漫长的等待过程,你可以先喝口水等待一会儿了。
    安装完成之后,执行查看版本命令,发现还是2.0.0,版本没有变,通过百度发现还应该设置环境变量

设置环境变量

      打开文件:vi .bashrc
      输入下面内容:export PATH=/usr/local/Cellar/ruby/2.5.1/bin:$PATH
      执行导入命令:source .bashrc

再次查看版本

    ruby --version
   信息提示如下,大功告成:
   ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin14]

rvm移除

rvm implode

在到~目录下面删除对应的rvm隐藏文件夹 ~/.bashrc 等下面的rvm环境

~/.rvm/usr/local/rvm,在加上你的 ~/.profile 或是 ~/.bashrc 中的一行 [[ -s "/Users/ranmocy/.rvm/scripts/rvm" ]] && source "/Users/ranmocy/.rvm/scripts/rvm"