Module: Subversion::Extensions
- Included in:
- Subversion
- Defined in:
- lib/svn-command/subversion_extensions.rb
Constant Summary collapse
- Interesting_status_flags =
["M", "A", "D", "?"]
- Uninteresting_status_flags =
["X", "W"]
- Status_flags =
Interesting_status_flags | Uninteresting_status_flags
Class Method Summary collapse
-
.diff(*args) ⇒ Object
This is just a wrapper for Subversion::diff that adds some color.
- .each_unadded(input) ⇒ Object
-
.printable_revision_properties(rev) ⇒ Object
A wrapper for Subversion::revision_properties that formats it for display on srceen.
- .status_lines_filter(input) ⇒ Object
- .unadded_filter(input) ⇒ Object
- .unadded_lines_filter(input) ⇒ Object
- .update_lines_filter(input) ⇒ Object
Class Method Details
.diff(*args) ⇒ Object
This is just a wrapper for Subversion::diff that adds some color
130 131 132 |
# File 'lib/svn-command/subversion_extensions.rb', line 130 def self.diff(*args) Subversion::diff(*args).colorize_svn_diff.add_exit_code_error end |
.each_unadded(input) ⇒ Object
123 124 125 126 127 |
# File 'lib/svn-command/subversion_extensions.rb', line 123 def self.each_unadded(input) unadded_filter(input).each { |line| yield line } end |
.printable_revision_properties(rev) ⇒ Object
A wrapper for Subversion::revision_properties that formats it for display on srceen
135 136 137 138 139 |
# File 'lib/svn-command/subversion_extensions.rb', line 135 def self.printable_revision_properties(rev) Subversion::revision_properties(rev).map do |property| "#{property.name.ljust(20)} = '#{property.value}'" end.join("\n") end |
.status_lines_filter(input) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/svn-command/subversion_extensions.rb', line 73 def self.status_lines_filter(input) input = (input || "").reject { |line| line =~ /^$/ # Blank lines }.reject { |line| line =~ /^#{Uninteresting_status_flags.to_regexp_char_class}/ }.join before_externals, *externals = input.split(/^Performing status on external item at.*$/) before_externals ||= '' before_externals = before_externals.strip.colorize_svn_status_lines + "\n" if before_externals != "" externals = externals.join.strip externals = '_'*40 + ' externals '.underline + '_'*40 + "\n" + externals.reject { |line| line =~ /^Performing status on external item at/ }.reject { |line| line =~ /^$/ # Blank lines }.join.strip.colorize_svn_status_lines + "\n" if externals != "" before_externals + externals end |
.unadded_filter(input) ⇒ Object
115 116 117 118 119 120 121 |
# File 'lib/svn-command/subversion_extensions.rb', line 115 def self.unadded_filter(input) unadded_lines_filter(input).map { |line| # Just keep the filename part line =~ /^\?\s+(.+)/ $1 } end |
.unadded_lines_filter(input) ⇒ Object
110 111 112 113 114 |
# File 'lib/svn-command/subversion_extensions.rb', line 110 def self.unadded_lines_filter(input) input.select { |line| line =~ /^\?/ }.join end |
.update_lines_filter(input) ⇒ Object
98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/svn-command/subversion_extensions.rb', line 98 def self.update_lines_filter(input) input.reject { |line| line =~ /^$/ # Blank lines }.reject { |line| line =~ /^Fetching external item into/ # Eventually we may want it to include this whole block, but only iff there is something updated for this external. }.reject { |line| line =~ /^External at revision/ }.join.colorize_svn_update_lines # Also get rid of all but one "At revision _."? end |