class PrLog::Project

Parse files from the local project directory

Public Instance Methods

github_repository_name() click to toggle source
# File lib/pr_log/project.rb, line 14
def github_repository_name
  config.github_repository || gemspec.github_repository
rescue GemspecNotFound
  raise(GithubRepositoryRequired,
        'Could not derive github repository from gemspec.')
rescue NonGithubHomepage
  raise(GithubRepositoryRequired,
        'Homepage attribute in gemspec is not a GitHub URL.')
end
issue_numbers_mentioned_in_changelog() click to toggle source
# File lib/pr_log/project.rb, line 6
def issue_numbers_mentioned_in_changelog
  parsed_changelog.mentioned_issue_numbers
end
milestone() click to toggle source
# File lib/pr_log/project.rb, line 10
def milestone
  config.milestone || gemspec.version_milestone
end
pull_requests_for_current_milestone() click to toggle source
# File lib/pr_log/project.rb, line 24
def pull_requests_for_current_milestone
  github_repository.pull_requests_with_milestone(milestone)
end

Private Instance Methods

gemspec() click to toggle source
# File lib/pr_log/project.rb, line 43
def gemspec
  Gemspec.new(Gem::Specification.load(gemspec_path),
              config.milestone_format)
end
gemspec_path() click to toggle source
# File lib/pr_log/project.rb, line 48
def gemspec_path
  Dir.glob('*.gemspec').first ||
    raise(GemspecNotFound, 'Gemspec not found.')
end
github_repository() click to toggle source
# File lib/pr_log/project.rb, line 30
def github_repository
  GithubRepository.new(github_repository_name,
                       config.access_token)
end
parsed_changelog() click to toggle source
# File lib/pr_log/project.rb, line 35
def parsed_changelog
  ParsedChangelog.new(File.read(config.changelog_file),
                      github_repository: github_repository_name)
rescue Errno::ENOENT
  raise(ChangelogFileNotFound,
        "Could not find '#{config.changelog_file}' file.")
end