Class: Metanorma::Release::RepoRef

Inherits:
Object
  • Object
show all
Defined in:
lib/metanorma/release/repo_ref.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(owner:, repo:) ⇒ RepoRef

Returns a new instance of RepoRef.



18
19
20
21
22
# File 'lib/metanorma/release/repo_ref.rb', line 18

def initialize(owner:, repo:)
  @owner = owner
  @repo = repo
  freeze
end

Instance Attribute Details

#ownerObject (readonly)

Returns the value of attribute owner.



6
7
8
# File 'lib/metanorma/release/repo_ref.rb', line 6

def owner
  @owner
end

#repoObject (readonly)

Returns the value of attribute repo.



6
7
8
# File 'lib/metanorma/release/repo_ref.rb', line 6

def repo
  @repo
end

Class Method Details

.from_string(str) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/metanorma/release/repo_ref.rb', line 8

def self.from_string(str)
  parts = str.split("/", 2)
  unless parts.length == 2
    raise ArgumentError,
          "Invalid repo reference: #{str}"
  end

  new(owner: parts[0], repo: parts[1])
end

Instance Method Details

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/metanorma/release/repo_ref.rb', line 28

def eql?(other)
  other.is_a?(self.class) && owner == other.owner && repo == other.repo
end

#hashObject



32
33
34
# File 'lib/metanorma/release/repo_ref.rb', line 32

def hash
  [owner, repo].hash
end

#to_sObject



24
25
26
# File 'lib/metanorma/release/repo_ref.rb', line 24

def to_s
  "#{owner}/#{repo}"
end