pivotal_to_pdf 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -5,6 +5,9 @@ gem 'prawn'
5
5
  gem 'thor'
6
6
  group :test do
7
7
  gem 'rspec'
8
+ gem "guard-spork"
9
+ gem "guard-rspec"
10
+ gem "growl-rspec"
8
11
  end
9
12
 
10
13
  group :test, :development do
data/Gemfile.lock CHANGED
@@ -12,8 +12,21 @@ GEM
12
12
  activesupport (3.0.9)
13
13
  builder (2.1.2)
14
14
  diff-lcs (1.1.3)
15
+ ffi (1.0.11)
16
+ growl (1.0.3)
17
+ growl-rspec (0.0.1)
18
+ growl
19
+ rspec
20
+ guard (1.0.1)
21
+ ffi (>= 0.5.0)
22
+ thor (~> 0.14.6)
23
+ guard-rspec (0.7.0)
24
+ guard (>= 0.10.0)
25
+ guard-spork (0.6.1)
26
+ guard (>= 0.10.0)
27
+ spork (>= 0.8.4)
15
28
  i18n (0.5.0)
16
- pdf-reader (1.0.0)
29
+ pdf-reader (1.1.0)
17
30
  Ascii85 (~> 1.0.0)
18
31
  ruby-rc4
19
32
  prawn (0.12.0)
@@ -21,15 +34,16 @@ GEM
21
34
  ttfunk (~> 1.0.2)
22
35
  rainbow (1.1.3)
23
36
  rake (0.9.2.2)
24
- rspec (2.8.0)
25
- rspec-core (~> 2.8.0)
26
- rspec-expectations (~> 2.8.0)
27
- rspec-mocks (~> 2.8.0)
28
- rspec-core (2.8.0)
29
- rspec-expectations (2.8.0)
30
- diff-lcs (~> 1.1.2)
31
- rspec-mocks (2.8.0)
32
- ruby-rc4 (0.1.3)
37
+ rspec (2.9.0)
38
+ rspec-core (~> 2.9.0)
39
+ rspec-expectations (~> 2.9.0)
40
+ rspec-mocks (~> 2.9.0)
41
+ rspec-core (2.9.0)
42
+ rspec-expectations (2.9.1)
43
+ diff-lcs (~> 1.1.3)
44
+ rspec-mocks (2.9.0)
45
+ ruby-rc4 (0.1.5)
46
+ spork (0.9.0)
33
47
  thor (0.14.6)
34
48
  ttfunk (1.0.3)
35
49
 
@@ -38,6 +52,9 @@ PLATFORMS
38
52
 
39
53
  DEPENDENCIES
40
54
  activeresource (= 3.0.9)
55
+ growl-rspec
56
+ guard-rspec
57
+ guard-spork
41
58
  prawn
42
59
  rainbow
43
60
  rake
data/Guardfile ADDED
@@ -0,0 +1,11 @@
1
+ guard 'spork' do
2
+ watch('Gemfile')
3
+ watch('Gemfile.lock')
4
+ watch('spec/spec_helper.rb') { :rspec }
5
+ end
6
+
7
+ guard 'rspec', :all_after_pass => false, :cli => "--color --format documentation --drb" do
8
+ watch(%r{^spec/.+_spec\.rb$})
9
+ watch(%r{^lib/(.+)/(.+)\.rb$}) { |m| "spec" }
10
+ watch('spec/spec_helper.rb') { "spec" }
11
+ end
data/README.md CHANGED
@@ -16,8 +16,13 @@ First you need to create a .pivotal.yml under your home directory. On windows, h
16
16
 
17
17
  a sample .pivotal.yml:
18
18
 
19
- token: your-api-token-of-pivotal-tracker
20
- project_id: your-ptroject-id
19
+ ```yaml
20
+ token: your-api-token-of-pivotal-tracker
21
+ project_id: your-ptroject-id
22
+ formatter: PivotalToPdf::DefaultFormatter
23
+ ```
24
+
25
+ The meaning of the ```formatter``` key will be explained in the next section
21
26
 
22
27
  After install the gem, you can do:
23
28
 
@@ -60,10 +65,29 @@ Printed a green bounding box for feature, a yellow box for chores and a red box
60
65
 
61
66
  The gem assumes that you have https access to the pivotal tracker
62
67
 
68
+ ## Formatters
69
+
70
+ From the version 1.2, The gem supports alternative formatter other than the default one.
71
+ In the ```.pivotal.yml``` file, if you define a key like
72
+
73
+ ```yaml
74
+
75
+ formatter: PivotalToPdf::MyPrettyHtmlWriter
76
+ ```
77
+
78
+ The gem will use ```PivotalToPdf::MyPrettyHtmlWriter``` to generate the output.
79
+
80
+ The class implementation should have the same interface as the ```DefaultFormatter```
81
+
82
+ - The ```initialize``` should take an array of stories
83
+ - The ```write_to``` method write the output
84
+
85
+ This feature is associated to the [issue #14](pivotal_to_pdf/issues/14). I basically rewrite the code to implement this myself.
86
+
63
87
  ##Contributors
64
88
  * [Yi Wen](https://github.com/ywen)
65
89
  * Carol Nichols
66
90
  * Kristian Rasmussen
67
91
  * [Alastair Mair](https://github.com/amair)
68
92
  * [John-Mason P. Shackelford](https://github.com/jpshackelford)
69
- * [mogul](https://github.com/mogul)
93
+ * [Bret Mogilefsky](https://github.com/mogul)
@@ -0,0 +1,13 @@
1
+ module PivotalToPdf
2
+ class Configure
3
+ def initialize
4
+ base_dir = ENV["PIVOTAL_TO_PDF_CONFIG_DIR"] || "~"
5
+ info = YAML.load_file File.expand_path("#{base_dir}/.pivotal.yml")
6
+ info.each do |key, value|
7
+ self.class.send :define_method, key do
8
+ value
9
+ end
10
+ end
11
+ end
12
+ end
13
+ end
@@ -5,7 +5,7 @@ require 'prawn'
5
5
  require 'rainbow'
6
6
 
7
7
  module PivotalToPdf
8
- class PdfWriter
8
+ class DefaultFormatter
9
9
  attr_reader :stories
10
10
  private :stories
11
11
  def initialize(stories)
@@ -0,0 +1,12 @@
1
+ module PivotalToPdf
2
+ module FormatterFactory
3
+ class << self
4
+ def formatter
5
+ config = Configure.new
6
+ config.respond_to?(:formatter) ?
7
+ config.formatter.constantize :
8
+ PivotalToPdf::DefaultFormatter
9
+ end
10
+ end
11
+ end
12
+ end
@@ -1,10 +1,9 @@
1
1
  module PivotalToPdf
2
2
  class Pivotal < ActiveResource::Base
3
3
  def self.inherited(sub)
4
- base_dir = ENV["PIVOTAL_TO_PDF_CONFIG_DIR"] || "~"
5
- info = YAML.load_file File.expand_path("#{base_dir}/.pivotal.yml")
6
- sub.site = %Q|https://www.pivotaltracker.com/services/v3/projects/#{info['project_id']}|
7
- sub.headers['X-TrackerToken'] = info["token"]
4
+ config = Configure.new
5
+ sub.site = %Q|https://www.pivotaltracker.com/services/v3/projects/#{config.project_id}|
6
+ sub.headers['X-TrackerToken'] = config.token
8
7
  end
9
8
 
10
9
  end
@@ -1,3 +1,3 @@
1
1
  module PivotalToPdf
2
- VERSION = "1.1.0"
2
+ VERSION = "1.2.0"
3
3
  end
@@ -3,38 +3,36 @@ require "pivotal_to_pdf/version"
3
3
  require 'rainbow'
4
4
  require 'thor'
5
5
  require 'active_resource'
6
+ require 'pivotal_to_pdf/configure'
7
+ require 'pivotal_to_pdf/formatter_factory'
6
8
  require 'pivotal_to_pdf/simple_text_formatter'
7
9
  require 'pivotal_to_pdf/pivotal'
8
10
  require 'pivotal_to_pdf/iteration'
9
11
  require 'pivotal_to_pdf/story'
10
- require 'pivotal_to_pdf/pdf_writer'
12
+ require 'pivotal_to_pdf/default_formatter'
11
13
  require 'pivotal_to_pdf/pt-workarounds'
12
14
 
13
- # Uncomment the following to trace the URLs and results generated via ActiveResource
14
- # require 'logger'
15
- # ActiveResource::Base.logger = Logger.new(STDERR)
16
-
17
15
  module PivotalToPdf
18
16
  class Main < Thor
19
17
  class << self
20
18
  def story(story_id)
21
19
  story = Story.find(story_id)
22
- PivotalToPdf::PdfWriter.new([ story ]).write_to(story_id)
20
+ FormatterFactory.formatter.new([ story ]).write_to(story_id)
23
21
  end
24
22
 
25
23
  def current_iteration
26
24
  iteration = Iteration.find(:all, :params => {:group => "current"}).first
27
- PivotalToPdf::PdfWriter.new(iteration.stories).write_to("current")
25
+ FormatterFactory.formatter.new(iteration.stories).write_to("current")
28
26
  end
29
27
 
30
28
  def iteration(iteration_number)
31
29
  iteration = Iteration.find(:all, :params => {:offset => iteration_number.to_i - 1, :limit => 1}).first
32
- PivotalToPdf::PdfWriter.new(iteration.stories).write_to(iteration_number)
30
+ FormatterFactory.formatter.new(iteration.stories).write_to(iteration_number)
33
31
  end
34
32
 
35
33
  def label(label_text)
36
34
  stories = Story.find(:all, :params => {:filter => "label:\"" + label_text + "\""})
37
- PivotalToPdf::PdfWriter.new(stories).write_to(label_text)
35
+ FormatterFactory.formatter.new(stories).write_to(label_text)
38
36
  end
39
37
  end
40
38
  end
@@ -11,13 +11,14 @@ Gem::Specification.new do |s|
11
11
  s.description = "Convert Pivotal Tracker Stories to 4x6 PDF for printing so that you can stick the card to your story board"
12
12
 
13
13
  s.files = `git ls-files`.split("\n")
14
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
14
+ s.executables = s.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
15
+ s.test_files = s.files.grep(%r{^(test|spec|features)/})
16
16
  s.require_paths = ["lib"]
17
17
  s.author = "Yi Wen"
18
- s.add_runtime_dependency(%q<activeresource>, ["3.0.9"])
19
- s.add_runtime_dependency(%q<prawn>, ["0.12.0"])
20
- s.add_runtime_dependency(%q<rainbow>, [">= 0"])
21
- s.add_runtime_dependency(%q<thor>, [">= 0"])
18
+ s.add_runtime_dependency(%q<activeresource>, "3.0.9")
19
+ s.add_runtime_dependency(%q<prawn>, "0.12.0")
20
+ s.add_runtime_dependency(%q<rainbow>, ">= 0")
21
+ s.add_runtime_dependency(%q<thor>, ">= 0")
22
+ s.add_development_dependency(%q<rspec>)
22
23
  s.homepage = "https://github.com/ywen/pivotal_to_pdf"
23
24
  end
@@ -0,0 +1,49 @@
1
+ require "spec_helper"
2
+
3
+ module PivotalToPdf
4
+ describe Configure do
5
+ describe ".new" do
6
+ let(:configurations) do
7
+ {
8
+ :project_id => "1233",
9
+ :token => "aaaaa",
10
+ :formatter => "PivotalToPdf::SomethingCrazy",
11
+ :something_else => "some other my own configs"
12
+ }
13
+ end
14
+ before(:each) do
15
+ YAML.stub(:load_file).and_return configurations
16
+ end
17
+
18
+ context "when the environment var PIVOTAL_TO_PDF_CONFIG_DIR is defined" do
19
+ before(:each) { ENV["PIVOTAL_TO_PDF_CONFIG_DIR"] = "/a/dir" }
20
+ after(:each) { ENV["PIVOTAL_TO_PDF_CONFIG_DIR"] = nil }
21
+ it "loads the file from the position" do
22
+ YAML.should_receive(:load_file).with("/a/dir/.pivotal.yml")
23
+ Configure.new
24
+ end
25
+ end
26
+ context "when the environment var PIVOTAL_TO_PDF_CONFIG_DIR is not defined" do
27
+ before(:each) { ENV["PIVOTAL_TO_PDF_CONFIG_DIR"] = nil }
28
+ it "loads the file from the HOME" do
29
+ YAML.should_receive(:load_file).with(File.expand_path("~/.pivotal.yml"))
30
+ Configure.new
31
+ end
32
+ end
33
+ context "defines methods for each key loaded from the config yaml file" do
34
+ {
35
+ :project_id => "1233",
36
+ :token => "aaaaa",
37
+ :formatter => "PivotalToPdf::SomethingCrazy",
38
+ :something_else => "some other my own configs"
39
+ }.each do |key, value|
40
+ it "defines #{key} as a method and returns the value: #{value}" do
41
+ subject.send(key).should eq(value)
42
+ end
43
+ end
44
+ end
45
+
46
+ end
47
+ end
48
+ end
49
+
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ module PivotalToPdf
4
+ describe FormatterFactory do
5
+ describe ".current_formatter" do
6
+ before(:each) do
7
+ Configure.stub(:new).and_return config
8
+ end
9
+
10
+ context "when the format_class is not defined" do
11
+ let(:config) { double :config }
12
+ it "returns the default formatter" do
13
+ FormatterFactory.formatter.should eq(PivotalToPdf::DefaultFormatter)
14
+ end
15
+ end
16
+
17
+ context "when the format_class is defined" do
18
+ let(:config) { double :config, :formatter => "PivotalToPdf::AClass" }
19
+ before(:each) do
20
+ PivotalToPdf::AClass = Class.new
21
+ end
22
+
23
+ it "returns the default formatter" do
24
+ FormatterFactory.formatter.should eq(PivotalToPdf::AClass)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -3,12 +3,25 @@ require File.expand_path(File.join(File.dirname(__FILE__), "spec_helper"))
3
3
  module PivotalToPdf
4
4
  describe Main do
5
5
  let(:writer) {double :writer, :write_to => true}
6
+ before(:each) do
7
+ FormatterFactory.stub(:formatter).and_return DefaultFormatter
8
+ end
9
+
10
+ shared_examples "formatter fetching" do
11
+ it "asks the FormatterFactory for the formatter" do
12
+ FormatterFactory.should_receive(:formatter).and_return DefaultFormatter
13
+ method.call
14
+ end
15
+ end
6
16
  describe ".story" do
7
17
  let(:story) {double :story}
18
+ let(:method) { lambda{ Main.story 32 } }
8
19
  before(:each) do
9
20
  Story.stub(:find).and_return story
10
- PivotalToPdf::PdfWriter.stub(:new).and_return writer
21
+ DefaultFormatter.stub(:new).and_return writer
11
22
  end
23
+
24
+ include_examples "formatter fetching"
12
25
 
13
26
  it "initiates a story" do
14
27
  Story.should_receive(:find).with(23).and_return story
@@ -16,7 +29,7 @@ module PivotalToPdf
16
29
  end
17
30
 
18
31
  it "build a pdf writer" do
19
- PivotalToPdf::PdfWriter.should_receive(:new).with([ story ]).and_return writer
32
+ DefaultFormatter.should_receive(:new).with([ story ]).and_return writer
20
33
  Main.story 23
21
34
  end
22
35
 
@@ -28,10 +41,12 @@ module PivotalToPdf
28
41
  describe ".current_iteration" do
29
42
  let(:stories) {double :stories_from_iteration}
30
43
  let(:iteration) {double :iteration, :stories => stories}
44
+ let(:method) { lambda{ Main.current_iteration } }
31
45
  before(:each) do
32
46
  Iteration.stub(:find).and_return [iteration, double]
33
- PivotalToPdf::PdfWriter.stub(:new).and_return writer
47
+ DefaultFormatter.stub(:new).and_return writer
34
48
  end
49
+ include_examples "formatter fetching"
35
50
 
36
51
  it "initiates an Iteration" do
37
52
  Iteration.should_receive(:find).with(:all, :params => {:group => "current"}).and_return [iteration]
@@ -39,7 +54,7 @@ module PivotalToPdf
39
54
  end
40
55
 
41
56
  it "build a pdf writer" do
42
- PivotalToPdf::PdfWriter.should_receive(:new).with(stories).and_return writer
57
+ DefaultFormatter.should_receive(:new).with(stories).and_return writer
43
58
  Main.current_iteration
44
59
  end
45
60
 
@@ -52,18 +67,21 @@ module PivotalToPdf
52
67
  describe ".iteration" do
53
68
  let(:stories) {double :stories_from_iteration}
54
69
  let(:iteration) {double :iteration, :stories => stories}
70
+ let(:method) { lambda{ Main.iteration 13 } }
55
71
  before(:each) do
56
72
  Iteration.stub(:find).and_return [iteration, double]
57
- PivotalToPdf::PdfWriter.stub(:new).and_return writer
73
+ DefaultFormatter.stub(:new).and_return writer
58
74
  end
59
75
 
76
+ include_examples "formatter fetching"
77
+
60
78
  it "fetches an Iteration, given the Iteration number (you have to minus to get the accurate iteration)" do
61
79
  Iteration.should_receive(:find).with(:all, :params => {:offset => 12, :limit => 1}).and_return [iteration]
62
80
  Main.iteration 13
63
81
  end
64
82
 
65
83
  it "build a pdf writer" do
66
- PivotalToPdf::PdfWriter.should_receive(:new).with(stories).and_return writer
84
+ DefaultFormatter.should_receive(:new).with(stories).and_return writer
67
85
  Main.iteration 13
68
86
  end
69
87
 
@@ -75,10 +93,12 @@ module PivotalToPdf
75
93
 
76
94
  describe ".label" do
77
95
  let(:story) {double :story}
96
+ let(:method) { lambda{ Main.label "testing" } }
78
97
  before(:each) do
79
98
  Story.stub(:find).and_return story
80
- PivotalToPdf::PdfWriter.stub(:new).and_return writer
99
+ DefaultFormatter.stub(:new).and_return writer
81
100
  end
101
+ include_examples "formatter fetching"
82
102
 
83
103
  it "initiates a label search" do
84
104
  # Kind of a null test here, not sure how else to spec it
@@ -87,7 +107,7 @@ module PivotalToPdf
87
107
  end
88
108
 
89
109
  it "build a pdf writer" do
90
- PivotalToPdf::PdfWriter.should_receive(:new).with(story).and_return writer
110
+ DefaultFormatter.should_receive(:new).with(story).and_return writer
91
111
  Main.label "testing"
92
112
  end
93
113
 
data/spec/spec_helper.rb CHANGED
@@ -1,23 +1,33 @@
1
- # Requires supporting files with custom matchers and macros, etc,
2
- # in ./support/ and its subdirectories.
3
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
4
- require "#{File.dirname(__FILE__)}/../lib/pivotal_to_pdf"
5
- Dir["#{File.dirname(__FILE__)}/../lib/**/*.rb"].each {|f| require f}
1
+ require 'rubygems'
2
+ require 'spork'
3
+ require 'rspec/core'
6
4
 
7
- RSpec.configure do |config|
8
- # == Mock Framework
9
- #
10
- # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
11
- #
12
- # config.mock_with :mocha
13
- # config.mock_with :flexmock
14
- # config.mock_with :rr
15
- config.mock_with :rspec
16
- # out = ENV['CC_BUILD_ARTIFACTS'] || "#{Rails.root}"
17
- # config.output_stream = File.open("#{out}/UnitTests/index.html", "w") if config.formatter_class.name =~ /HtmlFormatter/
5
+ Spork.prefork do
18
6
 
7
+ RSpec.configure do |config|
8
+ # == Mock Framework
9
+ #
10
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
11
+ #
12
+ # config.mock_with :mocha
13
+ # config.mock_with :flexmock
14
+ # config.mock_with :rr
15
+ config.mock_with :rspec
16
+ # out = ENV['CC_BUILD_ARTIFACTS'] || "#{Rails.root}"
17
+ # config.output_stream = File.open("#{out}/UnitTests/index.html", "w") if config.formatter_class.name =~ /HtmlFormatter/
19
18
 
20
- # If you're not using ActiveRecord, or you'd prefer not to run each of your
21
- # examples within a transaction, comment the following line or assign false
22
- # instead of true.
19
+
20
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
21
+ # examples within a transaction, comment the following line or assign false
22
+ # instead of true.
23
+ end
24
+
25
+ end
26
+
27
+ Spork.each_run do
28
+ # Requires supporting files with custom matchers and macros, etc,
29
+ # in ./support/ and its subdirectories.
30
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
31
+ require "#{File.dirname(__FILE__)}/../lib/pivotal_to_pdf"
32
+ Dir["#{File.dirname(__FILE__)}/../lib/**/*.rb"].each {|f| require f}
23
33
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pivotal_to_pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,33 +9,43 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-07 00:00:00.000000000 Z
12
+ date: 2012-04-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activeresource
16
- requirement: &70227699683300 !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
21
  version: 3.0.9
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70227699683300
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - '='
28
+ - !ruby/object:Gem::Version
29
+ version: 3.0.9
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: prawn
27
- requirement: &70227699682460 !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
37
  version: 0.12.0
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70227699682460
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - '='
44
+ - !ruby/object:Gem::Version
45
+ version: 0.12.0
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: rainbow
38
- requirement: &70227699681540 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70227699681540
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: thor
49
- requirement: &70227699680800 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,7 +69,28 @@ dependencies:
54
69
  version: '0'
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *70227699680800
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
58
94
  description: Convert Pivotal Tracker Stories to 4x6 PDF for printing so that you can
59
95
  stick the card to your story board
60
96
  email:
@@ -73,19 +109,24 @@ files:
73
109
  - CHANGELOG
74
110
  - Gemfile
75
111
  - Gemfile.lock
112
+ - Guardfile
76
113
  - Manifest
77
114
  - README.md
78
115
  - Rakefile
79
116
  - bin/pivotal_to_pdf
80
117
  - lib/pivotal_to_pdf.rb
118
+ - lib/pivotal_to_pdf/configure.rb
119
+ - lib/pivotal_to_pdf/default_formatter.rb
120
+ - lib/pivotal_to_pdf/formatter_factory.rb
81
121
  - lib/pivotal_to_pdf/iteration.rb
82
- - lib/pivotal_to_pdf/pdf_writer.rb
83
122
  - lib/pivotal_to_pdf/pivotal.rb
84
123
  - lib/pivotal_to_pdf/pt-workarounds.rb
85
124
  - lib/pivotal_to_pdf/simple_text_formatter.rb
86
125
  - lib/pivotal_to_pdf/story.rb
87
126
  - lib/pivotal_to_pdf/version.rb
88
127
  - pivotal_to_pdf.gemspec
128
+ - spec/pivotal_to_pdf/configure_spec.rb
129
+ - spec/pivotal_to_pdf/formatter_factory_spec.rb
89
130
  - spec/pivotal_to_pdf/simple_text_formatter_spec.rb
90
131
  - spec/pivotal_to_pdf/story_spec.rb
91
132
  - spec/pivotal_to_pdf_bin_spec.rb
@@ -104,9 +145,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
104
145
  - - ! '>='
105
146
  - !ruby/object:Gem::Version
106
147
  version: '0'
107
- segments:
108
- - 0
109
- hash: 1429925807640698784
110
148
  required_rubygems_version: !ruby/object:Gem::Requirement
111
149
  none: false
112
150
  requirements:
@@ -115,11 +153,13 @@ required_rubygems_version: !ruby/object:Gem::Requirement
115
153
  version: '0'
116
154
  requirements: []
117
155
  rubyforge_project:
118
- rubygems_version: 1.8.10
156
+ rubygems_version: 1.8.23
119
157
  signing_key:
120
158
  specification_version: 3
121
159
  summary: Convert Pivotal Tracker Stories to 4x6 PDF cards
122
160
  test_files:
161
+ - spec/pivotal_to_pdf/configure_spec.rb
162
+ - spec/pivotal_to_pdf/formatter_factory_spec.rb
123
163
  - spec/pivotal_to_pdf/simple_text_formatter_spec.rb
124
164
  - spec/pivotal_to_pdf/story_spec.rb
125
165
  - spec/pivotal_to_pdf_bin_spec.rb