Gem 撸了一个一直想撸的 gem,没有框架的世界,送给 Ruby 新手

rocLv · 2018年03月22日 · 最后由 gaicitadie 回复于 2018年03月25日 · 2648 次阅读

以前学 php 的时候,一学就可以上手开发网站了。

对了,那时候还没有 Web 框架的概念(严重暴露年龄了。。。)

后来学了 Rails 以后,一直想撸一个只要会写 Ruby 就可以运行的 gem,但是总是被各种各样的理由阻碍。

好了,不废话了,直接上 Gem:

习惯了 Rails 帮我们生成文件了,但是这里需要我们手动生成一下:

$ mkdir myapp
$ cd myapp
$ touch config.ru
$ touch Gemfile

在 Gemfile 里面输入:

# Gemfile

source "https://rubygems.org"

gem "simp"

然后运行 bundle

config.ru里面输入:

require "simp"
run Simp::Application.new

接下来新建个文件 (需要以 html.erb 结尾):index.html.erb

<%
    @var = "some thing"
    puts "greet"
%>
<html>
  <head>
  </head>
  <body>
    <% @world = "china" %>
    Hello, <%= @world %>
  </body>
</html>

然后启动 web 服务器

$ rackup

然后在浏览器输入网址http://localhost:9292/index即可正常访问了

PS: 静态资源文件需通过 Nginx 之类的服务器访问

有 demo 吗,我演示一下命令注入。

新手入门使用…

假如我用 Docker 部署,你还能注入吗? 假如我把用户权限设的最低呢

rocLv 回复

可以控制容器内环境,可以拖代码,可以装木马,如果有数据库的话、可以拖库。

Rei 回复

确实不能误导新手

安全是一种观念,并不是框架能解决的

欢迎新手学习使用,不要用在生产环境

感谢楼主,我正需要这么个方案,当年写 ASP、PHP 都是上传文件直接运行,一边写代码一边刷浏览器,就这种保存后即可及时运行的方案才够酣畅淋漓。也暴露年龄了。

gaicitadie 回复

我也准备对它进行升级,参考其他框架处理一下,escape 等等

rocLv 回复

如果能处理好安全问题,性能不太差的情况下,能占据很大一块市场,即时生效这个需求永远不会过时,对 web 来说,修修补补各处细节是家常便饭,每次重启服务太影响心情了

盖茨他爹。。。

gaicitadie 回复

rails 不用每次重启服务吧,修改了 app 里面的内容刷新页面就可以。 甚至还有自动刷新的方案: gem 'guard'
gem 'guard-livereload'

dfzy5566 回复

我是说生产环境,小站都是在线开发的,一边提交代码一边刷浏览器。个人站长都有这个经历。小公司的小项目也都是这样的。

gaicitadie 回复

哦哦 还有这种操作 明白了 生产环境确实要重启的

dfzy5566 回复

这叫奋战在生产第一线,本地模拟数据总找不到产品的感觉

需要 登录 后方可回复, 如果你还没有账号请 注册新账号