Class: String

Inherits:
Object show all
Defined in:
lib/subwrap/svn_command.rb,
lib/subwrap/subversion_extensions.rb

Instance Method Summary collapse

Instance Method Details

#add_exit_code_errorObject

Extracted so that we can override it for tests. Otherwise it will have a NoMethodError because $? will be nil because it will not have actually executed any commands.



122
123
124
125
# File 'lib/subwrap/svn_command.rb', line 122

def add_exit_code_error
  self << "Exited with error!".bold.red if !exit_code.success?
  self
end

#colorize_svn_addObject



20
# File 'lib/subwrap/subversion_extensions.rb', line 20

def colorize_svn_add;           self.green.bold; end

#colorize_svn_conflictObject



24
# File 'lib/subwrap/subversion_extensions.rb', line 24

def colorize_svn_conflict;      self.red.bold; end

#colorize_svn_deletedObject



23
# File 'lib/subwrap/subversion_extensions.rb', line 23

def colorize_svn_deleted;       self.magenta.bold; end

#colorize_svn_diffObject



59
60
61
62
63
64
65
66
# File 'lib/subwrap/subversion_extensions.rb', line 59

def colorize_svn_diff
  if Subversion.color
    self.gsub(/^(Index: )(.*)$/) { $2.ljust(100).black_on_white}.   #
         gsub(/^=+\n/, '')                                          # Get rid of the boring ========= lines
  else
    self
  end
end

#colorize_svn_exclamationObject



26
# File 'lib/subwrap/subversion_extensions.rb', line 26

def colorize_svn_exclamation;   self.red.bold; end

#colorize_svn_modifiedObject



21
# File 'lib/subwrap/subversion_extensions.rb', line 21

def colorize_svn_modified;      self.cyan.bold; end

#colorize_svn_question_markObject



19
# File 'lib/subwrap/subversion_extensions.rb', line 19

def colorize_svn_question_mark; self.yellow.bold; end

#colorize_svn_status_codeObject



28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/subwrap/subversion_extensions.rb', line 28

def colorize_svn_status_code
  if Subversion.color
    self.gsub('?') { $&.colorize_svn_question_mark }.
         gsub('A') { $&.colorize_svn_add }.
         gsub('M') { $&.colorize_svn_modified }.
         gsub('D') { $&.colorize_svn_deleted }.
         gsub('C') { $&.colorize_svn_conflict }.
         gsub('~') { $&.colorize_svn_tilde }.
         gsub('!') { $&.colorize_svn_exclamation }
  else
    self
  end
end

#colorize_svn_status_linesObject



41
42
43
44
45
46
47
# File 'lib/subwrap/subversion_extensions.rb', line 41

def colorize_svn_status_lines
  if Subversion.color
    self.gsub(/^ *([^ ])\s/) { $&.colorize_svn_status_code }
  else
    self
  end
end

#colorize_svn_tildeObject



25
# File 'lib/subwrap/subversion_extensions.rb', line 25

def colorize_svn_tilde;         self.red.bold; end

#colorize_svn_update_linesObject



48
49
50
51
52
53
54
55
56
57
58
# File 'lib/subwrap/subversion_extensions.rb', line 48

def colorize_svn_update_lines
  if Subversion.color
    self.gsub(/^ *U\s/)  { $&.colorize_svn_updated }.
         gsub(/^ *A\s/)  { $&.colorize_svn_add }.
         gsub(/^ *M\s/)  { $&.colorize_svn_modified }.
         gsub(/^ *D\s/)  { $&.colorize_svn_deleted }.
         gsub(/^ *C\s/)  { $&.colorize_svn_conflict }
  else
    self
  end
end

#colorize_svn_updatedObject



22
# File 'lib/subwrap/subversion_extensions.rb', line 22

def colorize_svn_updated;       self.yellow.bold; end

#highlight_occurences(search_pattern, color = :red) ⇒ Object



129
130
131
# File 'lib/subwrap/svn_command.rb', line 129

def highlight_occurences(search_pattern, color = :red)
  self.gsub(search_pattern) { $&.send(color).bold }
end

Makes the first character bold and underlined. Makes the whole string of the given color. :todo: Move out to extensions/console/menu_item



113
114
115
116
117
118
119
120
# File 'lib/subwrap/svn_command.rb', line 113

def menu_item(color = :white, letter = self[0..0], which_occurence = 0)
  index = index_all(/#{letter}/)[which_occurence]
  raise "Could not find a #{which_occurence}th occurence of '#{letter}' in string '#{self}'" if index.nil?
  before = self[0..index-1].send(color) unless index == 0
  middle = self[index..index].send(color).bold.underline
  after  = self[index+1..-1].send(color)
  before.to_s + middle + after
end

#relativize_pathObject



126
127
128
# File 'lib/subwrap/svn_command.rb', line 126

def relativize_path
  self.gsub(File.expand_path(FileUtils.getwd) + '/', '')   # Simplify the directory by removing the working directory from it, if possible
end