Class: Gemvault::GemEntry

Inherits:
Object
  • Object
show all
Defined in:
lib/gemvault/gem_entry.rb

Overview

Value object for one gem row (name, version, platform, created_at) in a vault.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, version:, platform: "ruby", created_at: nil) ⇒ GemEntry

Returns a new instance of GemEntry.



6
7
8
9
10
11
# File 'lib/gemvault/gem_entry.rb', line 6

def initialize(name:, version:, platform: "ruby", created_at: nil)
  @name = name
  @version = version
  @platform = platform
  @created_at = created_at
end

Instance Attribute Details

#created_atObject (readonly)

Returns the value of attribute created_at.



4
5
6
# File 'lib/gemvault/gem_entry.rb', line 4

def created_at
  @created_at
end

#nameObject (readonly)

Returns the value of attribute name.



4
5
6
# File 'lib/gemvault/gem_entry.rb', line 4

def name
  @name
end

#platformObject (readonly)

Returns the value of attribute platform.



4
5
6
# File 'lib/gemvault/gem_entry.rb', line 4

def platform
  @platform
end

#versionObject (readonly)

Returns the value of attribute version.



4
5
6
# File 'lib/gemvault/gem_entry.rb', line 4

def version
  @version
end

Instance Method Details

#==(other) ⇒ Object Also known as: eql?



25
26
27
28
29
30
# File 'lib/gemvault/gem_entry.rb', line 25

def ==(other)
  other.is_a?(self.class) &&
    name == other.name &&
    version == other.version &&
    platform == other.platform
end

#filenameObject



17
18
19
# File 'lib/gemvault/gem_entry.rb', line 17

def filename
  "#{full_name}.gem"
end

#full_nameObject



13
14
15
# File 'lib/gemvault/gem_entry.rb', line 13

def full_name
  platform == "ruby" ? "#{name}-#{version}" : "#{name}-#{version}-#{platform}"
end

#hashObject



34
35
36
# File 'lib/gemvault/gem_entry.rb', line 34

def hash
  [name, version, platform].hash
end

#to_sObject



21
22
23
# File 'lib/gemvault/gem_entry.rb', line 21

def to_s
  platform == "ruby" ? "#{name}-#{version}" : "#{name}-#{version} (#{platform})"
end