Class: Hub::Context::GithubProject
- Inherits:
-
Struct
- Object
- Struct
- Hub::Context::GithubProject
- Defined in:
- lib/hub/context.rb
Instance Attribute Summary collapse
-
#repo_data ⇒ Object
Returns the value of attribute repo_data.
Class Method Summary collapse
Instance Method Summary collapse
- #==(other) ⇒ Object
- #git_url(options = {}) ⇒ Object
-
#initialize(*args) ⇒ GithubProject
constructor
A new instance of GithubProject.
- #name_with_owner ⇒ Object
- #owned_by(new_owner) ⇒ Object
- #private? ⇒ Boolean
- #remote ⇒ Object
- #web_url(path = nil) ⇒ Object
Constructor Details
#initialize(*args) ⇒ GithubProject
Returns a new instance of GithubProject.
261 262 263 264 265 266 |
# File 'lib/hub/context.rb', line 261 def initialize(*args) super self.name = self.name.tr(' ', '-') self.host ||= (local_repo || LocalRepo).default_host self.host = host.sub(/^ssh\./i, '') if 'ssh.github.com' == host.downcase end |
Instance Attribute Details
#repo_data ⇒ Object
Returns the value of attribute repo_data.
259 260 261 |
# File 'lib/hub/context.rb', line 259 def repo_data @repo_data end |
Class Method Details
.from_url(url, local_repo) ⇒ Object
252 253 254 255 256 257 |
# File 'lib/hub/context.rb', line 252 def self.from_url(url, local_repo) if local_repo.known_host?(url.host) _, owner, name = url.path.split('/', 4) GithubProject.new(local_repo, owner, name.sub(/\.git$/, ''), url.host) end end |
Instance Method Details
#==(other) ⇒ Object
283 284 285 |
# File 'lib/hub/context.rb', line 283 def ==(other) name_with_owner == other.name_with_owner end |
#git_url(options = {}) ⇒ Object
304 305 306 307 308 309 |
# File 'lib/hub/context.rb', line 304 def git_url( = {}) if [:https] then "https://#{host}/" elsif [:private] or private? then "git@#{host}:" else "git://#{host}/" end + name_with_owner + '.git' end |
#name_with_owner ⇒ Object
279 280 281 |
# File 'lib/hub/context.rb', line 279 def name_with_owner "#{owner}/#{name}" end |
#owned_by(new_owner) ⇒ Object
273 274 275 276 277 |
# File 'lib/hub/context.rb', line 273 def owned_by(new_owner) new_project = dup new_project.owner = new_owner new_project end |
#private? ⇒ Boolean
268 269 270 271 |
# File 'lib/hub/context.rb', line 268 def private? repo_data ? repo_data.fetch('private') : host != (local_repo || LocalRepo).main_host end |
#remote ⇒ Object
287 288 289 |
# File 'lib/hub/context.rb', line 287 def remote local_repo.remotes.find { |r| r.project == self } end |
#web_url(path = nil) ⇒ Object
291 292 293 294 295 296 297 298 299 300 301 302 |
# File 'lib/hub/context.rb', line 291 def web_url(path = nil) project_name = name_with_owner if project_name.sub!(/\.wiki$/, '') unless '/wiki' == path path = if path =~ %r{^/commits/} then '/_history' else path.to_s.sub(/\w+/, '_\0') end path = '/wiki' + path end end "https://#{host}/" + project_name + path.to_s end |