Australian Gem Industry Association, Ltd. - Australian Opals & Gemstones-Natures Own Fireworks
Make your own gem
Transcript of Make your own 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
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● 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/
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
1. bundle gem firstGem2. 修改 firstGem.gemspec3. 修改 lib/firstGem.rb4. gem build FirstGem.gemspec5. 測試 gem
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
Step6: 測試
範例參考來源 : http://brandonhilkert.com/books/build-a-ruby-gem/?utm_source=youtube&utm_medium=web&utm_campaign=rails-engine#pricing
參考資料
http://bundler.io/v1.8/gemfile.htmlhttp://guides.rubygems.org/make-your-own-gem/#introductionhttp://asciicasts.com/episodes/245-new-gem-with-bundlerhttp://blog.xdite.net/posts/2012/01/04/how-to-pack-a-gemhttp://guides.rubygems.org/make-your-own-gem/