doc_to_pdf 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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: