class Gitmain::Blob

Attributes

id[R]
name[R]
path[R]
repository[R]

Public Class Methods

new(repository, id, path = nil, name = nil) click to toggle source
# File lib/gitmain/blob.rb, line 5
def initialize(repository, id, path = nil, name = nil)
  raise ArgumentError, 'provide a valid repository' unless repository.kind_of?(Gitmain::Repository)
  raise ArgumentError, 'provide a valid blob id' unless id.to_s.match(/\A[0-9a-f]{40}\z/)
  @repository = repository
  @id = id
  @path = path
  @name = name
end

Public Instance Methods

changed_attributes() click to toggle source
# File lib/gitmain/blob.rb, line 14
def changed_attributes
  @changed_attributes ||= {}
end
content() click to toggle source
# File lib/gitmain/blob.rb, line 18
def content
  @content ||= _blob&.content
end
content=(value) click to toggle source
# File lib/gitmain/blob.rb, line 22
def content=(value)
  changed_attributes[:content] = content
  @content = value
end
file_name() click to toggle source
# File lib/gitmain/blob.rb, line 27
def file_name
  File.join(*[path, name].map(&:to_s).reject(&:empty?))
end

Private Instance Methods

_blob() click to toggle source
# File lib/gitmain/blob.rb, line 33
def _blob
  @_blob ||= repository.rugged(id)
end