Method: Command::Diff#execute

Defined in:
lib/command/diff.rb

#execute(argv) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# File 'lib/command/diff.rb', line 72

def execute(argv)
  short_number_option_parse(argv)
  super
  if argv.empty?
    latest = Database.instance.sort_by_last_update.first
    return unless latest
    id = latest["id"]
  else
    target = argv.shift
    id = Downloader.get_id_by_target(target)
  end
  unless id
    error "#{target} は存在しません"
    return
  end
  view_diff_version = argv.shift
  if view_diff_version
    if invalid_diff_version_string?(view_diff_version)
      error "差分指定の書式が違います(正しい例:2013.02.21@01;39;46)"
      return
    end
    @options["view_diff_version"] = view_diff_version
  end
  if @options["list"]
    display_diff_list(id)
    return
  end
  if @options["clean"]
    clean_diff(id)
    return
  end
  if @options["all-clean"]
    clean_all_diff
    return
  end
  @difftool = GlobalSetting.get["global_setting"]["difftool"]
  unless @difftool
    error "difftool が設定されていません。narou setting で difftool を設定して下さい"
    return
  end
  exec_difftool(id)
end