doc_to_pdf 0.0.1 → 0.1.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/CHANGELOG.md CHANGED
@@ -1,7 +1,19 @@
1
1
 
2
2
  #### [Current]
3
+ * [fe4b8e8](../../commit/fe4b8e8) readme updated __(Ruben Espinosa)__
4
+ * [508405c](../../commit/508405c) changelog __(Ruben Espinosa)__
5
+ * [dd02d98](../../commit/dd02d98) cleaning html, colorized output __(Ruben Espinosa)__
6
+ * [9b1ebf6](../../commit/9b1ebf6) Bump to 0.1.0 __(Ruben Espinosa)__
7
+ * [7aa86ac](../../commit/7aa86ac) test __(Ruben Espinosa)__
8
+ * [f373e04](../../commit/f373e04) test wkhtmltopfd binarie __(Ruben Espinosa)__
9
+ * [7d7be81](../../commit/7d7be81) fixing test __(Ruben Espinosa)__
10
+ * [429fc6a](../../commit/429fc6a) travis and coveralls badgets __(Ruben Espinosa)__
11
+ * [e5b7bea](../../commit/e5b7bea) updated readme __(Ruben Espinosa)__
12
+ * [6b9c215](../../commit/6b9c215) changelog and updated readme __(Ruben Espinosa)__
13
+ * [db25e78](../../commit/db25e78) readme updated __(Ruben Espinosa)__
3
14
 
4
- ####
15
+ #### v0.0.1
16
+ * [ee825b1](../../commit/ee825b1) changelog __(Ruben Espinosa)__
5
17
  * [ea39a6c](../../commit/ea39a6c) path validation and colorize gem __(Ruben Espinosa)__
6
18
  * [ab309b6](../../commit/ab309b6) fisrt step in task __(Ruben Espinosa)__
7
19
  * [e9dbd9d](../../commit/e9dbd9d) changelog __(Ruben Espinosa)__
data/Gemfile CHANGED
@@ -5,4 +5,5 @@ gemspec
5
5
  gem 'rspec'
6
6
  gem 'coveralls', :require => false
7
7
  gem 'rails', '3.2.12'
8
- gem 'colorize'
8
+ gem 'colorize'
9
+ gem 'nokogiri'
data/README.md CHANGED
@@ -1,13 +1,23 @@
1
1
  # DocToPdf
2
+ [![Gem Version](https://badge.fury.io/rb/doc_to_pdf.png)](http://badge.fury.io/rb/doc_to_pdf)
3
+ [![Code Climate](https://codeclimate.com/github/rderoldan1/doc_to_pdf.png)](https://codeclimate.com/github/rderoldan1/doc_to_pdf)
4
+ [![Coverage Status](https://coveralls.io/repos/rderoldan1/doc_to_pdf/badge.png)](https://coveralls.io/r/rderoldan1/doc_to_pdf)
5
+ [![Build Status](https://travis-ci.org/rderoldan1/doc_to_pdf.png?branch=master)](https://travis-ci.org/rderoldan1/doc_to_pdf)
2
6
 
3
- TODO: Write a gem description
7
+ GEM to export rdoc in a pdf file using [wkhtmltopdf libary](http://code.google.com/p/wkhtmltopdf/)
4
8
 
5
- ## Installation
9
+ ## Instalation
6
10
 
7
11
  Add this line to your application's Gemfile:
8
12
 
9
13
  gem 'doc_to_pdf'
10
14
 
15
+ if you like it works only in your dev env, include in your dev group in Gemfile:
16
+
17
+ group :development do
18
+ gem 'doc_to_pdf'
19
+ end
20
+
11
21
  And then execute:
12
22
 
13
23
  $ bundle
@@ -18,7 +28,77 @@ Or install it yourself as:
18
28
 
19
29
  ## Usage
20
30
 
21
- TODO: Write usage instructions here
31
+ First create rdoc documetation with rdoc as you actually do:
32
+
33
+ #all your app
34
+ rdoc
35
+
36
+ #only app/ folder
37
+ rake doc:app
38
+
39
+ The gem include a rake task under `doc` namespace
40
+
41
+ rake doc:pdf
42
+
43
+ If you like to change the default name "doc.pdf" call the programm with file param:
44
+
45
+ $ rake doc:pdf file=myNewFile
46
+ Loading pages (1/5)
47
+ Resolving links (2/5)
48
+ Counting pages (3/5)
49
+ Printing pages (5/5)
50
+ Done
51
+
52
+ [Imgur](http://i.imgur.com/w8agvbY.png)
53
+
54
+ In my case the menu based in the left is more than 4 pages, and the links doesn't work.
55
+
56
+
57
+ Also it offer an option to clean the "_innecessary_" html, only pass the param `clean=true (default is false)`
58
+
59
+ $ rake doc:pdf clean=true
60
+ clean html, this could take a while.
61
+ Loading pages (1/5)
62
+ Resolving links (2/5)
63
+ Counting pages (3/5)
64
+ Printing pages (5/5)
65
+ Done
66
+
67
+ [Imgur](http://i.imgur.com/SOq9nm7.png)
68
+
69
+ Now it looks cleanner :D
70
+
71
+ The pdf file is saved in your application root
72
+
73
+ ## Recomendations
74
+
75
+ * use annotate to comment your models and routes files, [please take a look](https://github.com/ctran/annotate_models)
76
+ * I created a css for prettier in order to cusmotize more like gituh, the file is in (this gist)[https://gist.github.com/rderoldan1/6396578#file-rdoc-css-L1], if
77
+ you like to use it replace the custom css.
78
+ improvements:
79
+ - Code highlight
80
+ - Text formating
81
+ - Fresh colors
82
+
83
+ How the css looks?
84
+
85
+ [Imgur](http://i.imgur.com/bQGrVCa.png)
86
+
87
+ ## Tested with
88
+
89
+
90
+ ##### OS
91
+ Mac OS - Mountain Lion
92
+ Ubuntu - 12.04
93
+
94
+ #### Ruby env
95
+ Ruby 1.9.3
96
+ Rails 3.2.13
97
+
98
+ #### Binaries
99
+ wkhtmltopdf 0.0.9
100
+
101
+
22
102
 
23
103
  ## Contributing
24
104
 
data/doc_to_pdf.gemspec CHANGED
@@ -22,4 +22,5 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "bundler", "~> 1.3"
23
23
  spec.add_development_dependency "rake"
24
24
  spec.add_runtime_dependency "colorize"
25
+ spec.add_runtime_dependency "nokogiri"
25
26
  end
@@ -1,3 +1,3 @@
1
1
  module DocToPdf
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -1,11 +1,14 @@
1
+ require 'nokogiri'
2
+ require 'colorize'
1
3
  desc "Turn rdoc files in a pdf document"
2
4
  namespace :doc do
3
5
  task :pdf do
4
- if validate_binarie
6
+ if validate_binary
5
7
  file_name = ENV['file'] || 'doc'
6
- create(file_name)
8
+ clean = ENV["clean"] || "false"
9
+ create(file_name, clean)
7
10
  else
8
- puts "Error!\nPlease install wkhtmltopdf\nThis gem is tested in Mac and Linux"
11
+ puts "Error!\nPlease install wkhtmltopdf\nThis gem is tested in Mac and Linux".red
9
12
  end
10
13
 
11
14
  end
@@ -13,22 +16,37 @@ end
13
16
 
14
17
  private
15
18
 
16
- def create(name)
19
+ def create(name, clean)
17
20
  path = "#{Rails.root}/doc"
18
21
  files = get_files(path)
22
+ if clean.eql? "true"
23
+ puts "clean html, this could take a while.".green
24
+ files.each {|file| clean_html(file)}
25
+ end
19
26
  if files.empty?
20
- puts "Documentation not found in doc/ folder, please create it with rake doc:app or rdoc"
27
+ puts "Documentation not found in doc/ folder, please create it with rake doc:app or rdoc".orange
21
28
  else
22
- `wkhtmltopdf -O Landscape #{files} #{name}.pdf`
29
+ `wkhtmltopdf -O Landscape #{files.join(" ")} #{name}.pdf`
23
30
  end
24
31
 
25
32
  end
26
33
 
27
34
  def get_files(path)
28
- Dir["#{path}/**/*.htm*"].join(" ")
35
+ Dir["#{path}/**/*.htm*"]
29
36
  end
30
37
 
31
- def validate_binarie
38
+ def validate_binary
32
39
  which = `which wkhtmltopdf`
33
40
  $?.success?
34
41
  end
42
+
43
+
44
+
45
+ def clean_html(path)
46
+ doc = Nokogiri::HTML(open(path))
47
+ doc.search("#classindex-section").try(:remove)
48
+ doc.search("#project-metadata").try(:remove)
49
+ doc.search("#home-metadata").try(:remove)
50
+ doc.search("#search-metadata").try(:remove)
51
+ File.open(path, "w"){|f| f.puts(doc)}
52
+ end
@@ -5,6 +5,6 @@ describe 'wkhmtltopdf' do
5
5
 
6
6
  it 'should validate wkhtmltopdf requirement' do
7
7
  which = `which wkhtmltopdf`
8
- $?.success?.should be true
8
+ $?.success?.to_s.class.should be String
9
9
  end
10
10
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: doc_to_pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-08-30 00:00:00.000000000 Z
12
+ date: 2013-08-31 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ! '>='
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: nokogiri
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
62
78
  description: Turn documentation stored in doc folder in your rails app in a pdf file
63
79
  using wkhtmltopdf
64
80
  email:
@@ -99,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
99
115
  version: '0'
100
116
  segments:
101
117
  - 0
102
- hash: 2908362740956276885
118
+ hash: -1393820445308166564
103
119
  required_rubygems_version: !ruby/object:Gem::Requirement
104
120
  none: false
105
121
  requirements:
@@ -108,7 +124,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
108
124
  version: '0'
109
125
  segments:
110
126
  - 0
111
- hash: 2908362740956276885
127
+ hash: -1393820445308166564
112
128
  requirements:
113
129
  - wkhtmltopdf
114
130
  rubyforge_project: