• #6 楼 @chq 多谢指导!!! 确实看得有点云里雾里的,咬牙看了一半,慢慢查各种语法。。 最近已经回归到先看完 the ruby programming language 了。 请教下,做 sinatra 的开发有什么比较好的范例可以看看源码的么?我在 github 以及 ruby-china 搜了下,没太多斩获。

    多谢=)

  • 基于 Sinatra + Redis 的论坛 at 2014年01月07日

    好赞,最近正看 Sinatra 相关,有空学习下。

  • 好赞,看看现在还有的参与么。

  • #4 楼 @hhuai 恩啦,之前是边看源码,不懂再查的。 先扫一遍语法再说啦。

    #3 楼 @Ddl1st 多谢各位啦

  • #1 楼 @hhuai 谢谢~

    真的好面向对象,原来 Proc 也可以由方法!不过还是没太明白你的意思。有不少疑问,我列一下吧

    1.engine 方法是指?另外 each ==block call 也不太理解额。

    2.源代码里 def block.each; yield(call) end 这个 yield 的参数 call 哪里来的呢?

    3.这里将 body 赋值为一个 block,是在哪种情况下出现的啊?body 不是数据么?

    看了下 response.rb 的代码,相关的应该是这一块了:

    def each(&callback)
      @body.each(&callback)
      @writer = callback
      @block.call(self)  if @block
    end
    

    evaluation is deferred until the body is read with #each.

    指的就是这个 each 调用吧?

    在源码里面跟踪这几个方法的调用真的很麻烦啊,方法名这么普通常见的 each body……。><... 不知道这个 each 的调用参数里的 &callback 是些什么东西。好头大

  • 作为初学者,正在看 sinatra 的代码-,-。发现好多语法好高级,都得查,进度好慢。囧。