pivotalprinter 0.1.8 → 0.2.0

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.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  *.swp
2
2
  pkg
3
3
  Gemfile.lock
4
+ .rvmrc
@@ -15,7 +15,7 @@ module Pivotalprinter
15
15
  class Printer
16
16
  def run
17
17
  opts = parse_options
18
- yaml = load_yaml_config
18
+ yaml = load_yaml_config
19
19
  project,token = extract_config(opts, yaml)
20
20
  Pivotalprinter::Client.project = project
21
21
  Pivotalprinter::Client.token = token
@@ -26,7 +26,7 @@ module Pivotalprinter
26
26
  else Pivotalprinter::Iteration.open('current').stories
27
27
  end
28
28
  generate_output
29
- rescue ConfigNeeded
29
+ rescue ConfigNeeded
30
30
  print_config
31
31
  rescue TokenMissing
32
32
  Trollop::die :token, "token must be specified through config file or explicitly"
@@ -37,18 +37,18 @@ module Pivotalprinter
37
37
  puts "[!] There was an error while generating the PDF file... What happened was:".white.on_red
38
38
  raise
39
39
  end
40
-
40
+
41
41
  def print_config
42
42
  puts %{---\ndefault: &default\n token: "YOUR TOKEN HERE"\n project: 123\n\nsome_project:\n <<: *default # so you don't need to rewrite the token\n project: 789}
43
43
  end
44
-
44
+
45
45
  def parse_options
46
46
  opts = Trollop::options do
47
47
  version "pivotalprinter #{Pivotalprinter::VERSION} (c) 2010#{(year = Time.now.year) > 2010 ? "-#{year}" : ''} pkw.de"
48
48
  banner <<-EOS
49
49
  Pivotalprinter is an awesome program to print stories from the PivotalTracker.
50
50
 
51
- Useage:
51
+ Usage:
52
52
  pivotalprinter [-p PROJECT] [-t TOKEN] [current|backlog|done|STORY]
53
53
  pivotalprinter --config > ~/.pivotalprinterrc
54
54
 
@@ -58,15 +58,15 @@ EOS
58
58
  opt :token, "Pivotaltracker Token", :short => "-t", :type => :string
59
59
  opt :config, "show example configuration", :short => "-c"
60
60
  end
61
-
61
+
62
62
  raise ConfigNeeded if opts[:config]
63
63
  opts
64
64
  end
65
-
65
+
66
66
  def load_yaml_config
67
67
  File.exist?("#{ENV["HOME"]}/.pivotalprinterrc") ? YAML::load_file("#{ENV["HOME"]}/.pivotalprinterrc") : {}
68
68
  end
69
-
69
+
70
70
  def extract_config(opts, yaml)
71
71
  if opts[:project].nil? && yaml.key?("default")
72
72
  return yaml["default"]["project"], yaml["default"]["token"]
@@ -78,7 +78,7 @@ EOS
78
78
  raise ProjectMissing
79
79
  end
80
80
  end
81
-
81
+
82
82
  def generate_output
83
83
  Prawn::Document.generate("/tmp/stories.pdf", :page_layout => :landscape, :margin => [25, 25, 50, 25], :page_size => 'A4') do |pdf|
84
84
  @num_cards_on_page = 0
@@ -97,7 +97,7 @@ EOS
97
97
  pdf.define_grid(:columns => 2, :rows => 2, :gutter => 42)
98
98
  # pdf.grid.show_all
99
99
 
100
- row = (@num_cards_on_page+1) / 4
100
+ row = (@num_cards_on_page + 1) / 4
101
101
  column = i % 2
102
102
  padding = 12
103
103
  cell = pdf.grid( row, column )
@@ -105,25 +105,41 @@ EOS
105
105
 
106
106
  pdf.stroke_color = "666666"
107
107
  pdf.stroke_bounds
108
-
109
- pdf.text_box story.name, :size => 14, :height => 50, :overflow => :truncate, :width => cell.width-(padding*2)-50, :at => [pdf.bounds.left+padding+50, pdf.bounds.top-padding]
110
- pdf.text_box story.description, :size => 8, :overflow => :truncate, :width => cell.width-(padding*2), :height => cell.height-(padding*7), :at => [pdf.bounds.left+padding, pdf.bounds.top-padding-55]
111
- pdf.text_box "ID #{story.id}", :size => 8, :at => [pdf.bounds.left, pdf.bounds.bottom+padding], :align => :right
112
- pdf.text_box story.created_at.strftime('%F'), :size => 8, :at => [pdf.bounds.left, pdf.bounds.bottom+padding], :align => :left
108
+
109
+ pdf.text_box story.name, :size => 14, :height => 50, :overflow => :truncate,
110
+ :width => cell.width - (padding * 2) - 50,
111
+ :at => [pdf.bounds.left + padding + 50, pdf.bounds.top - padding]
112
+
113
+ pdf.text_box story.description, :size => 8, :overflow => :truncate,
114
+ :width => cell.width - ( padding * 2), :height => cell.height - (padding * 7),
115
+ :at => [pdf.bounds.left + padding, pdf.bounds.top - padding - 55]
116
+
117
+ pdf.text_box "Created at: #{story.created_at.strftime('%F')}", :size => 8,
118
+ :at => [pdf.bounds.left + padding, pdf.bounds.bottom + padding]
119
+
120
+ pdf.text_box "ID: #{story.id}", :size => 8,
121
+ :at => [pdf.bounds.left + 110, pdf.bounds.bottom + padding]
122
+
123
+ pdf.text_box "State: #{story.current_state}", :size => 8,
124
+ :at => [pdf.bounds.left + 170, pdf.bounds.bottom + padding]
125
+
126
+ pdf.text_box "Requester: #{story.requested_by}", :size => 8,
127
+ :at => [pdf.bounds.left + 240, pdf.bounds.bottom + padding]
128
+
113
129
 
114
130
  x, y = 32, 205
115
- if story.story_type=="feature"
131
+ if story.story_type == "feature"
116
132
  pdf.fill_color story.points_background
117
- pdf.fill_circle [x,y], 25
133
+ pdf.fill_circle [x, y], 25
118
134
  pdf.font_size = 36
119
135
  pdf.font "Helvetica", :style => :bold
120
136
  pdf.fill_color 'ffffff'
121
- pdf.draw_text "#{story.points}", :at => [x-10, y-12]
137
+ pdf.draw_text "#{story.points}", :at => [x - 10, y - 12]
122
138
  pdf.fill_color '000000'
123
139
  pdf.font_size = 14
124
140
  pdf.font "#{Prawn::BASEDIR}/data/fonts/DejaVuSans.ttf", :style => :normal
125
141
  else
126
- pdf.image open("#{File.dirname(__FILE__)}/../images/#{story.story_type}.png"), :position => 5, :vposition => 5
142
+ pdf.image open("#{File.dirname(__FILE__)}/../images/#{story.story_type}.png"), :position => 5, :vposition => 5
127
143
  end
128
144
  end
129
145
  end
@@ -7,10 +7,9 @@ module Pivotalprinter
7
7
  require 'term/ansicolor'
8
8
  require 'prawn'
9
9
  require 'prawn/layout/grid'
10
- require 'spruz/xt/full'
10
+ require 'tins/xt/full'
11
11
  require 'trollop'
12
12
  require 'yaml'
13
- require "rubygems"
14
13
  require "open-uri"
15
14
  require "nokogiri"
16
15
  require "pivotalprinter/client"
@@ -1,3 +1,3 @@
1
1
  module Pivotalprinter
2
- VERSION = '0.1.8'
2
+ VERSION = '0.2.0'
3
3
  end
@@ -11,16 +11,17 @@ Gem::Specification.new do |s|
11
11
  s.homepage = "http://pkw.de"
12
12
  s.summary = %q{Story printer for pivotaltracker}
13
13
  s.description = %q{Generate nice story cards from pivotaltracker.}
14
-
14
+
15
15
  s.files = `git ls-files`.split("\n")
16
16
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
17
17
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
18
  s.require_paths = ["lib"]
19
-
20
- s.add_dependency('term-ansicolor','>= 0.4.4')
21
- s.add_dependency('prawn','~>0.11.1')
22
- s.add_dependency('spruz','>= 0.2.0')
23
- s.add_dependency('trollop','>= 1.16.2')
24
- s.add_dependency('nokogiri','>= 1.4.4')
19
+
20
+ s.add_dependency('term-ansicolor')
21
+ s.add_dependency('prawn')
22
+ s.add_dependency('tins')
23
+ s.add_dependency('trollop')
24
+ s.add_dependency('nokogiri')
25
25
  s.add_development_dependency('rake')
26
+ s.add_development_dependency('pry')
26
27
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pivotalprinter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.8
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,66 +9,107 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-10-25 00:00:00.000000000 Z
12
+ date: 2012-11-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: term-ansicolor
16
- requirement: &2157499160 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.4.4
21
+ version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2157499160
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: prawn
27
- requirement: &2157498640 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
- - - ~>
35
+ - - ! '>='
31
36
  - !ruby/object:Gem::Version
32
- version: 0.11.1
37
+ version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *2157498640
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
- name: spruz
38
- requirement: &2157498180 !ruby/object:Gem::Requirement
47
+ name: tins
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
42
52
  - !ruby/object:Gem::Version
43
- version: 0.2.0
53
+ version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *2157498180
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: trollop
49
- requirement: &2157497720 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
53
68
  - !ruby/object:Gem::Version
54
- version: 1.16.2
69
+ version: '0'
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *2157497720
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: nokogiri
60
- requirement: &2157497260 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
64
84
  - !ruby/object:Gem::Version
65
- version: 1.4.4
85
+ version: '0'
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *2157497260
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: rake
71
- requirement: &2157496860 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: pry
112
+ requirement: !ruby/object:Gem::Requirement
72
113
  none: false
73
114
  requirements:
74
115
  - - ! '>='
@@ -76,7 +117,12 @@ dependencies:
76
117
  version: '0'
77
118
  type: :development
78
119
  prerelease: false
79
- version_requirements: *2157496860
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
80
126
  description: Generate nice story cards from pivotaltracker.
81
127
  email:
82
128
  - dev@pkw.de
@@ -123,7 +169,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
123
169
  version: '0'
124
170
  segments:
125
171
  - 0
126
- hash: 2423194670009355441
172
+ hash: 3495001522045933990
127
173
  required_rubygems_version: !ruby/object:Gem::Requirement
128
174
  none: false
129
175
  requirements:
@@ -132,10 +178,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
178
  version: '0'
133
179
  segments:
134
180
  - 0
135
- hash: 2423194670009355441
181
+ hash: 3495001522045933990
136
182
  requirements: []
137
183
  rubyforge_project:
138
- rubygems_version: 1.8.10
184
+ rubygems_version: 1.8.24
139
185
  signing_key:
140
186
  specification_version: 3
141
187
  summary: Story printer for pivotaltracker