Module: Braid::Operations::Helpers
Instance Method Summary collapse
- #clean_svn_revision(revision) ⇒ Object
- #determine_target_commit(params, options) ⇒ Object
- #display_revision(type, revision) ⇒ Object
- #extract_version(cmd) ⇒ Object
- #find_git_revision(commit) ⇒ Object
-
#validate_revision_option(params, options) ⇒ Object
Make sure the revision is valid, then clean it.
- #validate_svn_revision(old_revision, new_revision, path) ⇒ Object
- #verify_version(cmd, required) ⇒ Object
Instance Method Details
#clean_svn_revision(revision) ⇒ Object
151 152 153 154 155 156 157 |
# File 'lib/braid/operations.rb', line 151 def clean_svn_revision(revision) if revision revision.to_i else nil end end |
#determine_target_commit(params, options) ⇒ Object
194 195 196 197 198 199 200 201 202 203 204 |
# File 'lib/braid/operations.rb', line 194 def determine_target_commit(params, ) if ["revision"] if params["type"] == "svn" invoke(:svn_git_commit_hash, params["local_branch"], ["revision"]) else invoke(:git_rev_parse, ["revision"]) end else invoke(:git_rev_parse, params["local_branch"]) end end |
#display_revision(type, revision) ⇒ Object
206 207 208 |
# File 'lib/braid/operations.rb', line 206 def display_revision(type, revision) type == "svn" ? "r#{revision}" : "'#{revision[0, 7]}'" end |
#extract_version(cmd) ⇒ Object
119 120 121 122 |
# File 'lib/braid/operations.rb', line 119 def extract_version(cmd) status, out, err = exec!("#{cmd} --version") return out.sub(/^.* version/, "").strip end |
#find_git_revision(commit) ⇒ Object
145 146 147 148 149 |
# File 'lib/braid/operations.rb', line 145 def find_git_revision(commit) invoke(:git_rev_parse, commit) rescue Braid::Commands::ShellExecutionError raise Braid::Git::UnknownRevision, "unknown revision: #{commit}" end |
#validate_revision_option(params, options) ⇒ Object
Make sure the revision is valid, then clean it.
180 181 182 183 184 185 186 187 188 189 190 191 192 |
# File 'lib/braid/operations.rb', line 180 def validate_revision_option(params, ) if ["revision"] case params["type"] when "git" ["revision"] = find_git_revision(["revision"]) when "svn" validate_svn_revision(params["revision"], ["revision"], params["remote"]) ["revision"] = clean_svn_revision(["revision"]) end end true end |
#validate_svn_revision(old_revision, new_revision, path) ⇒ Object
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 |
# File 'lib/braid/operations.rb', line 159 def validate_svn_revision(old_revision, new_revision, path) return unless new_revision = clean_svn_revision(new_revision) old_revision = clean_svn_revision(old_revision) # TODO add checks for unlocked mirrors if old_revision if new_revision < old_revision raise Braid::Commands::LocalRevisionIsHigherThanRequestedRevision elsif new_revision == old_revision raise Braid::Commands::MirrorAlreadyUpToDate end end if path && invoke(:svn_remote_head_revision, path) < new_revision raise Braid::Commands::RequestedRevisionIsHigherThanRemoteRevision end true end |
#verify_version(cmd, required) ⇒ Object
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/braid/operations.rb', line 124 def verify_version(cmd, required) required_version = required.split(".") actual_version = extract_version(cmd).split(".") actual_version.each_with_index do |actual_piece, idx| required_piece = required_version[idx] return true unless required_piece case (actual_piece <=> required_piece) when -1 return false when 1 return true when 0 next end end return actual_version.length >= required_version.length end |