class Nymphia::CLI
Public Class Methods
new(argv)
click to toggle source
# File lib/nymphia/cli.rb, line 10 def initialize(argv) @argv = argv.dup parser.parse!(@argv) end
start(argv)
click to toggle source
# File lib/nymphia/cli.rb, line 6 def self.start(argv) new(argv).run end
Public Instance Methods
run()
click to toggle source
# File lib/nymphia/cli.rb, line 15 def run validate_args! dsl_code_file = File.open(@file_path) absolute_dsl_file_path = File.absolute_path(dsl_code_file.path) dsl_code = dsl_code_file.read dsl = Nymphia::DSL.new(dsl_code, absolute_dsl_file_path) dsl.compile if @output_file_path File.open(@output_file_path, 'w') do |file| dsl.render(file) end else dsl.render(STDOUT) end end
Private Instance Methods
parser()
click to toggle source
# File lib/nymphia/cli.rb, line 36 def parser @parser ||= OptionParser.new do |opts| opts.banner = 'nymphia' opts.version = Nymphia::VERSION opts.on('-f', '--file=FILE', 'Your DSL code file') { |f| @file_path = f } opts.on('-o', '--output=FILE', 'Output file (default: stdout)') { |o| @output_file_path = o } end end
validate_args!()
click to toggle source
# File lib/nymphia/cli.rb, line 45 def validate_args! unless @file_path raise ArgumentError.new('-f (--file) options is required.') end end