Class: GitPivotalTrackerIntegration::Command::Configuration
- Inherits:
-
Object
- Object
- GitPivotalTrackerIntegration::Command::Configuration
- Defined in:
- lib/git-pivotal-tracker-integration/command/configuration.rb
Overview
A class that exposes configuration that commands can use
Instance Method Summary collapse
-
#api_token ⇒ String
Returns the user’s Pivotal Tracker API token.
- #check_config_project_id ⇒ Object
- #pconfig ⇒ Object
-
#project_id ⇒ String
Returns the Pivotal Tracker project id for this repository.
-
#story(project) ⇒ PivotalTracker::Story
Returns the story associated with the current development branch.
-
#story=(story) ⇒ void
Stores the story associated with the current development branch.
- #toggl_project_id ⇒ Object
Instance Method Details
#api_token ⇒ String
Returns the user’s Pivotal Tracker API token. If this token has not been configured, prompts the user for the value. The value is checked for in the inherited Git configuration, but is stored in the global Git configuration so that it can be used across multiple repositories.
32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/git-pivotal-tracker-integration/command/configuration.rb', line 32 def api_token api_token = GitPivotalTrackerIntegration::Util::Git.get_config KEY_API_TOKEN, :inherited if api_token.empty? api_token = ask('Pivotal API Token (found at https://www.pivotaltracker.com/profile): ').strip GitPivotalTrackerIntegration::Util::Git.set_config KEY_API_TOKEN, api_token, :global puts end self.check_config_project_id api_token end |
#check_config_project_id ⇒ Object
53 54 55 56 |
# File 'lib/git-pivotal-tracker-integration/command/configuration.rb', line 53 def check_config_project_id GitPivotalTrackerIntegration::Util::Git.set_config("pivotal.project-id", self.pconfig["pivotal-tracker"]["project-id"]) nil end |
#pconfig ⇒ Object
58 59 60 61 62 63 64 65 |
# File 'lib/git-pivotal-tracker-integration/command/configuration.rb', line 58 def pconfig pc = nil config_filename = "#{GitPivotalTrackerIntegration::Util::Git.repository_root}/.v2gpti/config" if File.file?(config_filename) pc = ParseConfig.new(config_filename) end pc end |
#project_id ⇒ String
Returns the Pivotal Tracker project id for this repository. If this id has not been configuration, prompts the user for the value. The value is checked for in the inherited Git configuration, but is stored in the local Git configuration so that it is specific to this repository.
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/git-pivotal-tracker-integration/command/configuration.rb', line 72 def project_id project_id = GitPivotalTrackerIntegration::Util::Git.get_config KEY_PROJECT_ID, :inherited if project_id.empty? project_id = choose do || .prompt = 'Choose project associated with this repository: ' PivotalTracker::Project.all.sort_by { |project| project.name }.each do |project| .choice(project.name) { project.id } end end GitPivotalTrackerIntegration::Util::Git.set_config KEY_PROJECT_ID, project_id, :local puts end project_id end |
#story(project) ⇒ PivotalTracker::Story
Returns the story associated with the current development branch
95 96 97 98 99 100 |
# File 'lib/git-pivotal-tracker-integration/command/configuration.rb', line 95 def story(project) $LOG.debug("#{self.class}:#{__method__}") story_id = GitPivotalTrackerIntegration::Util::Git.get_config KEY_STORY_ID, :branch $LOG.debug("story_id:#{story_id}") project.stories.find story_id.to_i end |
#story=(story) ⇒ void
This method returns an undefined value.
Stores the story associated with the current development branch
106 107 108 |
# File 'lib/git-pivotal-tracker-integration/command/configuration.rb', line 106 def story=(story) GitPivotalTrackerIntegration::Util::Git.set_config KEY_STORY_ID, story.id, :branch end |
#toggl_project_id ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/git-pivotal-tracker-integration/command/configuration.rb', line 44 def toggl_project_id toggle_config = self.pconfig["toggl"] if toggle_config.nil? abort "toggle project id not set" else toggle_config["project-id"] end end |