vim-ruby-2007.05.07 bin/install.rb学习 (二)

vim-ruby-2007.05.07 bin/install.rb学习 (二)


前言:

a brief:
写博客,有的写就写,没的写,别呻吟
一个人遇到的问题,别人也可能遇到
一个人感兴趣的问题,别人也可能感兴趣

解剖一只麻雀,看看~~

 

细分代码:

看:
class Env
    #
    #Returns :UNIX or :WINDOWS, according to CONFIG[ 'host_os' ] and $option[:windows].
    #
    def Env.determine_target_os
 os = CONFIG['host_os']
 if os =~ /mswin/ or $option[:windows]
     return :WINDOWS
 else
     return :UNIX
 end
    end
end


几个问题:
 1、为什么Env.determine_target_os要带Env?
 2、:WINDOWS前面的":"什么意思啊?
 3、CONFIG哪里来的?看上去像是个HASH对象,包含了一个ruby cofigure information
 4、$option什么啊?哪里来?有什么?

第2个:
不知道,以后可能会知道,
测试例子:
 a = :windows
 puts a == "windows"   #false
表明 :windows不是一个字符串

第3个:
看:
require 'rbconfig'
include Config
这两行,肯定是ruby的配置文件环境信息,以哈希对象CONFIG(常量吗?Y,你没看人家大写啊?)来表示。不信你试试:
 CONFIG["haha"] = "kidding"
结果: 一切正常;(这个?哦?CONFIG是不可变的,不代表CONFIG指向的东西不可变啊)

如果运行
 AA = 1
 AA = 2
结果:报警,运行

再运行
 HA = Hash.new
 HB = Hash.new
 HA["haha"] = "kidding"
 HA = HB
结果:报警(Already initialized constant HA),接着运行 

运行:
 ha = Hash.new
 hb = Hash.new
 ha["haha"] = "kidding"
 ha = hb
结果:正常

运行:
 HA = Hash.new
 CONFIG = HA
结果:结果:正常 (晕倒,CONFIG也可变,这个比较危险了,不过我想不会有人想去修改这个玩吧,除了正常修改之外)

CONFIG的性质就测到这里,看看内容哦

运行:
 CONFIG.keys.each {|key| puts "#{key}:/t/t#{CONFIG[key]}/n"}
结果:
 有119行,其中有几行(反正CONFIG['host_os']有了)
 ---------------------------------------------------------------
 host_os:  mswin32
 build:   i686-pc-mswin32
 host:   i686-pc-mswin32
 COMPILE_C:  cl -nologo $(INCFLAGS) -MD -Zi -O2b2xg- -G6  -c -Tc$(<:/=/)
 DLDFLAGS:  -link -incremental:no -debug -opt:ref -opt:icf -dll $(LIBPATH) -def:$(DEFFILE) -implib:$(*F:.so=)-i386-mswin32.lib -pdb:$(*F:.so=)-i386-mswin32.pdb
 build_os:  mswin32
 ruby_install_name: ruby
 --------------------------------------------------------------
那么到底CONFIG信息是怎么得到的呢?这个很复杂,可以看ruby安装目录下的文件,我是没看明白,好像是通过configure shell编程得到的,太复杂,不是我短期能搞定的。 C U later~~

运行puts $option.class
可知:$option 是个全局变量NilClass,即没有初始化的对象
怎么来的?ruby环境中来。
到底怎么来的?我不知道。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值