lib/scaffoldhub/helper.rb in scaffoldhub-0.0.12 vs lib/scaffoldhub/helper.rb in scaffoldhub-0.0.13

- old
+ new

@@ -1,8 +1,11 @@ module Scaffoldhub module Helper + class ScaffoldParameterMissing < RuntimeError + end + class << self def scaffold_spec @scaffold_spec end @@ -63,10 +66,14 @@ end def download_scaffold_spec! scaffold_spec = ScaffoldSpec.new(scaffold_name, options[:local], status_proc) scaffold_spec.download_and_parse! + if scaffold_spec.parameter_example && scaffold_parameter.nil? + say_status :error, parameter_missing_message(scaffold_spec.parameter_example), :red + raise ScaffoldParameterMissing + end scaffold_spec end def scaffold_name parse_scaffold_option(0) @@ -75,20 +82,30 @@ def scaffold_parameter parse_scaffold_option(1) end def replace_name_tokens(dest) - dest.gsub(/PLURAL_NAME/, file_name.pluralize).gsub(/NAME/, file_name) + result = dest.gsub(/PLURAL_NAME/, file_name.pluralize).gsub(/NAME/, file_name) + result.gsub!(/SCAFFOLD_PARAMETER/, scaffold_parameter) unless scaffold_parameter.nil? + result end + def post_install_message + message = scaffold_spec.post_install_message + replace_name_tokens(message) if message + end + def status_proc @status_proc ||= lambda { |url| say_status :download, url } end private def parse_scaffold_option(index) options[:scaffold].split(':')[index] end + def parameter_missing_message(example) + "Scaffold parameter missing; please specify the #{example} after the scaffold name like this: --scaffold #{scaffold_name}:#{example}" + end end end