Slide 1

Slide 1 text

Ruby require 吕⼩小荣

Slide 2

Slide 2 text

医⽣生 产品狗 程序员 @xiaoronglv

Slide 3

Slide 3 text

2.1.5 > require 'json' => true 2.1.5 > JSON.parse "{\"a\":1}" => {"a"=>1}

Slide 4

Slide 4 text

⽅方法?关键字?

Slide 5

Slide 5 text

where?

Slide 6

Slide 6 text

咖啡机

Slide 7

Slide 7 text

> require 'coffee_machine'

Slide 8

Slide 8 text

$LOAD_PATH

Slide 9

Slide 9 text

拼接 /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb > require 'coffee_machine'

Slide 10

Slide 10 text

失败

Slide 11

Slide 11 text

添加 $LOAD_PATH

Slide 12

Slide 12 text

/coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb /coffee_machine.rb > require 'coffee_machine' => true

Slide 13

Slide 13 text

$LOADED_FEATURES

Slide 14

Slide 14 text

$LOADED_FEATURES > puts $LOADED_FEATURES ... ..... /…/…coffee_machine.rb • 全局变量 • 数组 • 已经require过的⽂文件 • 绝对地址(?) • 第⼆二次 require 时,直接 false

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

⼆二

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

require 'active_support'

Slide 19

Slide 19 text

/active_support.rb /active_support.rb /active_support.rb /active_support.rb /active_support.rb /active_support.rb /active_support.rb /active_support.rb require 'active_support' => it should raise LoadError, right?

Slide 20

Slide 20 text

require 'active_support' => true

Slide 21

Slide 21 text

RubyGems RubyGems was created in about November 2003 and is now part of the standard library from Ruby version 1.9.

Slide 22

Slide 22 text

覆盖 require • load from the existing Ruby load path • activate gem

Slide 23

Slide 23 text

activate gem

Slide 24

Slide 24 text

1.9.3 > spec = Gem::Specification.find_by_path('active_support') => # 1.9.3-p547 :005 > spec.activate => true active gem

Slide 25

Slide 25 text

Vs

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

Bundler 如何 require 它的 gems? 三

Slide 28

Slide 28 text

Gemfile

Slide 29

Slide 29 text

Gemfile

Slide 30

Slide 30 text

$LOAD_PATH

Slide 31

Slide 31 text

$LOAD_PATH > require 'bundler/setup' => true

Slide 32

Slide 32 text

$LOAD_PATH

Slide 33

Slide 33 text

将 Gemfile.lock 中的 所有gem 添加到 $LOAD_PATH中

Slide 34

Slide 34 text

Bundler.require(:default, development)

Slide 35

Slide 35 text

四 Rails 如何使⽤用 bundler require 它的 gems?

Slide 36

Slide 36 text

config.ru

Slide 37

Slide 37 text

enviroment.rb

Slide 38

Slide 38 text

application.rb

Slide 39

Slide 39 text

boot.rb

Slide 40

Slide 40 text

Learning • 与⼤大⽜牛 Pair • 参与多元项⺫⽬目

Slide 41

Slide 41 text

Thanks