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

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

以前学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之类的服务器访问

共收到 12 条回复

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

新手入门使用…

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

rocLv 回复

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

Rei 回复

确实不能误导新手

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

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

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

gaicitadie 回复

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

rocLv 回复

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

盖茨他爹。。。

gaicitadie 回复

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

dfzy5566 回复

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

gaicitadie 回复

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

dfzy5566 回复

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

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