Class: Gizzard::UnwrapCommand
- Defined in:
- lib/gizzard/commands.rb
Instance Attribute Summary
Attributes inherited from Command
#argv, #buffer, #command_options, #global_options, #job_injector, #manager
Instance Method Summary collapse
Methods inherited from Command
classify, #confirm!, #get_base_name, #help!, #initialize, make_job_injector, make_manager, #output, #require_tables, #require_template_options, run
Constructor Details
This class inherits a constructor from Gizzard::Command
Instance Method Details
#run ⇒ Object
271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 |
# File 'lib/gizzard/commands.rb', line 271 def run shard_ids = argv help! "No shards specified" if shard_ids.empty? shard_ids.each do |shard_id_string| shard_id = ShardId.parse(shard_id_string) upward_links = manager.list_upward_links(shard_id) downward_links = manager.list_downward_links(shard_id) if upward_links.length == 0 or downward_links.length == 0 STDERR.puts "Shard #{shard_id_string} must not be a root or leaf" next end upward_links.each do |uplink| downward_links.each do |downlink| manager.add_link(uplink.up_id, downlink.down_id, uplink.weight) new_link = LinkInfo.new(uplink.up_id, downlink.down_id, uplink.weight) manager.remove_link(uplink.up_id, uplink.down_id) manager.remove_link(downlink.up_id, downlink.down_id) output new_link.to_unix end end manager.delete_shard shard_id end end |