38
Make your own Gem 林政億 Jimmy

Make your own gem

  • Upload
    -

  • View
    258

  • Download
    4

Embed Size (px)

Citation preview

Make your own Gem林政億 Jimmy

Gem 介紹

● bundle 工具● gem 的原理及如何使用● 如何打包一個gem● 打包一個 Assets gem

Bundle 簡介

● http://bundler.io/● 是管理Gem相依性的工具,執行bundle install時,會根據

應用程式目錄中Gemfile的設定,檢查指定的Gem與相依套件是否已安裝

What is Gemfile ● Gemfile 是用來管理Gem的檔案,應用程式會使用的

Gem,一定要在Gemfile中設定,預設Rails Project 產生的都會連到 https://rubygems.org

● 可以使用 bundle init 產生 gemfile

What is Gemfile

bundle install & bundle update● bundle install 連線伺服器,會檢查Gem更新與相依性,必

要時下載安裝,最後應用程式使用了哪些Gem與版本,會記錄在Gemfile.lock之中,如果Gemfile有變動,執行bundle install會查看Gemfile.lock,瞭解已安裝了哪些Gem,僅安裝更新的Gem,並將新使用到的Gem資訊記錄至Gemfile.lock。

bundle update● 可以執行bundle update gemname指定更新Gem,如果僅

執行bundle update,就會重新確認Gem更新與相依性,重新產生Gemfile.lock。

Ruby Gem

Ruby Gem

簡單的說就是一個 ruby gem的套件管理平台

官方網站: https://rubygems.org/

Ruby Gem● gem install [gemfile name]● gem uninstall [gemfile name]● gem search [gemfile name] ● gem search [gemfile name] -d● gem list● gem server ●

Ruby Gems Toolbox● https://www.ruby-toolbox.com/

Gem Environment

Where is Gems● 存放在 ruby 的目錄的 gems 裡● 例如使用 rvm 來管理 ruby

○ /Users/xxx/.rvm/gem/ruby-xxx/gems○ 每個 ruby 版本都會存放一份這些 gems

Rails 中如何使用 gem● 設定在 gemfile 中● 使用的方式如下

○ gem 'rails'○ gem 'rails' ,'4.1.6'○ gem 'nokogiri', :git => 'https://github.com/tenderlove/nokogiri.git', :

branch => '1.4'○ gem 'extracted_library', :path => './vendor/extracted_library'

Make your own Gem

Make your own Gem

1. bundle gem firstGem2. 修改 firstGem.gemspec3. 修改 lib/firstGem.rb4. gem build FirstGem.gemspec5. 測試 gem

Step 1 : bundle gem firstGem

Step 2 : 修改 firstGem.gemspec

Step 3 : 修改 lib/ firstGem.rb

Step 4 : gem build FirstGem.gemspec

Step 5 : 測試gem install firstGem

查看安裝 gem 的內容

Step 5 : 測試

使用 irb 測試

將 Gem push 到 RubyGem將key存到本機中

push gem 到 rubygem

將 Gem push 到 RubyGem

Make your assets Gem

試著來打包 TimeUtils

Assets 位置

● app/assets● lib/assets● vender/assets

只要放到這三個其中一個,就可以直接在 application.js 或 application.css 中直接 require使用了

1. vendor/assets/javascripts2. vendor/assets/stylesheets3. app/assets/javascripts4. app/helpers/

與 assets 相關多出來的檔案

Step1: 把 assets 放到project在 vendor/assets/javascripts 載入 jquery.timeago.js官方JS 位置: https://github.com/rmm5t/jquery-timeago

Step2: 載入JS在 app/assets/javascripts 新增 timeago.js

Step3: 撰寫 helper

Step4: 使用 Engine

Step5: 修改 gemspec

Step6: 測試

1. 在 Rails Project 中 的 application.js 載入 timeago

2. Gemfile 載入 gem 的位置

The End