Module: Seimi::CLI
- Defined in:
- lib/seimi/cli.rb
Class Method Summary collapse
Class Method Details
.matrix_text(equation) ⇒ Object
54 55 56 57 58 59 60 61 |
# File 'lib/seimi/cli.rb', line 54 def matrix_text(equation) lines = ["元素釣合の盤に候"] equation.elements.each_with_index do |element, index| row = equation.matrix[index].map { |value| Kanji.rational(value) }.join(" ") lines << "#{element}: #{row}" end lines.join("\n") end |
.run(argv) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/seimi/cli.rb', line 9 def run(argv) command, *args = argv case command when nil, "tasuke" puts usage 0 when "--version" puts "seimi #{VERSION}" 0 when "kaibou" return usage_error if args.empty? formula = Formula.parse(args.join) puts formula.to_kobun 0 when "tsuriai" return usage_error if args.empty? equation = Equation.balance(args.join(" ")) puts "〔反応式 釣合の覚〕" puts matrix_text(equation) puts equation.to_kobun 0 else usage_error end rescue Seimi::Error => error warn "咎: #{error.}" 1 end |
.usage ⇒ Object
46 47 48 49 50 51 52 |
# File 'lib/seimi/cli.rb', line 46 def usage <<~TEXT 用法: seimi kaibou <化学式> にて式を解剖し分子の量を量り申し候 用法: seimi tsuriai "<反応式>" にて割合の数を釣り合わせ申し候。反応式は引用符にて括り給うべく候 用法: seimi tasuke にて此の助けを開き給え TEXT end |
.usage_error ⇒ Object
41 42 43 44 |
# File 'lib/seimi/cli.rb', line 41 def usage_error puts usage 2 end |