Nature Remo EのCLIツールを作った
2022/02/13
だいぶ前に作った、Nature Remo E用のGem(Nature Remo E用のGem作った)にCLIコマンドを追加した
Gemは作ったことあったけど、CLIはなかったのでその練習みたいな感じ https://github.com/ytkg/nature_remo_e/pull/5/
使い方
インストール
$ gem install remoe
セットアップ(認証の設定)
$ export NATURE_REMO_API_TOKEN=HOGEHOGE
値を取得する
remoe
で使えるようになっている
$ remoe
coefficient: 1
cumulative_electric_energy_effective_digits: 6
normal_direction_cumulative_electric_energy: 74914
cumulative_electric_energy_unit: 1
reverse_direction_cumulative_electric_energy: 10
measured_instantaneous: 737
--json
オプションでJSON形式で取得もできるようにしてる
$ remoe --json | jq .
{
"coefficient": 1,
"cumulative_electric_energy_effective_digits": 6,
"normal_direction_cumulative_electric_energy": 74914,
"cumulative_electric_energy_unit": 1,
"reverse_direction_cumulative_electric_energy": 10,
"measured_instantaneous": 740
}
サブコマンドで個別の値だけ取れる
$ remoe measured_instantaneous
729
補足
Thorのパッチを当てた(後日追記する)
lib/patches/thor_ext.rb
class Thor
class << self
def exit_on_failure?
true
end
def help(shell, subcommand = false)
list = printable_commands(true, subcommand)
Thor::Util.thor_classes_in(self).each do |klass|
list += klass.printable_commands(false)
end
# list.sort! { |a, b| a[0] <=> b[0] }
if defined?(@package_name) && @package_name
shell.say "#{@package_name} commands:"
else
shell.say "Commands:"
end
shell.print_table(list, :indent => 2, :truncate => true)
shell.say
class_options_help(shell)
end
end
end