1 of 51

使用 Rails Engine

製作開源套件

20200802 卡米哥

2 of 51

卡米哥

  • 卡米狗的作者
  • 人人可作卡米狗的作者
  • LINE 官方認證的 API 專家 LINE API Expert
  • 目前在維護知名 Node.js 聊天機器人框架 Bottender
  • 開發基於 Rails 的聊天機器人框架 Kamigo

3 of 51

今天的內容

  • 使用 Rails Engine 建立一個新的套件
  • 設定套件的依賴關係
  • 把自己常用的功能逐步移植到套件內
  • 測試套件是否正常
  • 發布套件
  • 介紹聊天機器人框架 Kamigo

4 of 51

使用 Rails Engine 建立一個新的套件

5 of 51

6 of 51

7 of 51

8 of 51

9 of 51

10 of 51

11 of 51

12 of 51

設定套件的依賴關係

13 of 51

14 of 51

15 of 51

16 of 51

17 of 51

18 of 51

想要讓 rails 5 也能裝這個套件的話

19 of 51

20 of 51

加一個依賴需要修改哪些檔案呢?

21 of 51

22 of 51

23 of 51

lib/rails_engine_test.rb

24 of 51

把自己常用的功能逐步移植到套件內

25 of 51

先搞一個 rails 專案出來

  • rails new rails_test
  • rails db:create
  • rails s

26 of 51

加點功能

  • rails g controller home
  • 新增 app/views/home/index.html.erb
  • 修改 config/route.rb

27 of 51

加點功能

  • rails g controller home
  • 新增 app/views/home/index.html.erb
  • 修改 config/route.rb

28 of 51

加點功能

  • rails g controller home
  • 新增 app/views/home/index.html.erb
  • 修改 config/route.rb

29 of 51

效果

30 of 51

把妖壽讚的 view 移植到套件裡

  • 把 app/views/home/index.html.erb 移到套件裡的相同位置
  • 安裝套件

31 of 51

測試套件是否正常

32 of 51

效果

33 of 51

改個字

34 of 51

效果

35 of 51

把 controller 也移植到套件裡

  • 把 app/controllers/home_controller.rb 移到套件裡的相同位置

36 of 51

效果

37 of 51

把 routes.rb 也移植到套件裡

  • 把 routes.rb 裡的 root to: 'home#index' 移動到套件內的 routes.rb

38 of 51

效果

39 of 51

Rails Engine 的特性

  • 長得和 rails 差不多
  • 用起來也和 rails 差不多
  • 除了 app/javascript

40 of 51

發布套件

41 of 51

發布流程

  • 改版號
  • gem build
  • gem push

42 of 51

發布流程

  • 改版號
  • gem build
  • gem push

43 of 51

發布流程

  • 改版號
  • gem build
  • gem push

44 of 51

發布流程

  • 改版號
  • gem build
  • gem push

45 of 51

衍生閱讀

46 of 51

47 of 51

介紹聊天機器人框架 Kamigo

48 of 51

Kamigo 簡介

  • Kamigo 是一個基於 Rails 的 Chatbot MVC Framework。
  • Kamigo 讓你開發 Chatbot 就跟開發網站一樣容易,甚至可以同時開發網站以及 Chatbot 介面,共用 Controller 和 Model,只需要針對 Chatbot 實作 View。
  • Kamigo 提供了重要的 generator,讓你開發聊天機器人時可以快的跟飛一樣。

49 of 51

聊天機器人也可以是網站

50 of 51

Kamigo 與他的好夥伴

Kamigo

Kamiflex

Kamiliff

整合網頁與聊天機器人的流程

針對 LINE Bot 當中的

Flex Message 設計的語法糖

整合網頁與 LIFF 的流程

51 of 51

開發 LINE Bot 請用 Kamigo

感謝聆聽