Class: Redmine::Scm::Adapters::AbstractAdapter

Inherits:
Object
  • Object
show all
Defined in:
lib/redmine/scm/adapters/abstract_adapter.rb

Overview

:nodoc:

Direct Known Subclasses

BazaarAdapter, CvsAdapter, DarcsAdapter, FilesystemAdapter, GitAdapter, MercurialAdapter, SubversionAdapter

Class Method Summary

Instance Method Summary

Constructor Details

- (AbstractAdapter) initialize(url, root_url = nil, login = nil, password = nil)

A new instance of AbstractAdapter



50
51
52
53
54
55
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 50

def initialize(url, root_url=nil, =nil, password=nil)
  @url = url
  @login =  if  && !.empty?
  @password = (password || "") if @login
  @root_url = root_url.blank? ? retrieve_root_url : root_url
end

Class Method Details

+ (Object) client_version

Returns the version of the scm client Eg: [1, 5, 0] or [] if unknown



30
31
32
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 30

def client_version
  []
end

+ (Boolean) client_version_above?(v, options = {})

Returns true if the current client version is above or equals the given one If option is :unknown is set to true, it will return true if the client version is unknown

Returns:

  • (Boolean)


45
46
47
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 45

def client_version_above?(v, options={})
  ((client_version <=> v) >= 0) || (client_version.empty? && options[:unknown])
end

+ (Object) client_version_string

Returns the version string of the scm client Eg: ‘1.5.0’ or ‘Unknown version’ if unknown



36
37
38
39
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 36

def client_version_string
  v = client_version || 'Unknown version'
  v.is_a?(Array) ? v.join('.') : v.to_s
end

Instance Method Details

- (Object) adapter_name



57
58
59
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 57

def adapter_name
  'Abstract'
end

- (Object) branches



104
105
106
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 104

def branches
  return nil
end

- (Object) cat(path, identifier = nil)



128
129
130
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 128

def cat(path, identifier=nil)
  return nil
end

- (Object) default_branch



112
113
114
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 112

def default_branch
  return nil
end

- (Object) diff(path, identifier_from, identifier_to = nil)



124
125
126
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 124

def diff(path, identifier_from, identifier_to=nil)
  return nil
end

- (Object) entries(path = nil, identifier = nil)

Returns an Entries collection or nil if the given path doesn’t exist in the repository



100
101
102
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 100

def entries(path=nil, identifier=nil)
  return nil
end

- (Object) entry(path = nil, identifier = nil)

Returns the entry identified by path and revision identifier or nil if entry doesn’t exist in the repository



84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 84

def entry(path=nil, identifier=nil)
  parts = path.to_s.split(%r{[\/\\]}).select {|n| !n.blank?}
  search_path = parts[0..-2].join('/')
  search_name = parts[-1]
  if search_path.blank? && search_name.blank?
    # Root entry
    Entry.new(:path => '', :kind => 'dir')
  else
    # Search for the entry in the parent directory
    es = entries(search_path, identifier)
    es ? es.detect {|e| e.name == search_name} : nil
  end
end

- (Object) info

get info about the svn repository



78
79
80
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 78

def info
  return nil
end

- (Object) properties(path, identifier = nil)



116
117
118
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 116

def properties(path, identifier=nil)
  return nil
end

- (Object) revisions(path = nil, identifier_from = nil, identifier_to = nil, options = {})



120
121
122
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 120

def revisions(path=nil, identifier_from=nil, identifier_to=nil, options={})
  return nil
end

- (Object) root_url



69
70
71
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 69

def root_url
  @root_url
end

- (Object) shell_quote(str)



152
153
154
155
156
157
158
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 152

def shell_quote(str)
  if Redmine::Platform.mswin?
    '"' + str.gsub(/"/, '\\"') + '"'
  else
    "'" + str.gsub(/'/, "'\"'\"'") + "'"
  end
end

- (Boolean) supports_annotate?

Returns:

  • (Boolean)


65
66
67
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 65

def supports_annotate?
  respond_to?('annotate')
end

- (Boolean) supports_cat?

Returns:

  • (Boolean)


61
62
63
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 61

def supports_cat?
  true
end

- (Object) tags



108
109
110
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 108

def tags 
  return nil
end

- (Object) url



73
74
75
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 73

def url
  @url
end

- (Object) with_leading_slash(path)



132
133
134
135
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 132

def with_leading_slash(path)
  path ||= ''
  (path[0,1]!="/") ? "/#{path}" : path
end

- (Object) with_trailling_slash(path)



137
138
139
140
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 137

def with_trailling_slash(path)
  path ||= ''
  (path[-1,1] == "/") ? path : "#{path}/"
end

- (Object) without_leading_slash(path)



142
143
144
145
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 142

def without_leading_slash(path)
  path ||= ''
  path.gsub(%r{^/+}, '')
end

- (Object) without_trailling_slash(path)



147
148
149
150
# File 'lib/redmine/scm/adapters/abstract_adapter.rb', line 147

def without_trailling_slash(path)
 path ||= ''
 (path[-1,1] == "/") ? path[0..-2] : path
end