GitHub
- [ https://github.com/shu0115/omniauth-scaffold ]
RubyGems.org
- [ https://rubygems.org/gems/omniauth-scaffold ]
-----
参考ページ:
Rubyist Magazine - Jeweler で作る Rails 用 RubyGems パッケージとそのテストについて
- [ http://jp.rubyist.net/magazine/?0037-CreateRailsPlugin ]
seyhunak/twitter-bootstrap-rails
- [ https://github.com/seyhunak/twitter-bootstrap-rails ]
Module: Thor::Actions(Rails::Generators::Baseの継承元)
- [ http://textmate.rubyforge.org/thor/Thor/Actions.html ]
wycats/thor
- [ https://github.com/wycats/thor ]
-----
◆作業ディレクトリ移動
cd ~/labo
◆Jewelerインストール
gem install jeweler
-----
Fetching: jeweler-1.8.3.gem (100%)
Successfully installed jeweler-1.8.3
1 gem installed
-----
◆GitHubユーザ/トークン設定
git config --global github.user shu0115
git config --global github.token 6ef8395fecf207165f1a82178ae1b984
-----
※ダミー=>「6ef8395fecf207165f1a82178ae1b984」
参考:Issue #230: No github.user found -- no github token because github API moving!! · technicalpickles/jeweler
=> [ https://github.com/technicalpickles/jeweler/issues/230 ]
◆rubygems.org作成予定パッケージ名未登録確認
http://rubygems.org/
=> Search gems... [ omniauth-scaffold ]
-----
search for omniauth-scaffold
No entries found
-----
◆パッケージ雛形作成
jeweler --rspec omniauth-scaffold
-----
create .gitignore
create Rakefile
create Gemfile
create LICENSE.txt
create README.rdoc
create .document
create lib
create lib/omniauth-scaffold.rb
create spec
create spec/spec_helper.rb
create spec/omniauth-scaffold_spec.rb
create .rspec
Jeweler has prepared your gem in ./omniauth-scaffold
-----
◆ディレクトリ移動
cd omniauth-scaffold
◆Gemfile編集
※「bundler」「rcov」コメントアウト
-----
source "http://rubygems.org"
# Add dependencies required to use your gem here.
# Example:
# gem "activesupport", ">= 2.3.5"
gem 'omniauth-twitter'
gem 'omniauth-github'
gem 'omniauth-facebook'
# Add dependencies to develop your gem here.
# Include everything needed to run rake, tests, features, etc.
group :development do
gem "rspec", "~> 2.8.0"
gem "rdoc", "~> 3.12"
# gem "bundler", "~> 1.0.0"
gem "jeweler", "~> 1.8.3"
# gem "rcov", ">= 0"
end
-----
◆bundleインストール
bundle install
◆バージョンファイル作成
rake version:write
-----
Updated version: 0.0.0
-----
◆マイナーバージョンアップ
rake version:bump:minor
-----
Current version: 0.0.0
Updated version: 0.1.0
-----
◆Rakefile修正
-----
gem.summary = %Q{TODO: one-line summary of your gem}
gem.description = %Q{TODO: longer description of your gem}
-----
↓
-----
gem.summary = "OmniAuth Scaffold"
gem.description = "Scaffold to use OmniAuth."
-----
◆パッケージビルド
rake build
-----
Successfully built RubyGem
Name: omniauth-scaffold
Version: 0.1.0
File: omniauth-scaffold-0.1.0.gem
-----
◆.gitignore編集
※「Gemfile.lock」追加
-----
Gemfile.lock
-----
◆GitHubリポジトリ作成
https://github.com/new
-----
Repository name:[ omniauth-scaffold ]
Description (optional):[ Scaffold for OmniAuth. ]
-----
◆コミット
git add . && git commit -m "create new gem"
◆GitHubへプッシュ
git push -u origin master
◆Gem内部コード作成
https://github.com/shu0115/omniauth-scaffold/tree/master/lib/generators
-----
omniauth-scaffold
lib
generators
omniauth
scaffold
templates
app
controllers
application_controller.rb
sessions_controller.rb
top_controller.rb
models
user.rb
views
layouts
application.html.erb
top
index.html.erb
config
initializers
constants.rb
local_setting.rb
omniauth.rb
db
migrate
create_users.rb
README.rdoc
scaffold_generator.rb
-----
◆gemspec作成
rake gemspec
-----
Generated: omniauth-scaffold.gemspec
omniauth-scaffold.gemspec is valid.
-----
◆Gemリビルド&コミット/プッシュ
rake build
git add . && git commit -m "update"
git push
◆ローカルGemインストール
[ ヘルプ ]
gem install -h
-----
Local/Remote Options:
-l, --local Restrict operations to the LOCAL domain
-----
[ インストール ]
gem install -l pkg/omniauth-scaffold-0.1.0.gem
-----
Successfully installed omniauth-scaffold-0.1.0
1 gem installed
-----
[ インストールリスト ]
gem list omniauth-scaffold
-----
*** LOCAL GEMS ***
omniauth-scaffold (0.1.0)
-----
◆RubyGems.orgアカウント作成
https://rubygems.org/users/new
◆RubyGems公開
rake release
-----
Committing omniauth-scaffold.gemspec
Pushing master to origin
Tagging v0.1.0
Pushing v0.1.0 to origin
Generated: omniauth-scaffold.gemspec
omniauth-scaffold.gemspec is valid.
Successfully built RubyGem
Name: omniauth-scaffold
Version: 0.1.0
File: omniauth-scaffold-0.1.0.gem
Executing "gem push ./pkg/omniauth-scaffold-0.1.0.gem":
gem push ./pkg/omniauth-scaffold-0.1.0.gem
Enter your RubyGems.org credentials.
Don't have an account yet? Create one at http://rubygems.org/sign_up
Email: **********@gmail.com
Password:
Pushing gem to https://rubygems.org...
Signed in.
Pushing gem to https://rubygems.org...
Successfully registered gem: omniauth-scaffold (0.1.0)
-----
◆RubyGems.orgページ
https://rubygems.org/gems/omniauth-scaffold
◆作成Gemインストール
rails new sample01
cd sample01
vi Gemfile
-----
gem 'omniauth-scaffold'
gem 'omniauth-twitter'
-----
※omniauth-scaffoldにはOmniAuthモジュールを含まないためomniauth-twitterも同時インストール
bundle install
-----
Installing omniauth-scaffold (0.1.0)
-----
rails g -h
-----
Omniauth:
omniauth:scaffold
-----
rails g omniauth:scaffold
-----
create config/initializers/omniauth.rb
create config/initializers/local_setting.rb
create config/initializers/constants.rb
insert config/routes.rb
insert config/routes.rb
insert config/routes.rb
create db/migrate/20000101000000_create_users.rb
create app/models/user.rb
create app/controllers/sessions_controller.rb
conflict app/controllers/application_controller.rb
Overwrite /Users/*****/labo/sample02/app/controllers/application_controller.rb? (enter "h" for help) [Ynaqdh] a
force app/controllers/application_controller.rb
create app/controllers/top_controller.rb
conflict app/views/layouts/application.html.erb
force app/views/layouts/application.html.erb
create app/views/top/index.html.erb
remove public/index.html
conflict README.rdoc
force README.rdoc
-----
rake db:migrate
-----
== CreateUsers: migrating ====================================================
-- create_table(:users)
-> 0.0023s
== CreateUsers: migrated (0.0024s) ===========================================
-----
rails s
-----
=> Booting WEBrick
=> Rails 3.2.3 application starting in development on http://0.0.0.0:3100
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2012-04-26 15:16:04] INFO WEBrick 1.3.1
[2012-04-26 15:16:04] INFO ruby 1.9.3 (2012-04-20) [x86_64-darwin10.8.0]
[2012-04-26 15:16:04] INFO WEBrick::HTTPServer#start: pid=4266 port=3100
-----
--------------------------------------------------
◆ローカルGemインストール/Railsアプリ組み込み
[ Gemインストール ]
cd ~/labo/omniauth-scaffold
gem install -l pkg/omniauth-scaffold-0.1.0.gem
-----
Successfully installed omniauth-scaffold-0.1.0
1 gem installed
-----
[ 作業ディレクトリ移動 ]
cd ~/labo
[ Railsアプリ作成 ]
rails new sample01
[ Gemfile編集 ]
vi Gemfile
-----
gem 'omniauth-scaffold'
gem 'omniauth-twitter'
-----
[ Gemインストール ]
bundle install
[ ヘルプ確認 ]
rails g -h
-----
Omniauth:
omniauth:scaffold
-----
[ Omniauth Scaffold実行 ]
rails g omniauth:scaffold
--------------------------------------------------
◆Gemアンインストール
gem uninstall omniauth-scaffold
-----
Successfully uninstalled omniauth-scaffold-0.1.0
-----
◆omniauth:scaffold削除
rails destroy omniauth:scaffold
--------------------------------------------------
◆ローカルGemリビルド/再インストール
rake build
gem uninstall omniauth-scaffold
gem install -l pkg/omniauth-scaffold-0.1.0.gem
gem install -l pkg/omniauth-scaffold-0.1.1.gem
gem install -l pkg/omniauth-scaffold-0.1.2.gem
gem install -l pkg/omniauth-scaffold-0.1.3.gem
rails destroy omniauth:scaffold
rails g omniauth:scaffold
--------------------------------------------------
◆Gemアップデートフロー
git add . && git commit -m "update"
rake version:bump:patch
-----
Current version: 0.1.0
Updated version: 0.1.1
-----
rake release
-----
Pushing master to origin
Tagging v0.1.1
Pushing v0.1.1 to origin
Generated: omniauth-scaffold.gemspec
omniauth-scaffold.gemspec is valid.
Successfully built RubyGem
Name: omniauth-scaffold
Version: 0.1.1
File: omniauth-scaffold-0.1.1.gem
Executing "gem push ./pkg/omniauth-scaffold-0.1.1.gem":
gem push ./pkg/omniauth-scaffold-0.1.1.gem
Pushing gem to https://rubygems.org...
Successfully registered gem: omniauth-scaffold (0.1.1)
-----
https://rubygems.org/gems/omniauth-scaffold
--------------------------------------------------
◆トラブルシューティング
https://gist.github.com/2aa095171285a7b806a7