lib/doggy/cli/pull.rb in doggy-2.0.10 vs lib/doggy/cli/pull.rb in doggy-2.0.11

- old
+ new

@@ -1,29 +1,34 @@ # encoding: utf-8 module Doggy class CLI::Pull - def initialize(options) + def initialize(ids:, options:) + @ids = ids @options = options end def run - pull_resources('dashboards', Models::Dashboard) if should_pull?('dashboards') - pull_resources('monitors', Models::Monitor) if should_pull?('monitors') - pull_resources('screens', Models::Screen) if should_pull?('screens') + pull_resources('dashboards', Models::Dashboard, @ids) if should_pull?('dashboards') + pull_resources('monitors', Models::Monitor, @ids) if should_pull?('monitors') + pull_resources('screens', Models::Screen, @ids) if should_pull?('screens') end private def should_pull?(resource) @options.empty? || @options[resource] end - def pull_resources(name, klass) - Doggy.ui.say "Pulling #{ name }" + def pull_resources(name, klass, ids) + if ids.any? + Doggy.ui.say "Pulling #{ name }: #{ids.join(', ')}" + remote_resources = klass.all.find_all { |m| ids.include?(m.id.to_s) } + else + Doggy.ui.say "Pulling #{ name }" + remote_resources = klass.all + end local_resources = klass.all_local - remote_resources = klass.all - klass.assign_paths(remote_resources, local_resources) remote_resources.each(&:save_local) end end end