我对这件事的运作方式很好奇.
在要求'sinatra'之后
然后我可以在顶级范围内调用get().
在深入研究源代码后,我发现了这个get()结构
module Sinatra
class << self
def get
...
end
end
end
Run Code Online (Sandbox Code Playgroud)
知道类<< self是打开self对象的单例类定义并在里面添加get(),所以它开始有意义.
但唯一遗漏的是我无法理解的是它在模块Sinstra中,如何在不使用Sinatra :: resolution操作的情况下调用get()?
当我输入时self
,我得到一个返回值main
.我做了这个测试:
main2 = Object.new
Run Code Online (Sandbox Code Playgroud)
然后我可以调用main2
,它返回一些东西,但是当我调用时main
,它会引发一个未定义的变量错误.这是怎么发生的?
以下是我在其他网站上发现的关于顶级环境如何工作的假设:
class Object
Object.new.instance_eval do
def self.to_s
"main"
end
private
##
# Your program gets inserted here...
##
end
end
Run Code Online (Sandbox Code Playgroud)
对于我,这说得通.
这是一个可能消耗大量CPU使用的解决方案(从本文中窃取):
我的ubuntu 12 ec2服务器有所不同
而是使用top -ln
我应该使用top -bn1
,
这是我的相关.tmux.conf
文件
set -g status-right '#[fg=yellow]#[(getCpuUsage.sh)]'
它实际上每2秒调用一次并输出一大堆信息,我认为应该有一个较少的CPU消耗方式或使用一些标志来限制顶部只有cpu uage的输出
我是Codeigniter的新手,我希望在验证失败后重定向到控制器:
if(!validate)
{
redirect('/poll/list');
}
Run Code Online (Sandbox Code Playgroud)
但我需要传递一个变量,$error
以显示一些错误指示,但我不知道如何将参数传递给redirect
方法中URL helper
,并且想法?
以下代码unbalanced bracket error
在第4行给出了我的信息
%ul
- @sentences.each do |sentence|
%li
%a{id:"s-#{sentence.id}",
href:"/sentence/#{sentence.id}",
'data-type' => 'text',
'data-url' => "/sentence/#{sentence.id}",
'data-toggle' => 'manual'
}= sentence.content
%a{href:'#'}
%i.icon-pencil
Haml::SyntaxError at /user/1/sentence
Unbalanced brackets.
file: sentences.haml location: nil line: 4
Run Code Online (Sandbox Code Playgroud)
任何的想法?
我是Vim的新手,抱歉这个新手问题.我正在使用vim插件vim-indent-guides
切换插件的默认映射是<leader>ig
.当vim-started时,应该进行什么修改才能使其切换
我已经阅读了一些关于使Square成为Rectangle类的继承类的做法的一些文章,这说明它违反了LSP(Liskov替换原则).我仍然没有得到它,我在Ruby中做了一个示例代码:
class Rectangle
attr_accessor :width, :height
def initialize(width, height)
@width = width
@height = height
end
end
class Square < Rectangle
def initialize(length)
super(length, length)
end
def width=(number)
super(number)
@height = number
end
def height=(number)
super(number)
@width = number
end
end
s = Square.new(100)
s.width = 50
puts s.height
Run Code Online (Sandbox Code Playgroud)
谁能告诉我它有什么问题?
我发现--
可以添加一个小停顿,如数字倒计时:
10--9--8--7--6--5--4--3--2--1--
Run Code Online (Sandbox Code Playgroud)
但我不知道如何添加一个长暂停,如1秒?
任何的想法?
Mozilla在线文档很棒,但有时我没有互联网连接和o'reilly javascript权威指南中的参考也很棒,但缺乏方便的搜索功能.
ruby ×3
codeigniter ×1
haml ×1
javascript ×1
linux ×1
liskov-substitution-principle ×1
oop ×1
shell ×1
sinatra ×1
tmux ×1
unix ×1
vim ×1