Submit Search
Upload
How to make gem
•
Download as PPTX, PDF
•
2 likes
•
696 views
Ken Iiboshi
Follow
How to make library of ruby.
Read less
Read more
Technology
Education
Report
Share
Report
Share
1 of 18
Download now
Recommended
(工事中) Git の仕組み
(工事中) Git の仕組み
Teloo
MogileFSの利用と高速化
MogileFSの利用と高速化
kan
MogileFS+Perlbalな運用形態におけるX-REPROXY-URLの活用と、X-REPROX-CACHE-FORを使ったサーバレスポンスの高速化、サーバの負荷軽減について
Yesod on Heroku
Yesod on Heroku
Takahiro Himura
(祝) Yesod 1.0 勉強会 用のスライドです http://partake.in/events/76f421e7-c3ca-49bf-b28e-f9ede8032f0b
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
Redisいれてみた
Redisいれてみた
Yoshida Takumi
redis入れてみた
Nio2
Nio2
Appresso Engineering Team
OpenStack + Common Lisp
OpenStack + Common Lisp
irix_jp
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
弘毅 露崎
Recommended
(工事中) Git の仕組み
(工事中) Git の仕組み
Teloo
MogileFSの利用と高速化
MogileFSの利用と高速化
kan
MogileFS+Perlbalな運用形態におけるX-REPROXY-URLの活用と、X-REPROX-CACHE-FORを使ったサーバレスポンスの高速化、サーバの負荷軽減について
Yesod on Heroku
Yesod on Heroku
Takahiro Himura
(祝) Yesod 1.0 勉強会 用のスライドです http://partake.in/events/76f421e7-c3ca-49bf-b28e-f9ede8032f0b
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
Redisいれてみた
Redisいれてみた
Yoshida Takumi
redis入れてみた
Nio2
Nio2
Appresso Engineering Team
OpenStack + Common Lisp
OpenStack + Common Lisp
irix_jp
RとSQLiteで気軽にデータベース作成
RとSQLiteで気軽にデータベース作成
弘毅 露崎
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
Light talk about shared buffer of PostgreSQL, and related module such as pg_prewarm, pg_buffercache.
R以外の研究ツール
R以外の研究ツール
弘毅 露崎
データベースのお話
データベースのお話
Hidekazu Tanaka
第24回R勉強会@東京(#TokyoR)で発表したスライド
Capistrano
Capistrano
Yasuharu Fukuda
勉強会で使ったやつ
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
Kodai Terashima
2010年9月11日 オープンソースカンファレンス2010 Tokyo/Fall
Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4
ichikaway
第4回 cakephp勉強会 LT発表資料
OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料
Chika SATO
2013年2月23日のオープンソースカンファレンス2013 Tokyo/Spring のセッション「PostgreSQL バックアップ&リカバリ入門」での資料です。
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Daisuke Ikeda
2017/3/31 Tech-Cirlce Itamae&Serverspecの会でのLT資料。
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
OSSラボ株式会社
Openstack/Icehouseでの、Ceph/Firefly分散ストレージ設定ガイド by オープンクラウド実証実験タスクフォース(OCDET) ストレージ基盤 WG
Version管理 1
Version管理 1
hakoika-itwg
WDD2012_SC-004
WDD2012_SC-004
Kuninobu SaSaki
Windows Developer Daysで使ったHadoop on Windows (Server|Azure)紹介資料です。「設計・実装・活用法」というタイトルとは裏腹にただの概要紹介になってしまったので、もう少しましなものを作りたいと思っています・・・
ぼくの考えた最強のpipeline構成
ぼくの考えた最強のpipeline構成
Naoto Nishizono
Logstashのpipeline構成に関する提案
Cephのベンチマークをしました
Cephのベンチマークをしました
OSSラボ株式会社
Ceph FS/RBDの性能比較
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
kyoto.py in 高槻
New configurationoferogamescaperev3
New configurationoferogamescaperev3
hiroin0
ErogameScapeのCentOS8への移行の際の構成について
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?
Sho Hashimoto
lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)
Kazuhiro Nishiyama
前回の発表以降の lilo.linux.or.jp の管理の話をします。
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
airtoxin Ishii
Fabric
Hadoop on LXC
Hadoop on LXC
俊夫 森
core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21
Kei Tsuji
Presentation at Shibuya.lisp #21 Brief introduction on transducers + core.async. Mostly Japanese
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
Hitoshi Kurokawa
Bundler kanazawa.rb meetup #2 2012/09/19
Ruby In Wheezy
Ruby In Wheezy
Youhei SASAKI
第69回関西Debian勉強会で Debian 7.0 Wheezy 以降の Ruby 環境についてお話しました。
More Related Content
What's hot
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
Masahiko Sawada
Light talk about shared buffer of PostgreSQL, and related module such as pg_prewarm, pg_buffercache.
R以外の研究ツール
R以外の研究ツール
弘毅 露崎
データベースのお話
データベースのお話
Hidekazu Tanaka
第24回R勉強会@東京(#TokyoR)で発表したスライド
Capistrano
Capistrano
Yasuharu Fukuda
勉強会で使ったやつ
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
Kodai Terashima
2010年9月11日 オープンソースカンファレンス2010 Tokyo/Fall
Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4
ichikaway
第4回 cakephp勉強会 LT発表資料
OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料
Chika SATO
2013年2月23日のオープンソースカンファレンス2013 Tokyo/Spring のセッション「PostgreSQL バックアップ&リカバリ入門」での資料です。
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Daisuke Ikeda
2017/3/31 Tech-Cirlce Itamae&Serverspecの会でのLT資料。
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
OSSラボ株式会社
Openstack/Icehouseでの、Ceph/Firefly分散ストレージ設定ガイド by オープンクラウド実証実験タスクフォース(OCDET) ストレージ基盤 WG
Version管理 1
Version管理 1
hakoika-itwg
WDD2012_SC-004
WDD2012_SC-004
Kuninobu SaSaki
Windows Developer Daysで使ったHadoop on Windows (Server|Azure)紹介資料です。「設計・実装・活用法」というタイトルとは裏腹にただの概要紹介になってしまったので、もう少しましなものを作りたいと思っています・・・
ぼくの考えた最強のpipeline構成
ぼくの考えた最強のpipeline構成
Naoto Nishizono
Logstashのpipeline構成に関する提案
Cephのベンチマークをしました
Cephのベンチマークをしました
OSSラボ株式会社
Ceph FS/RBDの性能比較
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
max747
kyoto.py in 高槻
New configurationoferogamescaperev3
New configurationoferogamescaperev3
hiroin0
ErogameScapeのCentOS8への移行の際の構成について
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?
Sho Hashimoto
lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)
Kazuhiro Nishiyama
前回の発表以降の lilo.linux.or.jp の管理の話をします。
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
airtoxin Ishii
Fabric
Hadoop on LXC
Hadoop on LXC
俊夫 森
core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21
Kei Tsuji
Presentation at Shibuya.lisp #21 Brief introduction on transducers + core.async. Mostly Japanese
What's hot
(20)
PostgreSQL共有バッファと関連ツール
PostgreSQL共有バッファと関連ツール
R以外の研究ツール
R以外の研究ツール
データベースのお話
データベースのお話
Capistrano
Capistrano
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
オープンソースでシステム監視!Zabbix 1.8の機能と簡単インストール手順の紹介
Cakephp勉強会@tokyo #4
Cakephp勉強会@tokyo #4
OSC東京2013/Spring_JPUG資料
OSC東京2013/Spring_JPUG資料
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Serverspecを自分好みにアレンジ スクリーンショットで証跡保存を撲滅-
Openstack+Ceph設定ガイド
Openstack+Ceph設定ガイド
Version管理 1
Version管理 1
WDD2012_SC-004
WDD2012_SC-004
ぼくの考えた最強のpipeline構成
ぼくの考えた最強のpipeline構成
Cephのベンチマークをしました
Cephのベンチマークをしました
Fabricでサーバー管理をDRYにしよう
Fabricでサーバー管理をDRYにしよう
New configurationoferogamescaperev3
New configurationoferogamescaperev3
serverspecみんなで集めて(゚Д゚)ウマー?
serverspecみんなで集めて(゚Д゚)ウマー?
lilo.linux.or.jp の話 (2017年8月)
lilo.linux.or.jp の話 (2017年8月)
2日間Fabricを触った俺が 色々解説してみる
2日間Fabricを触った俺が 色々解説してみる
Hadoop on LXC
Hadoop on LXC
core.async+transducers Shibuya.lisp #21
core.async+transducers Shibuya.lisp #21
Similar to How to make gem
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
Hitoshi Kurokawa
Bundler kanazawa.rb meetup #2 2012/09/19
Ruby In Wheezy
Ruby In Wheezy
Youhei SASAKI
第69回関西Debian勉強会で Debian 7.0 Wheezy 以降の Ruby 環境についてお話しました。
コード読経会報告書
コード読経会報告書
Masahiko Toyoshi
Debian パッケージングチュートリアル
Debian パッケージングチュートリアル
Nozomu KURASAWA
packaging-tutorialパッケージのチュートリアルの日本語訳 翻訳レビュー用にここにアップロード 2015-3-31 version 0.15 翻訳
Mac_Terminal_ver1.0
Mac_Terminal_ver1.0
Satoshi Kume
Mac_Terminal_ver1.0 presented by S. Kume
Git (実践入門編)
Git (実践入門編)
Naomichi Yamakita
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
Goh Matsumoto
Minami.rb
Ruby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇Ruby
Youhei SASAKI
関西闇Ruby会議にお邪魔して、 Debian の次期リリース, Wheezy における Ruby 環境について、いつも通り雑談してきました。 gem2deb を皆使ってみて下さい!!
(工事中) Git の仕組み
(工事中) Git の仕組み
Teloo
Java 7
Java 7
Tetsuya Yoshida
アプレッソ x ラグザイア 技術者交流会で発表した Java 7 の紹介資料
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~
cyberblack28 Ichikawa
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
Yohei Yasukawa
Railsガイド解説セミナーのスライド資料です Railsガイド: http://railsguides.jp/ Railsガイド解説セミナー: http://railsguides.jp/options.html#seminar 【関連リンク】 Railsチュートリアル: http://railstutorial.jp/ Railsチュートリアル解説セミナー: http://railstutorial.jp/seminars Railsスクリーンキャスト: http://railstutorial.jp/screencasts Railsビギナーズ倶楽部: http://coedo-rails.doorkeeper.jp/
Management of Gems using Bundler.
Management of Gems using Bundler.
Tamotsu Furuya
Bundlerを利用したGem管理
はじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリ
Masahiro Tomita
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
Tsuyoshi Yamada
Git 実践入門
Git 実践入門
Yasutaka Kanzaki
既存のリポジトリを自分のGitHubのアカウントのリポジトリに登録するまでの流れを説明。
Similar to How to make gem
(16)
Bundler kanazawa.rb meetup #2 2012/09/19
Bundler kanazawa.rb meetup #2 2012/09/19
Ruby In Wheezy
Ruby In Wheezy
コード読経会報告書
コード読経会報告書
Debian パッケージングチュートリアル
Debian パッケージングチュートリアル
Mac_Terminal_ver1.0
Mac_Terminal_ver1.0
Git (実践入門編)
Git (実践入門編)
Rails初心者レッスン lesson1 3rd edition
Rails初心者レッスン lesson1 3rd edition
Ruby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇Ruby
(工事中) Git の仕組み
(工事中) Git の仕組み
Java 7
Java 7
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~
LinAction Theme LPICの問題を解いてみる~インストールとパッケージ管理編~
Rails解説セミナー: リリースノート解説編
Rails解説セミナー: リリースノート解説編
Management of Gems using Bundler.
Management of Gems using Bundler.
はじめてのRuby拡張ライブラリ
はじめてのRuby拡張ライブラリ
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
20130328 第03回福岡debian勉強会 debianパッケージ情報と依存関係の可視化
Git 実践入門
Git 実践入門
Recently uploaded
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
osamut
Hyper-V and SCVMM
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
Ce Zheng, Wenhan Wu, Chen Chen, Taojiannan Yang, Sijie Zhu, Ju Shen, Nasser Kehtarnavaz, Mubarak Shah, "Deep Learning-Based Human Pose Estimation: A Survey" arXiv2020 https://arxiv.org/abs/2012.13392
生成AIがもたらすコンテンツ経済圏の新時代 The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代 The New Era of Content Economy Brought by Generative AI
Osaka University
、コンテンツ制作の主体をプロのクリエーターからユーザーへと移行させている現状をご存じの方も多いでしょう。現在、画像コンテンツ制作現場では生成AIがクリエーターを支援するツールとして利用されています。セミナーでは、画像生成における自動化の境界についての議論が予定されています。 AIの利用には著作権や倫理的な問題も伴いますが、クリエーターとAIが共存し、センシング技術と統合することで新しい形のコンテンツが生み出されることが期待されています。
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
azuma satoshi
設計ナイト2024にて発表した内容になります。
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
嶋 是一 (Yoshikazu SHIMA)
進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~ 2024/6/12~14まで幕張メッセで開催されました、インターロップ併設アプリジャパンの展示会場内ROOM Bで、10:30~11:10の枠で登壇させてもらいましたセッション資料を公開します。
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
Generating Automatic Feedback on UI Mockups with Large Language Modelsを和訳紹介したものです
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
tazaki1
HVAC2024第1回 技術講習会 スライド
Recently uploaded
(7)
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
ハイブリッドクラウド研究会_Hyper-VとSystem Center Virtual Machine Manager セッションMM
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
生成AIがもたらすコンテンツ経済圏の新時代 The New Era of Content Economy Brought by Generative AI
生成AIがもたらすコンテンツ経済圏の新時代 The New Era of Content Economy Brought by Generative AI
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
ロジックから状態を分離する技術/設計ナイト2024 by わいとん @ytnobody
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
「進化するアプリ イマ×ミライ ~生成AIアプリへ続く道と新時代のアプリとは~」Interop24Tokyo APPS JAPAN B1-01講演
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
Humanoid Virtual Athletics Challenge2024 技術講習会 スライド
How to make gem
1.
How to make
gem ライブラリの作り方
2.
最初に必要なもの Ruby $ ruby
-v ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-darwin13.0.0] gem (Ruby標準添付) $ gem -v 2.1.11 bundler $ gem install bundler $ bundle –v Bundler version 1.5.2 Git $ git –-version git version 1.8.3.4 (Apple Git-47)
3.
Gemの主要ファイル構成 Path Description bin 実行可能ファイル配置パス ここに配置されたファイルが実行ファイルとして配置される lib このディレクトリが$(Rubyライブラリの探索パス)に追加される sample (ライブラリ名) sample.rb spec lib/sample.rbからrequireするファイル群を配置 require “sample”でロードされるファイル version.rb バージョンを記載するファイル テスト用のを格納するディレクトリ(RSpecの場合) spec_helper.rb Rspecの共通設定を定義するファイル Gemfile bundlerで依存解決を解決する為の設定ファイル Rakefile rakeタスクの定義ファイル sample.gemspec ライブラリのメタデータや設定を定義するファイル
4.
ひな形の作成 以下のコマンドでライブラリのひな形を作成 $ bundle gem
sample create sample/Gemfile create sample/Rakefile create sample/LICENSE.txt create sample/README.md create sample/.gitignore create sample/sample.gemspec create sample/lib/sample.rb create sample/lib/sample/version.rb
5.
gemspecの編集1 ライブラリのメタデータを入力する。(以下はsample.gemspecの一部) Gem::Specification.new do |spec| spec.name =
"sample" spec.version = Sample::VERSION spec.authors = ["i2bskn"] spec.email = ["i2bskn@gmail.com"] spec.summary = %q{Sample library} spec.description = %q{Gem for first time.} spec.homepage = "https://github.com/i2bskn/sample" spec.license = "MIT” # snip end
6.
gemspecの編集2 ライブラリの設定を入力する。(以下はsample.gemspecの一部) 今回は変更しない。 Gem::Specification.new do |spec| #
snip spec.files = `git ls-files -z`.split("x0") spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) } spec.test_files = spec.files.grep(%r{^(test|spec|features)/}) spec.require_paths = ["lib"] # snip end files : 全てのファイルの配列。 executables : 実行ファイル名の配列。bin以外の場所に配置する場合は変更。 test_files : テスト用ファイルの配列。test,spec,features以外に配置する場合は変更 require_paths : $:(Rubyのライブラリ探索パス)に追加するディレクトリ。
7.
gemspecの編集3 ライブラリの依存関係にRSpecを追加する。(以下はsample.gemspecの一部) RSpec以外も必要な場合は適宜追加する。 Gem::Specification.new do |spec| #
snip spec.add_development_dependency "bundler", "~> 1.3" spec.add_development_dependency "rake" spec.add_development_dependency "rspec" end add_dependency “ライブラリ名” : 実行時に必要な依存関係の定義。 add_development_dependency “ライブラリ名” : 開発時に必要な依存関係の定義。
8.
依存ライブラリのインストール ライブラリのルートディレクトリに移動して以下のコマンドを実行する。 $ bundle install
--path .bundle .bundleというディレクトリが作成される。 .bundle/configはbundleの設定ファイルで2回目以降はオプションの指定が不要。 .bundle/rubyに依存関係のライブラリがインストールされる。 .bundle/rubyにインストールされたライブラリは他のシステムに影響を与えない。 .bundle/rubyにインストールされたライブラリのコマンドはbundle execを付け る事で実行する事が可能。(rspecは例) $ bundle exec rspec
9.
テストコードの作成1 テスト用ディレクトリとspec_helper.rbの作成 $ mkdir -p
spec/sample $ touch spec/spec_helper.rb spec_helper.rbのコードを記述する。 require “sample” RSpec.configure do |config| config.order “random” end
10.
テストコードの作成2 テストコードの作成 $ touch spec/sample/foo_spec.rb ここではRSpecの解説は省きます。 require
"sample" describe Sample::Foo do describe "#greet" do it "returns greeting message" do expect(Sample::Foo.new.greet).to eq("Hello World") end end end
11.
Rakefileの編集 Rakefileにテストを実行するタスクを定義してデフォルトタスクにする。 require "bundler/gem_tasks" require "rspec/core/rake_task" desc
"Run all specs" RSpec::Core::RakeTask.new(:spec) do |t| t.rspec_opts = ["-c", "-fs"] end task :default => :spec
12.
テストの実行 テストを実行してみる。 $ bundle exec
rake spec /path/to/ruby -S rspec ./spec/sample/foo_spec.rb -c –fs /path/to/sample/spec/sample/foo_spec.rb:3:in `<top (required)>': uninitialized constant Sample::Foo (NameError) Sample::Fooクラスが定義されていない為、NameErrorがthrowされる。 rakeタスクでなくrspecコマンドでも実行可能。 $ bundle exec rspec /Users/iiboshiken/work/sample/spec/sample/foo_spec.rb:3:in `<top (required)>': uninitialized constant Sample::Foo (NameError)
13.
ライブラリの実装 Sample::Fooクラスの作成。 $ touch lib/sample/foo.rb module
Sample class Foo def greet "Hello World" end end end Sample::Fooクラスをsample.rbからrequireする。(以下はlib/sample.rb) require "sample/version" require "sample/foo"
14.
テストの再実行 テストを再度実行する。 $ bundle exec
rake spec /path/to/ruby -S rspec ./spec/sample/foo_spec.rb -c -fs Sample::Foo #greet returns greeting message Finished in 0.00252 seconds 1 example, 0 failures 「1 example, 0 failures」なのでテスト成功。
15.
実行ファイルの追加 binディレクトリとコマンドの作成 $ mkdir bin $
touch bin/sample $ chmod 755 bin/sample コマンドを実装。 #!/usr/bin/env ruby require "sample" puts Sample::Foo.new.greet 今回は実行ファイルのテストは書かないが、実際はテストした方が良い。
16.
Commitとビルド ひと通り実装したのでコミットしておく。 リモートリポジトリが無い場合はpushしなくてもよい。 $ git add
--all $ git commit -m “first commit” $ git push -u origin master ビルドしてインストールする。 $ bundle exec rake build $ bundle exec rake install グローバルにインストールする場合はgemコマンドを使う。 $ bundle exec rake build $ cd pkg $ gem install -l sample
17.
コマンドの実行 インストールしていない場合 $ ruby
-I lib bin/sample Hello World rake installした場合 $ bundle exec sample Hello World gem install -l sampleした場合 $ sample Hello World
18.
Fin
Download now