lib/cli/command_handler.rb in rails-interactive-2.1.0 vs lib/cli/command_handler.rb in rails-interactive-2.1.1

- old
+ new

@@ -7,26 +7,44 @@ class CLI # Commands class for the interactive CLI module class CommandHandler def initialize @commands = Command.new.all + @installed_commands = [] + @installed_dependencies = [] end def handle_multi_options(options, dependencies = nil) handle_dependencies(dependencies) - options.each { |option| system("bin/rails app:template LOCATION=templates/setup_#{option}.rb") } + + options.each do |option| + @installed_commands << option + system("bin/rails app:template LOCATION=templates/setup_#{option}.rb") + end end def handle_option(option, dependencies = nil) + @installed_commands << option handle_dependencies(dependencies) + system("bin/rails app:template LOCATION=templates/setup_#{option}.rb") end def handle_dependencies(dependencies) dependencies&.each do |dependency| + next if duplicated_gem?(dependency) + puts ">> Dependency Detected: #{dependency} " + @installed_dependencies << dependency + system("bin/rails app:template LOCATION=templates/setup_#{dependency}.rb") end + end + + private + + def duplicated_gem?(option) + @installed_commands.include?(option) || @installed_dependencies.include?(option) end end end end