Document Links
Thor
Thorの基礎知識
ThorとはCLIの作成を支援するGemらしい.
詳しくは実際に扱いながら学ぶ.
また,有志の力を借りる
CLIを自作
まずはthorをinstallする.
$ sudo gem install thor
実際に作成していくが,
で勉強したbundlerはinstallしておいてくださいね.
いざ,実践!とその前に,今回の作業場は普段のgrad~/menber/[yours]では面倒らしいので(理由はわかりません),HomeDirectoryで行ってください.
$ pwd
/home/username #自分のホームディレクトリで作業開始!
$ bundle gem hello_rudy -b #gem hello_rudyが作成されます
$ cd hello_rudy
$ ls exe/ #exeファイルがあるかを確認
hello_rudy
$ chmod a+x exe/hello_rudy #権限を与えます
このままでは動かないので,実際に実行できるようにしていく.
$ emacs -nw hello_rudy.gemspec
で,中身を
require_relative 'lib/hello_rudy/version'
Gem::Specification.new do |spec|
spec.name = "hello_rudy"
spec.version = HelloRudy::VERSION
spec.authors = ["[yours]"]
spec.email = ["[yours]"]
spec.summary = %q{hello rudy}
spec.description = %q{hello rudy}
spec.homepage = "https://hoge.hoge"
spec.license = "MIT"
spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
# spec.metadata["allowed_push_host"] = "TODO: Set to 'http://mygemserver.com'"
spec.metadata["homepage_uri"] = spec.homepage
# spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
# spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
# Specify which files should be added to the gem when it is released.
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
end
spec.bindir = "exe"
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]
spec.add_runtime_dependency('thor')
end
こんな感じに修正してください.
$ bundle exec exe/hello_rudy hello rudy
これで何もErrorを出さなかったら大丈夫.Errorが出るなら,Error文を見て修正してください.
では次に,挙動の中身を書いていく.
$ emacs -nw lib/hello_rudy.rb
で,中身を
hello_rudy.rb
require "thor"
require "hello_rudy/version"
#module HelloRudy
#class Error < StandardError; end
class HelloRudyCLI < Thor
desc "hello NAME", "say hello to NAME"
def hello(name)
puts "Hello " + name
end
end
HelloRudyCLI.start(ARGV)
にしてください.
また,
$ emacs -nw lib/hello_rudy/version.rb
の中身を
version.rb
class HelloRudy
VERSION = "0.1.0"
end
にしてください.
$ bundle update
$ bundle install
$ bundle exec exe/hello_rudy
Commands:
hello_rudy hello NAME # say hello to NAME
hello_rudy help [COMMAND] # Describe available commands or one specific co...
$ bundle exec exe/hello_rudy hello rudy
Hello Rudy
完成!
折角なので,どこからでも実行できるようにする.
$ sudo rake install:local
$ hello_rudy hello boy
Hello boy
これでどこからでもhello_rudyを実行できる.
Rubocop
Rubocopの基礎知識
コーディング規約に準拠しているかを調べるGemらしい.
こちらも有志の力を借りて勉強する.
実践
実際に使ってみる.
Install
$ sudo gem install rubocop
今回は–auto-correctとやらを使う.
$ rubocop --auto-correct file.rb
で,自動でCodeを整理してくれる.
どうなるかは自分の目で確かめてください.
締め
今回はThorとRubocopについて学んだ.
- source ~/school/multi/my_ruby/grad_members_20f/members/evendemiaire/post/thor_rubocop.org