`
wudixiaotie
  • 浏览: 139063 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
查找IP对应的地址:   上面让去http://int.dpool.sina.com.cn/iplookup/iplookup.php这个网站查, open("http://int.dpool.sina.com.cn/iplookup/iplookup.php?&ip=#{last_sign_in_ip}") 查到的结果是乱码: 1\t-1\t-1\t��\271����\253\t\271���\t\t\t\t   我是linux一看就知道是傻逼GB2312转马的问题,本地字符集默认转移成UTF8了,怎样转过来呢。 外面套个Nokogiri就好。 ...
class_eval() 和 instance_eval() 的差别理解: MyClass.class_eval() 里面的代码是运行在MyClass的类定义作用域中,MyClass#instance_eval() 里面的代码是运行在MyClass类的实例方法所在的作用域中,所以 class AAA end AAA.instance_eval do def aaa puts 'aaaa' end end AAA.send :define_method, :aaa do puts 'new aaa' ...
what's different between MyClass.instance_eval() and MyClass.define_method() class AAA end AAA.instance_eval do def aaa puts 'aaaa' end end AAA.send :define_method, :aaa do puts 'new aaa' end AAA.aaa # => aaa a = AAA.new a.aaa # => new aaa  MyClass.instan ...
环绕别名 class XXX def my_method puts "this is original_method" end alias_method :original_my_method, :my_method def my_method puts "rewrite original_method" end end x = XXX.new x.my_method #=》 rewrite original_method x.origianl_my_method #=》 thi ...
类方法本身是Class类实例化对象的单件方法。那么实例方法呢?
lambda其实我的理解就是方法的对象,里面return是从lambda定义中返回。其实就是把方法当成一个对象传来传去,到需要的地方去执行。不过lambda和方法有个重大区别,lambda是闭包,方法不是。方法不会带着上下文作用域到处走。 Proc更像是块。return是从定义proc的作用域返回。   class AAA def my_method puts "this is my method" end end a = AAA.new m = a.method :my_method m.call #=》 this is my ...
m = Proc.new { puts "fuck" } m1 = proc { puts "fuck1" } def my_method yield end def my_method1(obj) obj.call end my_method(&m) #=> fuck my_method(&m1) #=> fuck1 my_method1(m) #=> fuck my_method1(m1) #=>fuck1 &m #=> syntax e ...
instance_eval()方法的实际其实就一句话:不改变当前上下文的前提下,改变当前self。 class AAA def initialize @v = 1 end end a = AAA.new x = 3 puts self a.instance_eval do puts self @v += x puts @v end  如上述代码所示,x的作用域应该是main内,结果在a内也能访问。这应该算是扁平作用域的一种高级用法。。   class AAA @v = 2 def initialize @v ...
block的环境理解: def my_method x = "aaa" yield("lala") end x = "ooo" my_method {|y| "#{x}, #{y} fdg" }  上面的代码得到的结果是 ooo,lala fdg 原因是运行block时候是带着当前环境的上下文的,也就是说当前环境的临时变量,类变量,全局变量,常量,都是跟着block走的,而调用block的地方的环境上下文是对block来说不可见的,也就是说只有定义block的时候的上下文对block来说 ...
怎么绕过private方法的限制,直接调用private方法。 class AAA private def private_method puts 'this is private method' end end  三种方式 1.用send a = AAA.new a.send(:private_method)  2.用重写方式 class XXX < AAA def private_method super end end x = XXX.new x.private_method 3.instance_eval()方 ...
方法是存储在当前self的类中,Ruby中没有实例方法和类方法之分,只有方法。     类也是Class的一个对象。所以实例方法是存储在所属的类中,类方法是存储在Class的类中,那么对象的单间方法呢,是存储在当前对象的元类中。     include实际是在当前类之上建立一个父类,父类方法就是模块的方法。如果在include一个模块,这个模块建立的父类在原来模块之下。 original_module         ||         V new_module         ||         V my_class
module是可以定义private方法的 module MTest def aaa puts "aaa" private_method end private def private_method puts "this is private_method" end end class CC include MTest end c = CC.new c.aaa  原因我估计是Kernel中定义了private的方法。
HTTP协议是不安全的,如果没有SSL做底层支持,用HTTP Basic Authentication很容易让攻击者监听并获取到用户名和密码的信息。有人说用Base64做encode,这是没用的,攻击者获取到用户名密码后用Base64来decode一下就好了,那么为什么大多 ...

solr(一)部署

    博客分类:
  • solr
前提jdk1.7和tomcat7  直接解压缩solr4.8.1至目录/usr/local/,重命名为solr;然后复制solr/dist/solr-4.8.1.war到tomcat6/webapps中;然后修改tomcat6/conf/server.xml   <Host name="localhost"  appBase="/usr/local/tomcat/webapps"          unpackWARs="true" autoDeploy="true">   如图将weba ...
Rack app的定义方式是:   require ‘rack’ class MyServer def call(env) [200, {}, ['hello world']] end end Rack::Handler::WEBrick.run MyServer.new, Port: 2000  要给app加一些中间件,就需要这么写: app = MyServer.new app = Rack::Lint.new(app) app = Rack::ShowStatus.new(app) app = Rack::ShowExceptions.new( ...
Global site tag (gtag.js) - Google Analytics