class Monotes::IssueRepository

Public Class Methods

build(args) click to toggle source
# File lib/monotes/issue_repository.rb, line 32
def self.build(args)
  context = Monotes::IO::FSDelegate.new
  Monotes::IssueRepository.new(args.merge(:context => context))
end
new(args) click to toggle source
# File lib/monotes/issue_repository.rb, line 7
def initialize(args)
  @context = args.fetch(:context)
  @repository = args.fetch(:repository)
end

Public Instance Methods

append(new_issue) click to toggle source
# File lib/monotes/issue_repository.rb, line 19
def append(new_issue)
  raise ArgumentError, 'issue must not be nil' if new_issue.nil?
  issues = load
  issues << new_issue
  save(issues)
end
load() click to toggle source
# File lib/monotes/issue_repository.rb, line 26
def load
  @context.load(*@repository.split('/')).map do |issue_hash|
    Monotes::Models::Issue.new(issue_hash)
  end
end
save(args) click to toggle source
# File lib/monotes/issue_repository.rb, line 12
def save(args)
  issues = Array(args).map do |issue|
    issue.to_hash
  end
  @context.save(*@repository.split('/'), issues)
end