Class: Blastr::SourceControl::Subversion
- Inherits:
-
Object
- Object
- Blastr::SourceControl::Subversion
- Defined in:
- lib/scm/svn.rb
Class Method Summary collapse
Instance Method Summary collapse
- #as_revision(arg) ⇒ Object
- #commits_since(since_revision = as_revision("1")) ⇒ Object
-
#initialize(svn_url) ⇒ Subversion
constructor
A new instance of Subversion.
- #latest_revision ⇒ Object
- #name ⇒ Object
- #svn_log_entries(log_output) ⇒ Object
- #url ⇒ Object
Constructor Details
#initialize(svn_url) ⇒ Subversion
Returns a new instance of Subversion.
36 37 38 |
# File 'lib/scm/svn.rb', line 36 def initialize(svn_url) @svn_url = Subversion.with_protocol_scheme(svn_url) end |
Class Method Details
.understands_url?(url) ⇒ Boolean
32 33 34 |
# File 'lib/scm/svn.rb', line 32 def self.understands_url?(url) local_repository?(url) or has_protocol_scheme?(url) end |
Instance Method Details
#as_revision(arg) ⇒ Object
44 45 46 47 |
# File 'lib/scm/svn.rb', line 44 def as_revision(arg) raise "Invalid revision: #{arg}" unless arg =~ /^(HEAD)|(\d+)$/ SubversionRevision.new(arg.to_s) end |
#commits_since(since_revision = as_revision("1")) ⇒ Object
55 56 57 58 |
# File 'lib/scm/svn.rb', line 55 def commits_since(since_revision = as_revision("1")) svn_log_output = svn_log(since_revision) svn_log_entries(svn_log_output) end |
#latest_revision ⇒ Object
49 50 51 52 53 |
# File 'lib/scm/svn.rb', line 49 def latest_revision entries = commits_since(as_revision("0")) return entries.last.revision unless entries.empty? SubversionRevision.new("0") end |
#name ⇒ Object
30 |
# File 'lib/scm/svn.rb', line 30 def name; "Subversion"; end |
#svn_log_entries(log_output) ⇒ Object
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/scm/svn.rb', line 60 def svn_log_entries(log_output) entries = [] log_output.scan(/r(\d+)\s\|\s(.*?)\s\|.*?\n\n(.*?)\n(-)+/mu).each do |entry| revision = as_revision(entry[0]) = entry[1] comment = entry[2] entries << LogEntry.new(revision, , comment) end entries end |
#url ⇒ Object
40 41 42 |
# File 'lib/scm/svn.rb', line 40 def url @svn_url end |