Sha256: 61427862b2058bcbb3d044390fd60c984638350e4e93addc0a922368b42fc90e
Contents?: true
Size: 1.46 KB
Versions: 8
Compression:
Stored size: 1.46 KB
Contents
require 'optparse' require_relative 'generator' module Sinator class Command def self.parse(options) options = %w(--help) if options.empty? || options.nil? args = {} result = nil option_parser = OptionParser.new do |opts| opts.banner = "Usage: sinator [options]" opts.on("-h", "--help", "Print this help") do result = opts.to_s end opts.on("-v", "--version", "Show version") do result = Sinator::VERSION end opts.on("-nNAME", "--name=NAME", "generate app with name from this option") do |name| args[:name] = name end opts.on("-tDIR", "--target=DIR", "instead of current directory, generate app in target DIR") do |target| args[:target] = target end opts.on("-d", "--database", "add sequel orm for postgres sql") do args[:database] = true end end option_parser.parse! options result = run(args) unless args[:name].nil? result end def self.run(args) generator = Sinator::Generator.new args[:name], destination: args[:target], with_database: args[:database] generator.generate_app generator.generate_rakefile generator.generate_gemfile generator.generate_bundle_config generator.generate_puma_config msg = "#{args[:name]} is successfully generated" msg << " in #{args[:target]}" if args[:target] msg end end end
Version data entries
8 entries across 8 versions & 1 rubygems