module Chemlab::CLI::Generator
Base Chemlab
class generator ($ chemlab generate …)
Constants
- INVALID_GENERATOR_ERROR
Public Instance Methods
generate(what, name, args)
click to toggle source
# File lib/chemlab/cli/generator.rb, line 16 def generate(what, name, args) raise ArgumentError, 'Please specify what to generate' unless what raise ArgumentError, 'Please specify a name' unless name unless possible_generators.has_key?(what) raise ArgumentError, INVALID_GENERATOR_ERROR % what, possible_generators.keys.join(',') end data = args.each_with_object({}) do |arg, h| k, v = arg.split('=') h[k] = v end # render the erb $stdout.puts ERB.new(File.read(possible_generators[what]), trim_mode: '%<>').result_with_hash({ data: data, name: name }) end
Private Instance Methods
possible_generators()
click to toggle source
List the possible generators @return [Hash] { 'generator' => 'templates/generator.erb' }
# File lib/chemlab/cli/generator.rb, line 39 def possible_generators Dir[File.expand_path('./generator/templates/*.erb', __dir__)].each_with_object({}) do |generator, generators| generators[File.basename(generator)[0..-5]] = generator end end