pv 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- require 'pivotal_tracker'
1
+ require 'pivotal-tracker'
2
2
 
3
3
  module Pv
4
4
  class BugTracker
data/lib/pv/command.rb CHANGED
@@ -7,11 +7,8 @@ module Pv
7
7
  default_task :log
8
8
  desc :log, "Show every story assigned to you on this project."
9
9
  def log
10
- Pv.tracker.stories.each do |story|
11
- id = set_color "#{story.id}", Thor::Shell::Color::YELLOW
12
- author = set_color story.requested_by, Thor::Shell::Color::WHITE
13
-
14
- say "* #{id} #{story.name} #{author}"
10
+ Pv.tracker.stories.each do |from_data|
11
+ preview Story.new(from_data)
15
12
  end
16
13
  end
17
14
 
@@ -65,5 +62,21 @@ module Pv
65
62
  def open story_id
66
63
  run "open https://www.pivotaltracker.com/story/show/#{story_id}"
67
64
  end
65
+
66
+ private
67
+ no_tasks do
68
+ def preview story
69
+ id = set_color "#{story.id}", Thor::Shell::Color::YELLOW
70
+ author = set_color story.requested_by, Thor::Shell::Color::WHITE
71
+ status = if story.in_progress?
72
+ set_color " (#{story.current_state})", Thor::Shell::Color::BLUE
73
+ else
74
+ ""
75
+ end
76
+ prefix = "* #{id}" + status
77
+
78
+ say "#{prefix} #{story.name} #{author}"
79
+ end
80
+ end
68
81
  end
69
82
  end
@@ -5,8 +5,7 @@ module Pv
5
5
  attr_reader :username, :password, :attributes, :project_id, :name
6
6
 
7
7
  def initialize
8
- @path = File.expand_path "~/.pv"
9
- @attributes = YAML::load_file @path
8
+ @attributes = YAML::load_file from_path
10
9
  @username = @attributes['username']
11
10
  @password = @attributes['password']
12
11
  @project_id = @attributes['project_id']
@@ -14,7 +13,20 @@ module Pv
14
13
  end
15
14
 
16
15
  def present?
17
- File.exists? @path
16
+ File.exists? from_path
17
+ end
18
+
19
+ private
20
+ def from_path
21
+ File.expand_path yaml_file_location
22
+ end
23
+
24
+ def yaml_file_location
25
+ if File.exists? "#{Dir.pwd}/.pv"
26
+ "#{Dir.pwd}/.pv"
27
+ else
28
+ "~/.pv"
29
+ end
18
30
  end
19
31
  end
20
32
  end
data/lib/pv/story.rb CHANGED
@@ -30,6 +30,17 @@ module Pv
30
30
  template.result(binding)
31
31
  end
32
32
 
33
+ # This story is "in progress" if its code has not left
34
+ # the dev machine, or is on stage and hasn't been pushed
35
+ # to production yet.
36
+ def in_progress?
37
+ if current_state =~ /started|finished/
38
+ true
39
+ else
40
+ false
41
+ end
42
+ end
43
+
33
44
  # Update the current status of a Story.
34
45
  def update(status)
35
46
  @pivotal_story.update(current_state: status)
data/lib/pv/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Pv
2
- VERSION = "0.0.8"
2
+ VERSION = "0.0.9"
3
3
  end
data/pv.gemspec CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |gem|
17
17
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
18
18
  gem.require_paths = ["lib"]
19
19
 
20
- gem.add_dependency 'pivotal-tracker'
20
+ gem.add_dependency 'pivotal-tracker', '0.5.10'
21
21
  gem.add_dependency 'thor'
22
+ gem.add_dependency 'nokogiri-happymapper'
22
23
  end
@@ -0,0 +1,4 @@
1
+ username: 'johndoe'
2
+ password: 'password'
3
+ project_id: 78901
4
+ name: 'John Doe'
File without changes
File without changes
File without changes
@@ -0,0 +1,80 @@
1
+ require 'pv/configuration'
2
+
3
+ module Pv
4
+ describe Configuration do
5
+ context "Using the global configuration file" do
6
+ before do
7
+ if File.exists? File.expand_path("~/.pv")
8
+ `cp ~/.pv ~/.pv.safe`
9
+ end
10
+
11
+ `cp spec/fixtures/pv.yml ~/.pv`
12
+ end
13
+
14
+ subject { Pv::Configuration.new }
15
+
16
+ it "reads from ~/.pv YAML" do
17
+ subject.should be_present
18
+ subject.attributes.should_not be_empty
19
+ subject.attributes.count.should == 4
20
+ end
21
+
22
+ it "parses a username" do
23
+ subject.username.should == "johndoe"
24
+ end
25
+
26
+ it "parses a password" do
27
+ subject.password.should == "password"
28
+ end
29
+
30
+ it "parses a full name" do
31
+ subject.name.should == "John Doe"
32
+ end
33
+
34
+ it "parses a project id into a number" do
35
+ subject.project_id.should == 123456
36
+ end
37
+
38
+ after do
39
+ if File.exists? File.expand_path("~/.pv.safe")
40
+ `cp ~/.pv.safe ~/.pv`
41
+ end
42
+ end
43
+ end
44
+
45
+ context "Using the project configuration" do
46
+ before do
47
+ `cp #{Dir.pwd}/spec/fixtures/pv.project.yml #{Dir.pwd}/.pv`
48
+ end
49
+
50
+ subject { Pv::Configuration.new }
51
+
52
+ it "reads from ~/.pv YAML" do
53
+ subject.should be_present
54
+ subject.attributes.should_not be_empty
55
+ subject.attributes.count.should == 4
56
+ end
57
+
58
+ it "parses a username" do
59
+ subject.username.should == "johndoe"
60
+ end
61
+
62
+ it "parses a password" do
63
+ subject.password.should == "password"
64
+ end
65
+
66
+ it "parses a full name" do
67
+ subject.name.should == "John Doe"
68
+ end
69
+
70
+ it "parses a project id into a number" do
71
+ subject.project_id.should == 78901
72
+ end
73
+
74
+ after do
75
+ `rm -rf #{Dir.pwd}/.pv`
76
+ end
77
+ end
78
+
79
+ end
80
+ end
@@ -18,5 +18,10 @@ module Pv
18
18
  subject.render.should_not be_blank
19
19
  subject.render.should =~ /Assigned To:/
20
20
  end
21
+
22
+ it "reports as being in progress" do
23
+ subject.update("started")
24
+ subject.should be_in_progress
25
+ end
21
26
  end
22
27
  end
metadata CHANGED
@@ -1,48 +1,64 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.8
5
4
  prerelease:
5
+ version: 0.0.9
6
6
  platform: ruby
7
7
  authors:
8
8
  - Tom Scott
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-21 00:00:00.000000000 Z
12
+ date: 2012-12-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
+ version_requirements: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '='
18
+ - !ruby/object:Gem::Version
19
+ version: 0.5.10
20
+ none: false
15
21
  name: pivotal-tracker
22
+ type: :runtime
23
+ prerelease: false
16
24
  requirement: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - '='
27
+ - !ruby/object:Gem::Version
28
+ version: 0.5.10
17
29
  none: false
30
+ - !ruby/object:Gem::Dependency
31
+ version_requirements: !ruby/object:Gem::Requirement
18
32
  requirements:
19
33
  - - ! '>='
20
34
  - !ruby/object:Gem::Version
21
35
  version: '0'
36
+ none: false
37
+ name: thor
22
38
  type: :runtime
23
39
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
40
+ requirement: !ruby/object:Gem::Requirement
26
41
  requirements:
27
42
  - - ! '>='
28
43
  - !ruby/object:Gem::Version
29
44
  version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: thor
32
- requirement: !ruby/object:Gem::Requirement
33
45
  none: false
46
+ - !ruby/object:Gem::Dependency
47
+ version_requirements: !ruby/object:Gem::Requirement
34
48
  requirements:
35
49
  - - ! '>='
36
50
  - !ruby/object:Gem::Version
37
51
  version: '0'
52
+ none: false
53
+ name: nokogiri-happymapper
38
54
  type: :runtime
39
55
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
56
+ requirement: !ruby/object:Gem::Requirement
42
57
  requirements:
43
58
  - - ! '>='
44
59
  - !ruby/object:Gem::Version
45
60
  version: '0'
61
+ none: false
46
62
  description: A command-line interface to Pivotal Tracker.
47
63
  email:
48
64
  - tubbo@psychedeli.ca
@@ -69,15 +85,16 @@ files:
69
85
  - lib/templates/help.txt
70
86
  - lib/templates/story.txt.erb
71
87
  - pv.gemspec
72
- - spec/extensions/object_spec.rb
73
- - spec/extensions/string_spec.rb
74
88
  - spec/fixtures/cassettes/pivotal_client_connection.yml
75
89
  - spec/fixtures/cassettes/pivotal_find_story.yml
76
90
  - spec/fixtures/cassettes/pivotal_project_stories_search.yml
91
+ - spec/fixtures/pv.project.yml
77
92
  - spec/fixtures/pv.yml
78
- - spec/models/bug_tracker_spec.rb
79
- - spec/models/configuration_spec.rb
80
- - spec/models/story_spec.rb
93
+ - spec/lib/core_ext/object_spec.rb
94
+ - spec/lib/core_ext/string_spec.rb
95
+ - spec/lib/pv/bug_tracker_spec.rb
96
+ - spec/lib/pv/configuration_spec.rb
97
+ - spec/lib/pv/story_spec.rb
81
98
  - spec/spec_helper.rb
82
99
  homepage: http://github.com/tubbo/pv
83
100
  licenses: []
@@ -86,31 +103,32 @@ rdoc_options: []
86
103
  require_paths:
87
104
  - lib
88
105
  required_ruby_version: !ruby/object:Gem::Requirement
89
- none: false
90
106
  requirements:
91
107
  - - ! '>='
92
108
  - !ruby/object:Gem::Version
93
109
  version: '0'
94
- required_rubygems_version: !ruby/object:Gem::Requirement
95
110
  none: false
111
+ required_rubygems_version: !ruby/object:Gem::Requirement
96
112
  requirements:
97
113
  - - ! '>='
98
114
  - !ruby/object:Gem::Version
99
115
  version: '0'
116
+ none: false
100
117
  requirements: []
101
118
  rubyforge_project:
102
- rubygems_version: 1.8.24
119
+ rubygems_version: 1.8.23
103
120
  signing_key:
104
121
  specification_version: 3
105
122
  summary: A command-line interface to Pivotal Tracker.
106
123
  test_files:
107
- - spec/extensions/object_spec.rb
108
- - spec/extensions/string_spec.rb
109
124
  - spec/fixtures/cassettes/pivotal_client_connection.yml
110
125
  - spec/fixtures/cassettes/pivotal_find_story.yml
111
126
  - spec/fixtures/cassettes/pivotal_project_stories_search.yml
127
+ - spec/fixtures/pv.project.yml
112
128
  - spec/fixtures/pv.yml
113
- - spec/models/bug_tracker_spec.rb
114
- - spec/models/configuration_spec.rb
115
- - spec/models/story_spec.rb
129
+ - spec/lib/core_ext/object_spec.rb
130
+ - spec/lib/core_ext/string_spec.rb
131
+ - spec/lib/pv/bug_tracker_spec.rb
132
+ - spec/lib/pv/configuration_spec.rb
133
+ - spec/lib/pv/story_spec.rb
116
134
  - spec/spec_helper.rb
@@ -1,43 +0,0 @@
1
- require 'pv/configuration'
2
-
3
- module Pv
4
- describe Configuration do
5
- before do
6
- if File.exists? File.expand_path("~/.pv")
7
- `cp ~/.pv ~/.pv.safe`
8
- end
9
-
10
- `cp spec/fixtures/pv.yml ~/.pv`
11
- end
12
-
13
- subject { Pv::Configuration.new }
14
-
15
- it "reads from ~/.pv YAML" do
16
- subject.should be_present
17
- subject.attributes.should_not be_empty
18
- subject.attributes.count.should == 4
19
- end
20
-
21
- it "parses a username" do
22
- subject.username.should == "johndoe"
23
- end
24
-
25
- it "parses a password" do
26
- subject.password.should == "password"
27
- end
28
-
29
- it "parses a full name" do
30
- subject.name.should == "John Doe"
31
- end
32
-
33
- it "parses a project id into a number" do
34
- subject.project_id.should == 123456
35
- end
36
-
37
- after do
38
- if File.exists? File.expand_path("~/.pv.safe")
39
- `cp ~/.pv.safe ~/.pv`
40
- end
41
- end
42
- end
43
- end