dot_grid 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7ffb5b75ffa638ae3bfd9d7b42ca6ef7c6bc92a9
4
- data.tar.gz: e5849864c9d5bb7671909055a2b352d63bfb915d
3
+ metadata.gz: c613a6399306399f56670ee1d5c71eb19f0482fa
4
+ data.tar.gz: 1e84551b573e9a4da0ce43ef124e934da2361e1b
5
5
  SHA512:
6
- metadata.gz: c362a59e770ac32c855d1c3ba63937c42dcab3bdb132705fa134ccb813cdf760d1fb8b0ccb681f6ea85db6f134867dada43c5ff96ff4d12b71d7aaaeb9d06222
7
- data.tar.gz: 2a8006d84e41212fc53045952e0ffb4da63850a576c3664f7448e478a9c4c3a5f3181fb27c26c6ee754f6709c47ab2c256986faba95cb0bef471d1b4ceb5066d
6
+ metadata.gz: 2537b83875baf3ac3a25bbaee024eddd5152a51f02fd3b1194bad971739cafe74b09652533a5477d3683e71e9df4153f3f6cc64e2a414911b38fd604ad62a9ea
7
+ data.tar.gz: 51f22e55418a3b4c594da771c0fa4906cff45adb163308351e21571555e5239e114f2fcc0cc8be1188160caadda44ddaae3b4a48c7366ed3d701d852daca0e31
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- dot_grid (0.0.5)
5
- prawn (~> 1.0.0)
4
+ dot_grid (0.0.6)
5
+ prawn (~> 1.1.0)
6
6
  require_all (~> 1.3.2)
7
7
  trollop (~> 2.0)
8
8
 
@@ -20,9 +20,9 @@ GEM
20
20
  mime-types (2.3)
21
21
  multi_json (1.10.1)
22
22
  pdf-core (0.2.5)
23
- prawn (1.0.0)
24
- pdf-core (~> 0.2.2)
25
- ttfunk (~> 1.1.1)
23
+ prawn (1.1.0)
24
+ pdf-core (~> 0.2.5)
25
+ ttfunk (~> 1.2.0)
26
26
  rake (10.3.2)
27
27
  require_all (1.3.2)
28
28
  rest-client (1.6.7)
@@ -45,7 +45,7 @@ GEM
45
45
  thor (0.19.1)
46
46
  tins (1.3.0)
47
47
  trollop (2.0)
48
- ttfunk (1.1.1)
48
+ ttfunk (1.2.0)
49
49
 
50
50
  PLATFORMS
51
51
  ruby
data/README.md CHANGED
@@ -1,6 +1,7 @@
1
1
  [![Build Status](https://travis-ci.org/slabounty/dot_grid.svg?branch=master)](https://travis-ci.org/slabounty/dot_grid)
2
2
  [![Coverage Status](https://coveralls.io/repos/slabounty/dot_grid/badge.png?branch=master)](https://coveralls.io/r/slabounty/dot_grid?branch=master)
3
3
  [![Code Climate](https://codeclimate.com/github/slabounty/dot_grid.png)](https://codeclimate.com/github/slabounty/dot_grid)
4
+ [![Dependency Status](https://gemnasium.com/slabounty/dot_grid.svg)](https://gemnasium.com/slabounty/dot_grid)
4
5
 
5
6
  # DotGrid: dot grid planning pages
6
7
 
@@ -14,11 +15,11 @@ A simple ruby file for generating dot grid graph paper.
14
15
 
15
16
  A basic dot grid page can be generated like this ...
16
17
 
17
- bin/dotgrid -f dotgrid.pdf --grid-color CFBAEC --dot-weight 0.5 -m 0.0
18
+ bin/dotgrid -f dot_grid.pdf --page-types dot-grid --spacing 5 --grid-color CFBAEC --dot-weight 0.5 -m 0.0
18
19
 
19
20
  A basic planning page can be generated like this ...
20
21
 
21
- bin/dotgrid -f dotgrid_w5_c2dfff_no_grid.pdf --no-grid --grid-color CFBAEC --dot-weight 0.5 -m 0.0 --planner --planner-color-1 dddddd --planner-color-2 C2DFFF
22
+ bin/dotgrid -f planner_w5_c2dfff.pdf --page-types planner --grid-color CFBAEC --dot-weight 0.5 -m 0.0 --planner-color-1 dddddd --planner-color-2 C2DFFF
22
23
 
23
24
  To get help on the command and its options ...
24
25
  bin/dotgrid --help
@@ -34,17 +35,13 @@ The options and their defaults are ...
34
35
  </thead>
35
36
  <tbody>
36
37
  <tr><td>file-name</td><td>-f</td><td>dotgrid.pdf</td></tr>
37
- <tr><td>grid</td><td>-g</td><td>true</td></tr>
38
+ <tr><td>page-types</td><td>-p</td><td>Types of pages desired: DotGrid, Planner, Grid, HorizontalRule, Checkerboard (default: Planner)</td></tr>
38
39
  <tr><td>dot-weight</td><td>-d</td><td>1.5</td></tr>
39
40
  <tr><td>margin</td><td>-m</td><td>0.5</td></tr>
40
- <tr><td>page-size</td><td>-p</td><td>LETTER</td></tr>
41
- <tr><td>grid-color</td><td>-r</td><td>B3B3B3</td></tr>
41
+ <tr><td>page-size</td><td>-a</td><td>LETTER</td></tr>
42
+ <tr><td>grid-color</td><td>-g</td><td>B3B3B3</td></tr>
42
43
  <tr><td>spacing</td><td>-s</td><td>5</td></tr>
43
- <tr><td>pages</td><td>-a</td><td>1</td></tr>
44
- <tr><td>planner</td><td>-l</td><td>false</td></tr>
45
- <tr><td>planner-color-1</td><td>-n</td><td>CCCCCC</td></tr>
46
- <tr><td>planner-color-2</td><td>-e</td><td>0099FF</td></tr>
44
+ <tr><td>planner-color-1</td><td>-l</td><td>CCCCCC</td></tr>
45
+ <tr><td>planner-color-2</td><td>-n</td><td>0099FF</td></tr>
47
46
  </tbody>
48
47
  </table>
49
-
50
- ## Examples
data/base CHANGED
@@ -1,15 +1,21 @@
1
1
  # Base planner
2
- bin/dotgrid -f planner_w5_c2dfff_no_grid.pdf --no-dot-grid --grid-color CFBAEC --dot-weight 0.5 -m 0.0 --planner --planner-color-1 dddddd --planner-color-2 C2DFFF
3
- bin/dotgrid -f planner_w75_c2dfff_no_grid.pdf --no-dot-grid --grid-color CFBAEC --dot-weight 0.75 -m 0.0 --planner --planner-color-1 dddddd --planner-color-2 C2DFFF
2
+ bin/dotgrid -f planner_w5_c2dfff.pdf --page-types planner --grid-color CFBAEC --dot-weight 0.5 --margin 0.0 --planner-color-1 dddddd --planner-color-2 C2DFFF
3
+ bin/dotgrid -f planner_w75_c2dfff.pdf --page-types planner --grid-color CFBAEC --dot-weight 0.75 --margin 0.0 --planner-color-1 dddddd --planner-color-2 C2DFFF
4
4
 
5
5
  # Dot grid
6
- bin/dotgrid -f dot_grid_c2dfff.pdf --dot-grid --spacing 5 --grid-color CFBAEC -m 0.0
6
+ bin/dotgrid -f dot_grid_c2dfff.pdf --page-types dot_grid --spacing 5 --grid-color CFBAEC --margin 0.0
7
7
 
8
8
  # Regular grid
9
- bin/dotgrid -f grid_c2dfff.pdf --grid --no-dot-grid --spacing 5 --grid-color CFBAEC -m 0.0
9
+ bin/dotgrid -f grid_c2dfff.pdf --page-types grid --spacing 5 --grid-color CFBAEC --margin 0.0
10
10
 
11
11
  # Horizontal rule
12
- bin/dotgrid -f horizontal_rule_c2dfff.pdf --horizontal-rule --no-dot-grid --spacing 5 --grid-color CFBAEC -m 0.0
12
+ bin/dotgrid -f horizontal_rule_c2dfff.pdf --page-types horizontal-rule --spacing 5 --grid-color CFBAEC --margin 0.0
13
13
 
14
14
  # Checkerboard
15
- bin/dotgrid -f checkerboard_c2dfff.pdf --checkerboard --no-dot-grid --spacing 5 --grid-color CFBAEC -m 0.0
15
+ bin/dotgrid -f checkerboard_c2dfff.pdf --page-types checkerboard --spacing 5 --grid-color CFBAEC --margin 0.0
16
+
17
+ # Page Types (either with no spaces after commas or in quotes).
18
+ bin/dotgrid -f page_types.pdf --page-types "planner, checkerboard, grid, dot_grid" --spacing 5 --grid-color CFBAEC --margin 0.0
19
+
20
+ # Everything all at once ...
21
+ bin/dotgrid -f page_types.pdf --page-types "planner, checkerboard, grid, dot_grid, horizontal_rule" --spacing 5 --grid-color CFBAEC -m 0.0
data/bin/dotgrid CHANGED
@@ -10,17 +10,12 @@ require_all 'lib'
10
10
 
11
11
  opts = Trollop::options do
12
12
  opt :file_name, "File Name", :type => :string, :default => "dotgrid.pdf"
13
- opt :dot_grid, "Add a Dot Grid Page", default: true
13
+ opt :page_types, "Types of pages desired: Types of pages desired: DotGrid, Planner, Grid, HorizontalRule, Checkerboard", type: :string, default: "Planner"
14
14
  opt :dot_weight, "Dot Weight", :type => :float, :default => 1.5
15
15
  opt :margin, "Border", :type => :float, :default => 0.5
16
16
  opt :page_size, "Page Size (LEGAL, LETTER)", :type => :string, :default => "LETTER"
17
17
  opt :grid_color, "Grid Color (RGB)", :type => :string, :default => "B3B3B3"
18
18
  opt :spacing, "Dot Spacing (mm)", :type => :integer, :default => 5
19
- opt :pages, "Number of pages", :type => :integer, :default => 1
20
- opt :planner, "Add a Planner Page"
21
- opt :grid, "Add a Regular Grid page"
22
- opt :horizontal_rule, "Add a Horizontal Rule page"
23
- opt :checkerboard, "Add a Checkerboard page"
24
19
  opt :planner_color_1, "Planner Left and Footer color", type: :string, default: "CCCCCC"
25
20
  opt :planner_color_2, "Planner Right color", type: :string, default: "0099ff"
26
21
  end
data/dot_grid.gemspec CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |gem|
19
19
  gem.add_development_dependency "rspec", '~> 2.14.1'
20
20
  gem.add_development_dependency "rake", '~> 10.3.2'
21
21
  gem.add_development_dependency "coveralls"
22
- gem.add_dependency "prawn", '~> 1.0.0'
22
+ gem.add_dependency "prawn", '~> 1.1.0'
23
23
  gem.add_dependency "trollop", '~> 2.0'
24
24
  gem.add_dependency "require_all", '~> 1.3.2'
25
25
  end
@@ -7,42 +7,29 @@ module DotGrid
7
7
  :pdf,
8
8
  :file_name,
9
9
  :page_size,
10
- :grid,
11
- :dot_grid_page,
12
- :grid_page,
13
10
  :margin,
14
11
  :pages,
15
- :planner,
16
- :planner_page,
17
- :horizontal_rule,
18
- :horizontal_rule_page,
19
- :checkerboard,
20
- :checkerboard_page,
12
+ :page_types
21
13
  )
22
14
 
23
15
  def initialize(params)
24
16
  @file_name = params[:file_name] || "dotgrid.pdf"
25
17
  @page_size = params[:page_size] || "LETTER"
26
18
  @margin = params[:margin] || 0.5
27
- @pages = params[:pages] || 1
19
+ @page_types = params[:page_types] ? params[:page_types].split(",") : ["planner"]
28
20
  @pdf = Prawn::Document.new(margin: margin, page_size: page_size, skip_page_creation: true)
29
21
  params[:pdf] = pdf
22
+ @pages = create_pages(params)
23
+ end
30
24
 
31
- @dot_grid_page = DotGrid::Page::DotGrid.new(params) if params[:dot_grid]
32
- @planner_page = DotGrid::Page::Planner.new(params) if params[:planner]
33
- @grid_page = DotGrid::Page::Grid.new(params) if params[:grid]
34
- @horizontal_rule_page = DotGrid::Page::HorizontalRule.new(params) if params[:horizontal_rule]
35
- @checkerboard_page = DotGrid::Page::Checkerboard.new(params) if params[:checkerboard]
25
+ def create_pages(params)
26
+ page_types.map do |p|
27
+ DotGrid::Page::Factory.build(p.strip, params.clone)
28
+ end
36
29
  end
37
30
 
38
31
  def generate
39
- (1..pages).each do |page|
40
- planner_page.generate if planner_page
41
- grid_page.generate if grid_page
42
- dot_grid_page.generate if dot_grid_page
43
- horizontal_rule_page.generate if horizontal_rule_page
44
- checkerboard_page.generate if checkerboard_page
45
- end
32
+ pages.each { |page| page.generate }
46
33
  pdf.render_file file_name
47
34
  end
48
35
  end
@@ -0,0 +1,20 @@
1
+ module DotGrid
2
+ module Page
3
+ class Factory
4
+ class UnknownPageExeception < Exception; end
5
+
6
+ PAGES = {
7
+ 'dot_grid' => ::DotGrid::Page::DotGrid,
8
+ 'planner' => ::DotGrid::Page::Planner,
9
+ 'grid' => ::DotGrid::Page::Grid,
10
+ 'horizontal_rule' => ::DotGrid::Page::HorizontalRule,
11
+ 'checkerboard' => ::DotGrid::Page::Checkerboard
12
+ }
13
+
14
+ def self.build(page_type, params)
15
+ raise UnknownPageExeception, "Unknown page type: #{page_type}" unless PAGES[page_type]
16
+ PAGES[page_type].new(params)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module DotGrid
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
data/lib/dot_grid.rb CHANGED
@@ -7,6 +7,7 @@ require 'dot_grid/page/planner'
7
7
  require 'dot_grid/page/grid'
8
8
  require 'dot_grid/page/horizontal_rule'
9
9
  require 'dot_grid/page/checkerboard'
10
+ require 'dot_grid/page/factory'
10
11
 
11
12
  require 'dot_grid/pattern/pattern'
12
13
  require 'dot_grid/pattern/grid'
@@ -16,77 +16,16 @@ describe "DotGrid::Generator" do
16
16
  expect(subject.margin).to eq(0.5)
17
17
  end
18
18
 
19
- it "has a default number of pages" do
20
- expect(subject.pages).to eq(1)
21
- end
22
-
23
19
  it "creates a pdf file" do
24
- expect(Prawn::Document).to receive(:new)
25
- subject
26
- end
27
-
28
- context "when there is a grid parameter" do
29
- it "creates a new grid page" do
30
- expect(DotGrid::Page::DotGrid).to receive(:new)
31
- DotGrid::Generator.new({:dot_grid => true})
32
- end
20
+ expect(subject.pdf).to be_a(Prawn::Document)
33
21
  end
34
22
 
35
- context "when there is a planner parameter" do
36
- it "creates a new grid page" do
37
- expect(DotGrid::Page::Planner).to receive(:new)
38
- DotGrid::Generator.new({:planner => true})
39
- end
23
+ it "creates the pages" do
24
+ expect(subject.page_types).to have(1).page
40
25
  end
41
26
  end
42
27
 
43
28
  describe "#generate" do
44
- context "when there is a planner page" do
45
- let(:subject) { DotGrid::Generator.new(:planner => true)}
46
- it "generates a new planner page" do
47
- expect(subject.planner_page).to receive(:generate)
48
- subject.generate
49
- end
50
- end
51
-
52
- context "when there is a dot grid page" do
53
- let(:subject) { DotGrid::Generator.new(:dot_grid => true)}
54
- it "generates a new grid page" do
55
- expect(subject.dot_grid_page).to receive(:generate)
56
- subject.generate
57
- end
58
- end
59
-
60
- context "when there is a grid page" do
61
- let(:subject) { DotGrid::Generator.new(:grid => true)}
62
- it "generates a new grid page" do
63
- expect(subject.grid_page).to receive(:generate)
64
- subject.generate
65
- end
66
- end
67
-
68
- context "when there is a horizontal rule page" do
69
- let(:subject) { DotGrid::Generator.new(:horizontal_rule => true)}
70
- it "generates a new horizontal rule page" do
71
- expect(subject.horizontal_rule_page).to receive(:generate)
72
- subject.generate
73
- end
74
- end
75
-
76
- context "when there are multiple pages" do
77
- let(:subject) { DotGrid::Generator.new(:dot_grid => true, :planner => true, :pages => 2)}
78
-
79
- it "generates grid for each page" do
80
- expect(subject.dot_grid_page).to receive(:generate).twice
81
- subject.generate
82
- end
83
-
84
- it "generates a planner for each page" do
85
- expect(subject.planner_page).to receive(:generate).twice
86
- subject.generate
87
- end
88
- end
89
-
90
29
  it "renders a file with the file name" do
91
30
  subject = DotGrid::Generator.new({})
92
31
  expect(subject.pdf).to receive(:render_file).with(subject.file_name)
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ describe "DotGrid::Page::Factory" do
4
+ describe ".build" do
5
+ context "when the page is unknown" do
6
+ it "raises an exception" do
7
+ expect {DotGrid::Page::Factory.build('xyz', {})}.to raise_error( DotGrid::Page::Factory::UnknownPageExeception)
8
+ end
9
+ end
10
+
11
+ context "when the page is known" do
12
+ it "builds the page" do
13
+ expect(::DotGrid::Page::Planner).to receive(:new)
14
+ DotGrid::Page::Factory.build('planner', {})
15
+ end
16
+ end
17
+ end
18
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dot_grid
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Scott LaBounty
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-14 00:00:00.000000000 Z
11
+ date: 2014-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
- version: 1.0.0
61
+ version: 1.1.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ~>
67
67
  - !ruby/object:Gem::Version
68
- version: 1.0.0
68
+ version: 1.1.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: trollop
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -119,6 +119,7 @@ files:
119
119
  - lib/dot_grid/generator.rb
120
120
  - lib/dot_grid/page/checkerboard.rb
121
121
  - lib/dot_grid/page/dot_grid.rb
122
+ - lib/dot_grid/page/factory.rb
122
123
  - lib/dot_grid/page/grid.rb
123
124
  - lib/dot_grid/page/horizontal_rule.rb
124
125
  - lib/dot_grid/page/page.rb
@@ -133,6 +134,7 @@ files:
133
134
  - spec/lib/dot_grid/generator_spec.rb
134
135
  - spec/lib/dot_grid/page/checkerboard_spec.rb
135
136
  - spec/lib/dot_grid/page/dot_grid_spec.rb
137
+ - spec/lib/dot_grid/page/factory_spec.rb
136
138
  - spec/lib/dot_grid/page/grid_spec.rb
137
139
  - spec/lib/dot_grid/page/horizontal_rule_spec.rb
138
140
  - spec/lib/dot_grid/page/page_spec.rb
@@ -171,6 +173,7 @@ test_files:
171
173
  - spec/lib/dot_grid/generator_spec.rb
172
174
  - spec/lib/dot_grid/page/checkerboard_spec.rb
173
175
  - spec/lib/dot_grid/page/dot_grid_spec.rb
176
+ - spec/lib/dot_grid/page/factory_spec.rb
174
177
  - spec/lib/dot_grid/page/grid_spec.rb
175
178
  - spec/lib/dot_grid/page/horizontal_rule_spec.rb
176
179
  - spec/lib/dot_grid/page/page_spec.rb