Changeset 2004

Show
Ignore:
Timestamp:
11/25/07 21:12:43 (6 years ago)
Author:
cho45
Message:

lang/ruby/chokan/trunk/plugins/js_eval.rb,
lang/ruby/chokan/trunk/plugins/eval.rb:

? からはじまるように統一

Location:
lang/ruby/chokan/trunk/plugins
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lang/ruby/chokan/trunk/plugins/eval.rb

    r1789 r2004  
    88        def initialize(config, chokan) 
    99                super 
    10                 @prefix = @config["prefix"] || "ruby " 
     10                @prefix = @config["prefix"] || "?rb " 
    1111        end 
    1212 
    1313        def on_privmsg(prefix, channel, message) 
    1414                case message 
    15                 when /^#{@prefix}(.+)$/i 
     15                when /^#{Regexp.quote(@prefix)}(.+)$/i 
    1616                        code = Regexp.last_match[1].taint 
    1717                        ret = "" 
     
    2626        end 
    2727end 
     28 
     29Lambda = Proc 
     30class Lambda 
     31        def curry 
     32                s = <<-EOS.gsub(/^\t{3}/, "") 
     33                        lambda {|al| 
     34                                args = [#{(1...self.arity).inject(""){|r,i|r<<"a#{i}, "}}al] 
     35                                self[*args] 
     36                        } 
     37                EOS 
     38                instance_eval (1...self.arity).inject(s) {|r,i| 
     39                        <<-EOS.gsub(/^\t{4}/, "") 
     40                                lambda {|a#{self.arity-1-i+1}| 
     41                                        #{r} 
     42                                } 
     43                        EOS 
     44                } 
     45        end 
     46 
     47        def curry1 
     48                s = self 
     49                lambda {|x| 
     50                        lambda {|*args| 
     51                                s[*([x]+args)] 
     52                        } 
     53                } 
     54        end 
     55end 
     56 
     57S = lambda {|x, y, z| x[z][y[z]] }.curry 
     58K = lambda {|x, y| x }.curry 
     59I = lambda {|x| x } # S[K][K] 
     60 
     61 
  • lang/ruby/chokan/trunk/plugins/js_eval.rb

    r283 r2004  
    1313        def on_privmsg(prefix, channel, message) 
    1414                case message 
    15                 when /^js (.+)$/i 
     15                when /^\?js (.+)$/i 
    1616                        code = Regexp.last_match[1].taint 
    1717                        js_eval(code, channel)