目次
1、open3モジュール
2、jsonファイルをパースする際、ハッシュキーをrubyのシンボルに変換
3、initializeメソッド
4、optparseライブラリ
Open3.caputure3
cmdで指定されたコマンドを実行して、1、プロセスの標準出力2、標準エラー3、プロセスの終了ステータスのオブジェクトを返す。
例
プログラムを起動してopen3でコマンドをリンクさせてます
require "open3"
def add_proc
@server.mount_proc("/directry") do |req,res|
days = req.query["days"]
account = req.query["account"]
script = "../sample.rb" #何か作成したプログラム
file = "#{days}.output" #プログラムの結果を保存するファイル
cmd = "ruby #{script} -d #{days} -a #{account}" > "#{file}" #ターミナルでのコマンド入力
stdout,stderr,status = Open3.capture3(cmd) #引数にcmd
erb =
if /exit 0/ =~ status.to_s
"/directory" #成功したときの画面
else
"/nodirectory" #失敗したときの画面
end
template = ERB.new(File.read(erb))
res.body << template.result(binding) #templateに変数を埋め込みHTMLファイルを作成しレスポンスとしている
end
endjsonファイルをパースする際、ハッシュキーをrubyのシンボルに変換する場合
require "json"
def read_account(filename)
File.open(filename) do |o|
JSON.parse(File.read(o),symbolize_name: true) #symbolize_nameオプションをtrueに指定する
end
endinitializeメソッド
プログラムが実行されたとき同時に実行される
# frozen_string_literal: true
class SumpleClass
def initialize(account_file)
@account = account_file
end
def run
puts "#{@account}"
end
end
if __FILE__ == $PROGRAM_NAME #ファイルが実行されるときこのプログラムも実行される
app = AmazonSearch.new(ARGV[0])
app.run
end
$ ruby sumple.rb iketeru #引数の値がaccountfileに渡る
結果=> iketeruoptpaeseライブラリ
コマンドライン用のライブラリで、ARGVというグローバル変数の配列にコマンドライン引数が格納されています。
このコマンドライン引数を使って、プログラムを実行するときに使いたい情報を渡すことができます。
require "optparse"
opts = OptionParser.new
opts.banner = "Usage: ruby optparse.rb [options]"
opts.program_name = "sumpleprogram"
opts.version = [0.2]
opts.release = "2022-03-05"
opts.on_tail("-v","--version") do
puts opts.ver
exit
end
opts.parse!(ARGV)% ruby opt.rb -v
結果=>
kazuprogram 0.2 (2020-09-09)% ruby opt.rb -h
結果=>
Usage: ruby optparse.rb [options]
-v, --version