跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 刚学不久 Ruby 的小成果,分享一个写脑图的 DSL
未分類
2020 年 7 月 24 日

刚学不久 Ruby 的小成果,分享一个写脑图的 DSL

刚学不久 Ruby 的小成果,分享一个写脑图的 DSL

資深大佬 : Mark24 7

背景

刚学不久 Ruby 的小成果,分享一个写脑图的 DSL

Gems 上看了一些,DSL 不够简单。直接用 Graphviz 或者用 Ruby 接入的接口,都略显复杂。

借鉴了 PlantUML 对 mindmap 的 DSL 语法。 语法简单,迅速表达。

地址

Github:https://github.com/Mark24Code/mini_mindmap

Gem: https://gems.ruby-china.com/gems/mini_mindmap

DSL

require "mini_mindmap"  name = 'mindmap' # filename  output = {   format: 'png',   dir: "#{Dir.home}/mindmap" # output dir }  # online  dsl = %Q{   * MiniMindmap   ** name   ** DSL   ** output   *** dir   *** format }  demo = MiniMindmap::Mindmap.new(name,dsl,output)  demo.export # export files to dir  

输出

刚学不久 Ruby 的小成果,分享一个写脑图的 DSL

大佬有話說 (8)

  • 主 資深大佬 : Mark24

    刚熟悉 Ruby 一周,目前功能比较简单。哈哈,后面有空再加。

  • 資深大佬 : crella

    路过,支持。顺便,本站讨论 Ruby 的帖子都不怎么热门。

  • 主 資深大佬 : Mark24

    @crella

  • 資深大佬 : msg7086

    可…这不是 DSL 啊…

  • 主 資深大佬 : Mark24

    @msg7086 哈哈,为啥不是?

    DSL 也分,内部和外部 DSL 。这个实现了是以来 Ruby 去实现的,没有大动干戈去做编译器什么的。

    Ruby 也鼓励构建这种内部 DSL 。

    一方面可以导入 gem 包传给他解决,在 ruby 里调用它。 另一方面,我觉得额外实现比较好,我自己本地实现了一个读取只写内容的文件,直接转出结果。只看文件本身就是 DSL 。翻译并构建的 Ruby 脚本看起来就像是编译器。

    差不多呀。哈哈

  • 資深大佬 : msg7086

    我懂你的意思了。
    你说的 DSL 是指设计了一个 DSL 然后用 Ruby 写了一个 Parser 。
    我以为你说的是 Ruby DSL 编程方式。

  • 主 資深大佬 : Mark24

    @msg7086 可以分享下你说的 Ruby DSL 的编程方式么? 😀

  • 資深大佬 : msg7086

    @Mark24 比如说用类似 pipeline 的语法设计一个类似 Rake 的 DSL 。

    https://gist.github.com/msg7086/4d4f9c7d86fa6d32cc096b4a5374d654

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具